using System; using AX.MessageSystem; using UnityEngine; using UnityEngine.UI; public class ThirdPersonView : BaseToggle { private Transform topNameParent; private Transform HealthBars; private GameObject mP_Character; private Transform hideNameToggle; private GameObject mThirdPerson; private GameObject mDefaultTarget; private string mTglText = "视角切换"; private string mTglTextB = "第三人称"; private void Awake() { hideNameToggle = transform.parent.parent.parent.Find("HideName/HideNameToggle"); topNameParent = GameObject.Find("Canvas").transform.Find("TheHeadName"); HealthBars = GameObject.Find("Canvas").transform.Find("HaemalPanel"); mP_Character = GameObject.Find("P_AllParent/P_Person/P_Character"); mDefaultTarget = GameObject.Find("Target"); MessageDispatcher.AddListener("CHANGE_TO_THIRDPERSONVIEW", ChangeToThirdPersonView); } void Start() { } public override void OnDestroy() { base.OnDestroy(); MessageDispatcher.RemoveListener("CHANGE_TO_THIRDPERSONVIEW", ChangeToThirdPersonView); } private void ChangeToThirdPersonView(IMessage obj) { transform.parent.parent.Find("ViewSwitchToggle").GetComponent().isOn = true; transform.GetComponent().isOn = true; } public override void RespondFun(bool value) { if (value == true) { //MessageDispatcher.SendMessage("OBJ_SHOWED", value); //topNameParent.SetActive(true); //HealthBars.SetActive(true); //if (CurrentUserInfo.role != Role.导调组 && CurrentUserInfo.role != Role.总队指挥中心 //&& CurrentUserInfo.role != Role.支队指挥中心 && CurrentUserInfo.role != Role.中队指挥 //&& CurrentUserInfo.role != Role.战斗班长) //{ // GameObject.Find("Main Camera").GetComponent().isThirdPerson = true; // try // { // mThirdPerson = mP_Character.transform.Find("Character").gameObject; // if (mThirdPerson != null && GameObject.Find("Main Camera").GetComponent().isThirdPerson == true) // { // GameObject.Find("ViewSwitchToggle").transform.Find("Label").GetComponent().text = mTglTextB; // mThirdPerson = mP_Character.transform.Find("Character").gameObject; // GameObject.Find("Main Camera").GetComponent().ChangeTarget(mThirdPerson); // GameObject.Find("Main Camera").GetComponent().isThirdPerson = true; // GameObject.Find("Main Camera").GetComponent().ChangeCameraView(mThirdPerson.transform.position, 16, 10, 20); // } // } // catch // { // GameObject.Find("Main Camera").GetComponent().isThirdPerson = false; // GameObject.Find("Main Camera").GetComponent().ChangeCameraView(mDefaultTarget.transform.position, 40, 5, 100); // LoadPromptWin.Instance.LoadTextPromptWindow("还没有克隆角色!", 1f); // return; // } //} if(mP_Character.transform.Find("Character") != null) mThirdPerson = mP_Character.transform.Find("Character").gameObject; if (mThirdPerson != null) { GameObject.Find("Main Camera").GetComponent().viewType = CameraViewState.ThirdPersonView; GameObject.Find("ViewSwitchToggle").transform.Find("Label").GetComponent().text = mTglTextB; GameObject.Find("Main Camera").GetComponent().ChangeTarget(mThirdPerson); GameObject.Find("Main Camera").GetComponent().ChangeCameraView(mThirdPerson.transform.position, 16, 10, 20); MessageDispatcher.SendMessage("OBJ_SHOWED", value); topNameParent.gameObject.SetActive(true); HealthBars.gameObject.SetActive(true); //切换到第三人称视角后,恢复控制角色的选中以便能寻路 SelectedObjs.selectedRolePlay = GameObject.Find("Character"); transform.parent.parent.Find("ViewSwitchToggle").GetComponent().isOn = false; //直到创建的第三人称角色后才启用隐藏名称功能 if (hideNameToggle.GetComponent().isPlaneView) { hideNameToggle.GetComponent().isPlaneView = false; } } else { LoadPromptWin.Instance.LoadTextPromptWindow("还没有克隆角色!", 1f); return; } } } }