尝试使用PunRPC(Unity和Photon)发送RPC,但出现错误“对象引用未设置为对象的实例”。

3
我正在尝试在客户端将所有人发送到角色选择场景之前,确保需要一定数量的玩家。
在一个函数内,我有以下内容...
if (PhotonNetwork.PlayerList.Length == 1 & PhotonNetwork.IsMasterClient == true)
{
    PhotonView PV = PhotonView.Get(this);
    PV.RPC("heroSelect", RpcTarget.All);
}

在我的代码中,我随后使用以下代码更改场景:


[PunRPC]
void heroSelect()
{
    SceneManager.LoadScene(2);
}

我在这行代码上遇到了一个错误:"对象引用未设置实例。"
PV.RPC("heroSelect", RpcTarget.All);
3个回答

3

我找到了问题所在。

在你的层次结构中创建一个空对象,我把它叫做NetworkManager。将你的脚本作为组件添加进去。(你可能已经完成了这两个步骤。)

重要的一点是:确保在你的NetworkManager上有一个 Photon视图。将NetworkManager从层次结构中拖动到检查器中的观察组件上。这样应该能解决错误。


将网络管理器拖动到自己作为观察组件?它变灰了。 - codemonkey

0

我遇到了同样的问题。 通过将PhotonView组件附加到GameObject上,问题得以解决。


0

你可以将 Observable Search 设置为手动模式


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接