示例#1
0
        public void SpawnPlayer(SpawnDto data)
        {
            if (!PhotonNetwork.isMasterClient)
            {
                data.local = !data.local;
            }

            GridGenerator grid = GridGenerator.Instance;
            Vector3       v    = grid.GetCellFomIndex(data.indexCell);
            Quaternion    r    = Quaternion.identity;

            if (data.local)
            {
                LocalPlayer.PlayerTeam.Characters[data.pos].Visual = parent.My_Instantiate(_availableModels.First(x => x.name == LocalPlayer.PlayerTeam.Characters[data.pos].PrefabName), v, r);
                LocalPlayer.PlayerTeam.Characters[data.pos].SetPositionOnGrid(grid.GetGridPositionFromIndex(data.indexCell));
            }
            else
            {
                OtherPlayer.PlayerTeam.Characters[data.pos].Visual = parent.My_Instantiate(_availableModels.First(x => x.name == OtherPlayer.PlayerTeam.Characters[data.pos].PrefabName), v, r);
                OtherPlayer.PlayerTeam.Characters[data.pos].SetPositionOnGrid(grid.GetGridPositionFromIndex(data.indexCell));
            }

            if (data.last)
            {
                SendLastSpawn();
            }
        }
示例#2
0
        private void SendSpawnPlayer(SpawnDto data)
        {
            byte evCode = (byte)ConnectorPhoton.EventCode.EvSpawnPlayer;

            string content  = JsonUtility.ToJson(data);
            bool   reliable = true;

            PhotonNetwork.RaiseEvent(evCode, content, reliable, new RaiseEventOptions()
            {
                CachingOption = EventCaching.DoNotCache, Receivers = ReceiverGroup.All
            });
        }