Пример #1
0
    static void OnPlayerMoveNotify(byte[] data)
    {
        CSPlayerMoveNotify notify = NetworkManager.Deserialize <CSPlayerMoveNotify>(data);

        //Debug.Log("CSPlayerMoveNotify,id=" + notify.PlayerID + ",(" + notify.Position.x + "," + notify.Position.y + "," + notify.Position.z + ")");
        MovePlayer(notify.PlayerID, notify.Position, notify.Rotation);
    }
Пример #2
0
        public static void OnHeroMoveReq(Player player, MemoryStream stream)
        {
            CSHeroMoveReq req = NetworkManager.Deserialize <CSHeroMoveReq>(stream);

            //Ultilities.Print($"CSHeroMoveReq,id={player.id},position=({req.Position.x},{req.Position.y},{req.Position.z}),rotation=({req.Rotation.x},{req.Rotation.y},{req.Rotation.z})");
            player.position = new Vector3(req.Position.x, req.Position.y, req.Position.z);
            player.rotation = new Vector3(req.Rotation.x, req.Rotation.y, req.Rotation.z);

            //写数据库
            Redis.SetPlayerData(player.id, new CSPlayer
            {
                PlayerID = player.id,
                Name     = player.name,
                Position = new CSVector3 {
                    x = player.position.x, y = player.position.y, z = player.position.z
                },
                Rotation = new CSVector3 {
                    x = player.rotation.x, y = player.rotation.y, z = player.rotation.z
                },
            });

            //玩家的移动同步给看得到这个chunk的其他玩家
            List <Player> playersInChunk = TerrainData.GetChunkViewPlayers(player.curChunk);

            foreach (Player p in playersInChunk)
            {
                if (p.id != player.id)
                {
                    CSPlayerMoveNotify notify = new CSPlayerMoveNotify
                    {
                        PlayerID = player.id,
                        Position = req.Position,
                        Rotation = req.Rotation
                    };
                    NetworkManager.Enqueue(p.socket, ENUM_CMD.CS_PLAYER_MOVE_NOTIFY, notify);
                }
            }
        }