private void ReloadCharacters() { TppCameraManagerHandler cameraHandler = _tppCameraManager.GetComponent <TppCameraManagerHandler>(); PlayerPositionMarkHandler positionMarkHandler = _playerPositionMark.GetComponent <PlayerPositionMarkHandler>(); cameraHandler.SetAnchor(null); positionMarkHandler.SetPlayerCharacter(null); _playerCharacter = null; for (int i = _localCharacterObjectList.Count - 1; i >= 0; i--) { Destroy(_localCharacterObjectList[i]); _localCharacterObjectList.RemoveAt(i); } List <LocalCharacterDetails> detailsList = _gameStateDetails.GetLocalCharacterDetails(); LocalCharacterHandler characterHandler; foreach (LocalCharacterDetails details in detailsList) { GameObject createdObject = LocalCharacterCreator.CreateLocalCharacter(this, new StandardLocalCharacterBuilder(details, _gameStateDetails, _mainCamera)); characterHandler = createdObject.GetComponent <LocalCharacterHandler>(); if (characterHandler.IsPlayerMainCharacter) { cameraHandler.SetAnchor(createdObject.transform); _playerCharacter = createdObject; _playerPositionMark.transform.position = _playerCharacter.transform.position; positionMarkHandler.SetPlayerCharacter(createdObject); } _localCharacterObjectList.Add(createdObject); } }
public static void MovePlayerExternally(int charId, Point3 <double> pointTo, int timeArrivalMs) { if (_instance == null) { return; } Vector3 newLocation = new Vector3 ( Convert.ToSingle(pointTo.X), Convert.ToSingle(pointTo.Z), Convert.ToSingle(pointTo.Y) ); if (charId == _instance._gameStateDetails.CharId) { PlayerPositionMarkHandler markHandler = _instance._playerPositionMark.GetComponent <PlayerPositionMarkHandler>(); markHandler.MoveMark(newLocation, timeArrivalMs); } else { _instance.MoveNonPlayerCharacter(charId, /*oldLocation,*/ newLocation, timeArrivalMs); } }