예제 #1
0
    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);
        }
    }
예제 #2
0
    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);
        }
    }