【问题标题】:Copy object data between clients using Photon Unity Networking使用 Photon Unity Networking 在客户端之间复制对象数据
【发布时间】:2016-03-10 04:17:36
【问题描述】:

我的课程结构如下:

public class Game : MonoBehaviour 
{
    public string Name { get; set;} 
    public int NumberOfPlayers { get; set; }
    public int CurrentPlayers { get; set; }

    public Game(string name, int num)
    {
            Name = name;
            NumberOfPlayers = num;
            CurrentPlayers = 0;
    }

我在游戏开始时创建了一个全局变量

public static Game firstGame;

使用 Photon Unity Networking,我如何在我创建的所有客户端之间共享这个单一对象的信息?

【问题讨论】:

    标签: c# networking photon


    【解决方案1】:

    您可以创建一个 RPC 来发送游戏类的 3 个变量,然后在接收客户端上,它们根据发送的数据创建一个 Game 对象。

    【讨论】:

      【解决方案2】:

      您可以在其他播放器上创建 RPC 调用,将这些值放在字典对象中,然后在 RPC 调用中传递该对象。另一方面,您可以打开这个对象。

      例如:

      Dictionary<string, string> dataToShare = new Dictionary<string, string>();
      dataToShare.Add("PlayerFirstName", PlayerInformation.loginDetails.FirstName);
      dataToShare.Add("Avatar", PlayerInformation.loginDetails.Avatar);
      photonView.RPC("InitializeMyPlayerRPC",PhotonTargets.OthersBuffered,new object[]{ dataToShare});
      
      [PunRPC]
      
      void InitializeMyPlayerRPC(object dataToShare)
      {
          Dictionary<string, string> data = dataToShare as Dictionary<string, string>;          
          player.Name = data["PlayerFirstName"].ToString();
          player.Avatat = data["Avatar"].ToString();
      }
      

      我知道你已经完成了,但如果有人需要,它会帮助他们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-03
        相关资源
        最近更新 更多