Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity google play games实时消息不发送_C#_Android_Unity3d_Google Play Games_Multiplayer - Fatal编程技术网

C# Unity google play games实时消息不发送

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

所以我现在正在和unity一起做一个游戏,这是一个空中曲棍球。我想添加一个多人模式(1对1)

因此,在玩家与对手进行比赛后,他们将在游戏开始的房间中进行连接

但是当我想收到对手的信息时,我遇到了问题

在玩家脚本移动中,我在void update()中添加了这个

在多人游戏脚本中,我添加了以下内容:

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])