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); }