using MotionFramework; using System.Collections; using System.Collections.Generic; using ToolsPack; using UnityEngine; using UnityEngine.UI; public class LadderTrigger : MonoBehaviour { /// /// 玩家相机 /// public GameObject CameraPlayer; /// /// 上梯子后坐标 /// public Transform UptheladderPos; /// /// 上梯子按钮 /// public Button UpladderBtn; /// /// 下梯子按钮 /// public Button DownladderBtn; /// /// 收回梯子按钮 /// public Button TakeBackBtn; /// /// 梯子物体 /// public GameObject LadderObj; public static LadderTrigger instance; /// /// 梯子动画 /// public SkinnedMeshRenderer ladderski; /// /// 判断是否在梯子上 /// public bool isPlayerOnLadder = false; public void Awake() { instance = this; } void Start() { //GameObject CameraPlayer = GameObject.FindWithTag("MainCamera"); //上梯子按钮 UpladderBtn.onClick.AddListener(() => { CameraPlayer.GetComponent().useGravity = false; CameraPlayer.GetComponent().enabled = false; CameraPlayer.gameObject.transform.position = UptheladderPos.transform.position; DownladderBtn.gameObject.SetActive(true); UpladderBtn.gameObject.SetActive(false); TakeBackBtn.gameObject.SetActive(false); RoleMove.instance.MouseScrollWheel(); RoleMove.instance.isup = true; }); //下梯子按钮 DownladderBtn.onClick.AddListener(() => { RoleMove.instance.isup = false; FirstPersonController.instance.playerCanMove = true; CameraPlayer.GetComponent().enabled = true; CameraPlayer.transform.position = new Vector3(304.2304f, 1.200014f, 164.2515f); UpladderBtn.gameObject.SetActive(true); DownladderBtn.gameObject.SetActive(false); TakeBackBtn.gameObject.SetActive(true); CameraPlayer.GetComponent().useGravity = true; CameraPlayer.GetComponentInChildren().fieldOfView = 60; TooslManager.instance.ResetAllTools(); }); //收回梯子按钮 TakeBackBtn.onClick.AddListener(() => { UpladderBtn.gameObject.SetActive(false); LadderObj.gameObject.SetActive(false); CameraPlayer.GetComponentInChildren().fieldOfView = 60; }); } private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Player") { UpladderBtn.gameObject.SetActive(true); TakeBackBtn.gameObject.SetActive(true); //FirstPersonController.instance.playerCanMove = false; Debug.Log(other.name); // isPlayerOnLadder = true; //ladder.OnPersonClose(); } } private void OnTriggerExit(Collider other) { if (other.gameObject.tag == "Player") { UpladderBtn.gameObject.SetActive(false); TakeBackBtn.gameObject.SetActive(false); Debug.Log(other.name); //isPlayerOnLadder = false; } } }