Ejemplo n.º 1
0
    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);
            }
        }
    }
Ejemplo n.º 2
0
    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);
            }
        }
    }
Ejemplo n.º 3
0
 public Sync(SyncPayload payload)
 {
     this.Payload = payload;
 }