C# Unity google play games实时消息不发送
所以我现在正在和unity一起做一个游戏,这是一个空中曲棍球。我想添加一个多人模式(1对1) 因此,在玩家与对手进行比赛后,他们将在游戏开始的房间中进行连接 但是当我想收到对手的信息时,我遇到了问题 在玩家脚本移动中,我在void update()中添加了这个 在多人游戏脚本中,我添加了以下内容:C# Unity google play games实时消息不发送,c#,android,unity3d,google-play-games,multiplayer,C#,Android,Unity3d,Google Play Games,Multiplayer,所以我现在正在和unity一起做一个游戏,这是一个空中曲棍球。我想添加一个多人模式(1对1) 因此,在玩家与对手进行比赛后,他们将在游戏开始的房间中进行连接 但是当我想收到对手的信息时,我遇到了问题 在玩家脚本移动中,我在void update()中添加了这个 在多人游戏脚本中,我添加了以下内容: public void SendMyUpdate(float posX, float posZ) { string PlayerUserNameString = PlayGamesPlatf
public void SendMyUpdate(float posX, float posZ) {
string PlayerUserNameString = PlayGamesPlatform.Instance.RealTime.GetSelf ().DisplayName;
char[] characters = PlayerUserNameString.ToCharArray ();
string data = characters + ":" + posX + ":" + posZ;
byte[] bytedata = System.Text.ASCIIEncoding.Default.GetBytes (data);
PlayGamesPlatform.Instance.RealTime.SendMessageToAll (false, bytedata);
}
在OnRealTimeMessageReceived方法上:
string rawdata = System.Text.ASCIIEncoding.Default.GetString (data);
string[] cut = rawdata.Split (new string[] { ":" }, System.StringSplitOptions.RemoveEmptyEntries);
OpponentUserName = System.Convert.ToSingle (cut[1]).ToString();
Transform target = GameObject.Find ("mallet Opponent").transform;
Vector3 newpos = new Vector3
(
System.Convert.ToSingle(cut[2]),
0,
System.Convert.ToSingle(cut[3])
);
在我写了这篇文章并在两个设备上构建它之后,当房间连接起来并且游戏开始时,对手玩家根本不移动,我也不知道问题出在哪里
有什么想法吗?数组是以零为基础的,所以对手的用户名应该被删除[0],并且:
System.Convert.ToSingle(cut[3])
cut[3]将查找第四个拆分结果,并且只有三个拆分结果,因此将发生异常。这足以防止方法工作和位置更新。如果是这样,控制台日志中也应该有错误
但是,可能甚至没有调用OnRealTimeMessageReceived。您需要加入一些断点并进行调试,或者添加一些调试日志来查看事情进展情况。如果它甚至没有达到您期望的方法,那么问题可以重新表述为“为什么没有调用方法X”
System.Convert.ToSingle(cut[3])