PUN 网络错误 - 找不到合适的方法来覆盖

PUN Networking error - No Suitable Method found to override

我对 C# 和 unity 还很陌生,我一直在尝试设置 Photon Networking 服务。我 运行 遇到了一个我无法找出原因的问题。这是两条错误消息。

Assets\PhotonUnityNetworking\Resources\TestConnect.cs(21,41): error CS0246: The Type or namespace name 'DisconnectCause' could not be found (are you missing a using directive or an assembly reference?)

Asseta\PhotonUnityNetworking\Resources\TestConnect.cs(21,26): error CS0115 'TestConnect.OnDisconnected(DisconnectCause)': no suitable method found to override.

然而,在 visual studio 中,没有任何错误。

对于这些问题的原因的任何帮助表示感谢。

using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestConect : MonoBehaviourPunCallbacks
{
    private void Start()
    {
        print("Connecting to server...");
        PhotonNetwork.GameVersion = "0.0.1";
        PhotonNetwork.ConnectUsingSettings();
    }

    public override void OnConnectedToMaster()
    {
        print("Connected to server!");
    }

    public override void OnDisconnected(DiconnectionCause cause)
    {
        print("Disconnected from Server for reason " + cause.ToString());
    }
}

首先,另一个重要说明:您不应将任何自定义脚本放入名为 Resources 的文件夹中!

此外,afaik PhotonUnityNetworking 是他们的 Photon 本身的官方文件夹。我建议不要在其中修改或添加任何内容,如果您以某种方式搞砸了,以后很难升级或修复它。


然后是你的问题

正如错误已经提示的那样

are you missing a using directive

DisconnectCause 属于另一个命名空间 Photon.Realtime

您需要添加

using Photon.Realtime;

在该文件的顶部或必须像

一样直接解决它
public override void OnDisconnected(Photon.Realtime.DisconnectCause cause)
{
    ...
}

奇怪的是 VisualStudio 没有注意到...


第二个错误只是一个后续编译错误,因为假定的签名不匹配而没有找到相应的方法来覆盖,因为它不知道你用作参数的类型,因为之前的错误。


以后请不要postscreenshots of code and error messages!这不仅使问题更难解决,而且其他人在搜索错误消息内容以查看它是否已在某处解决时也无法找到此线程!

而是复制并粘贴您问题的原始文本,然后使用 { } 按钮将其格式化为代码。