Photon、RPC 不工作,我该如何修复我的代码?

问题描述 投票:0回答:1

我正在尝试在玩家之间同步单元中的文本,但出现错误。 我只需要同步文本 [1]:https://i.stack.imgur.com/0l98U.png

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

public class Sync : MonoBehaviourPunCallbacks
{
    private PhotonView view;
    public Text textGame;
    public Text copied;

    void Start()
    {
        view = GetComponent<PhotonView>();
    }

    public void sync()
    {
        if(view.IsMine)
            view.RPC("ViewAll", RpcTarget.AllBuffered, textGame.text);
    }

    [PunRPC]
    public void ViewAll(string tG)
    {
        tG = copied.text;
        Debug.Log(tG);
    }

   
}```

пппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп
unity-game-engine rpc photon
1个回答
0
投票

错误告诉您“view”变量尚未分配,因此为空。

  • 要分配它,您可以将该字段公开,然后在检查器中您 分配你想要的 photonView,我猜是玩家的。

  • 或者,您可以不从检查器而是在
    中分配“视图” Start() 或 Awake() 方法。如果你要关联的photonView是 在与脚本相同的 GameObject 上,你可以这样写:

     void Awake() 
     {
         view = GetComponent<PhotonView>(); 
     }
    
  • 但是,最简单的答案是将“view”替换为“photonView”。 它将具有与上述解决方案相同的结果,但非常简单。

     public void sync()
     {
         if(photonView.IsMine)
             view.RPC("ViewAll", RpcTarget.AllBuffered, textGame.text);
     }
    

我没有直接给你简单的口号让你充分了解问题并帮助你解决。

© www.soinside.com 2019 - 2024. All rights reserved.