void OnSync(RPC.SyncPayload payload) { Debug.Log("<< Sync"); foreach (var rpcPlayer in payload.Players) { if (rpcPlayer.Id == playerId) { playerObj.transform.localScale = CalcPlayerScale(rpcPlayer.Score); continue; } var otherPlayerPoision = new Vector3(rpcPlayer.Position.X, rpcPlayer.Position.Y, rpcPlayer.Position.Z); if (otherPlayerObjs.ContainsKey(rpcPlayer.Id)) { // 既にGameObjectがいたら更新 otherPlayerObjs[rpcPlayer.Id].transform.position = otherPlayerPoision; otherPlayerObjs[rpcPlayer.Id].transform.localScale = CalcPlayerScale(rpcPlayer.Score); } else { // GameObjectがいなかったら新規作成 var otherPlayerObj = Instantiate(otherPlayerPrefab, otherPlayerPoision, Quaternion.identity) as GameObject; otherPlayerObj.GetComponent <OtherPlayerController>().Id = rpcPlayer.Id; otherPlayerObj.name = "Other" + rpcPlayer.Id; otherPlayerObjs.Add(rpcPlayer.Id, otherPlayerObj); Debug.Log("Instantiated a new player: " + rpcPlayer.Id); } } }
void OnSync(RPC.SyncPayload payload) { Debug.Log("<< Sync"); foreach (var otherPlayer in payload.Players) { // 自分だったら捨てる if (otherPlayer.Id == playerId) { continue; } var otherPlayerPoision = new Vector3(otherPlayer.Position.X, otherPlayer.Position.Y, otherPlayer.Position.Z); if (otherPlayerObjs.ContainsKey(otherPlayer.Id)) { // 既にGameObjectがいたら位置更新 otherPlayerObjs[otherPlayer.Id].transform.position = otherPlayerPoision; } else { // GameObjectがいなかったら新規作成 var otherPlayerObj = Instantiate(otherPlayerPrefab, otherPlayerPoision, Quaternion.identity) as GameObject; otherPlayerObj.name = "Other" + otherPlayer.Id; otherPlayerObjs.Add(otherPlayer.Id, otherPlayerObj); Debug.Log("Instantiated a new player: " + otherPlayer.Id); } } }
public Sync(SyncPayload payload) { this.Payload = payload; }