using System; using UnityEngine; public class TriggerChange : MonoBehaviour { public GameObject changeA; public GameObject changeB; public GameObject catalysis; public GameObject getCatalysis; public GameObject messageCavans; // check every step private bool isMessageOver = false; private bool isShow = false; // 列舉改變方式 public enum ChangeStatus { Right_Now, Wait_Time } // 宣告改變方式 public ChangeStatus changeStatus; // Use this for initialization void Start() { } // Update is called once per frame void Update() { if (changeStatus == ChangeStatus.Right_Now) RightNowChange(); else if (changeStatus == ChangeStatus.Right_Now) WaitTimeChange(); } // 直接改變 private void RightNowChange() { if (isShow) { if (getCatalysis && catalysis.name == getCatalysis.name) { changeA.SetActive(false); changeB.SetActive(true); } else { changeA.SetActive(true); changeB.SetActive(false); } } } // 等待改變 private void WaitTimeChange() { if (changeA.activeSelf && !changeB.activeSelf) { if (isShow) { if (getCatalysis && catalysis.name == getCatalysis.name) { // if game message is over , messageCavans doesn't open if (!isMessageOver && getCatalysis != null) messageCavans.SetActive(true); } else messageCavans.SetActive(false); } } } public void DeterminedChange() { changeA.SetActive(false); changeB.SetActive(true); if (messageCavans) messageCavans.SetActive(false); isMessageOver = true; } public void OnAppear() { isShow = true; } public void OnDisappear() { GameReset(); } private void GameReset() { isShow = false; if (messageCavans) messageCavans.SetActive(false); } }
Unity 筆記
2018年8月19日 星期日
Test程式碼
訂閱:
文章 (Atom)