所以我现在正在制作一个团结的游戏,这是一个空气曲棍球。
但我在接收不同对象的消息时遇到问题。
所以我做的是,当两个玩家在同一个房间时,我创建一个bool来选择主要玩家。
主要玩家将收到来自其他玩家(槌对手)的消息,而不是主要玩家的其他玩家将在其游戏中接收主玩家和托盘的消息。
所以我想出了这个:
public void OnRealTimeMessageReceived (bool isReliable, string senderId, byte[] data)
{
string rawdata = System.Text.ASCIIEncoding.Default.GetString (data);
string[] slice = rawdata.Split (new string[] { ":" }, System.StringSplitOptions.RemoveEmptyEntries);
if (MainPlayer == true) {
if (slice [0].Contains ("Position")) {
Transform target = GameObject.Find ("mallet Opponent").transform;
float posX = System.Convert.ToSingle (slice [1]);
float posZ = System.Convert.ToSingle (slice [2]);
Vector3 newpos = new Vector3 (-(posX), 0, -(posZ));
target.position = newpos;
}
}
if (MainPlayer == false) {
if (slice [0].Contains ("Position")) {
Transform target = GameObject.Find ("mallet Opponent").transform;
float posX = System.Convert.ToSingle (slice [1]);
float posZ = System.Convert.ToSingle (slice [2]);
Vector3 newpos = new Vector3 (-(posX), 0, -(posZ));
target.position = newpos;
}
if (slice [0].Contains ("palletPosition")) {
Transform palletTarget = GameObject.Find ("pallet").transform;
float palletPosX = System.Convert.ToSingle (slice [1]);
float palletPosZ = System.Convert.ToSingle (slice [2]);
Vector3 palletNewPos = new Vector3 (-(palletPosX), 0, -(palletPosZ));
palletTarget.position = palletNewPos;
}
}
}
因此,当游戏开始时,对于主要玩家,我会收到其他玩家的消息,并且工作正常。
但对于其他玩家,我有一种奇怪的行为。
托盘没有移动,它停留在他的起始位置,但是“木槌对手”将位置改变到托盘必须去的位置,到主要玩家的实际位置。
我不知道为什么会这样做。
我该如何解决?