示例#1
0
        protected override void SetCameraCharacter(AllyMember _targetCore)
        {
            AllyMemberWrapper _target = (AllyMemberWrapper)_targetCore;
            base.SetCameraCharacter(_target);
            if (Camera.main && Camera.main.GetComponent<RTSCameraController>())
            {
                var _thirdPersonCamera = Camera.main.GetComponent<RTSCameraController>();
                if (_thirdPersonCamera.Character != _target.gameObject)
                {
                    _thirdPersonCamera.Character = _target.gameObject;
                    if (_target.ChestTransform != null)
                        _thirdPersonCamera.FadeTransform = _target.ChestTransform;
                    else
                        _thirdPersonCamera.FadeTransform = null;
                    if (_target.HeadTransform != null)
                        _thirdPersonCamera.DeathAnchor = _target.HeadTransform;
                    else
                        _thirdPersonCamera.DeathAnchor = null;

                    //Initialize Character on Modified Camera Controller
                    _thirdPersonCamera.InitializeAllyCharacter(_target);
                }  
            }
            else
            {
                Debug.LogError("Can't set camera character because camera controller cannot be found");
                return;
            }
        }
 //Handle when partymanager switches allyInCommand, rather than on awake
 public void InitializeAllyCharacter(AllyMemberWrapper ally)
 {
     //// If the character is not initialized on start then disable the controller - the controller won't function without a character.
     m_Character = ally.gameObject;
     if (m_Character == null)
     {
         Debug.LogWarning("Error: Unable to find character with the Player tag. Disabling the Camera Controller.");
         m_CameraHandler.enabled = enabled = false;
         return;
     }
     InitializeCharacter(m_Character);
 }