簡體   English   中英

Unity Google Play游戲實時消息未發送

[英]Unity google play games realtime message not send

因此,我目前正在開發一款具有統一性的游戲,這是一款曲棍球。 我想添加一個多人游戲模式(1比1)。

因此,在玩家與對手進行比賽之后,他們將在游戲開始的房間中被連接。

但是當我想接收對方的消息時遇到問題。

在播放器腳本移動中,我將此添加到void update()上

Multiplayer.Instance.SendMyUpdate(positionX, PositionZ);

在多人腳本中,我添加以下內容:

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]將查找第4個分割結果,並且只有三個,因此將發生異常。 這足以防止方法工作和位置更新。 如果是這樣,控制台日志中也應該有一個錯誤。

但是,也許甚至沒有調用OnRealTimeMessageReceived。 您需要拋出一些斷點並進行調試,或者添加一些調試日志以查看進展情況。 如果還沒有達到您期望的方法,則可以將問題改寫為“為什么未調用方法X”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM