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)