[英]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.