如何通过点对点连接传递关于GameObject所拥有的父母的数据?

问题描述:

这是接收来自其他人的原始数据并将其转换的代码。现在它应该将从其他玩家添加的对象添加到其他玩家在第二个玩家屏幕上添加的对象。如何通过点对点连接传递关于GameObject所拥有的父母的数据?

public void OnRealTimeMessageReceived(bool isReliable, string senderId, byte[] data) 
{ 
    byte messageVersion = (byte)data[0]; 
    // Let's figure out what type of message this is. 
    char messageType = (char)data[1]; 
    if (messageType == 'U' && data.Length == _updateMessageLength) 
    { 
     float posX = System.BitConverter.ToSingle(data, 2); 
     float posY = System.BitConverter.ToSingle(data, 6); 


     // We'd better tell our GameController about this. 
     if (updateListener != null) 
     { 
      updateListener.UpdateReceived(senderId, posX, posY); 
     } 
    } 
} 

此代码通过谷歌播放服务向其他播放器发送消息。

public void SendMyUpdate(GameObject childObj) 
{ 
    _updateMessage.Clear(); 
    _updateMessage.Add(_protocolVersion); 
    _updateMessage.Add((byte)'U'); 
    _updateMessage.AddRange(System.BitConverter.GetBytes(childObj)); 

    byte[] messageToSend = _updateMessage.ToArray(); 

    PlayGamesPlatform.Instance.RealTime.SendMessageToAll(false, messageToSend); 
} 

这游戏就像井字

对于一个简单的游戏像井字,我会建议你在一个更基本的层面沟通的游戏状态。

假设您的游戏状态为3x3字符数组。该阵列的每个元素都是

' ' 
'X' 
'O' 

现在只要一个球员做他们的举动,你更新客户端的本地数组的副本。然后,您可以轻松地通过网络发送此3x3阵列。接收客户端可以相应地更新他们的数组,等等。

+0

我决定发送浮动到其他玩家,但数据似乎并没有使调试似乎没有触发。我正在使用adb logcat –