1. 程式人生 > >[Untiy3d技巧學習]Untiy中用作計數器,或在間隔時間內執行某一程式碼的方法。

[Untiy3d技巧學習]Untiy中用作計數器,或在間隔時間內執行某一程式碼的方法。

在遊戲製作中,我們需要用到類似於在一定時間後執行某一段程式碼的方法來實現一些效果,其邏輯等同於如現實世界中的“紅綠燈”。

在Untiy當中,存在兩種常用的程式碼去實現這一功能。

方法一:計數器累加

先定義好一個用於計數的變數_currenTimeCnt = 0;

再一定一個用於比較的變數_waitTime =1.0f;

通過Update()方法,用if..else迴圈比較兩個變數,從而通過時間來控制方法的實現,如下方簡易程式碼所示:

private float _waitTime =1.0f;
private float _currenTimeCnt = 0;

...

void Update(){

<span style="white-space: pre;">	</span>if(_currenTimeCnt > _waitTime){
<span style="white-space: pre;">		</span><span style="color:#ff0000;"><strong>Main();</strong></span>
     <span style="white-space: pre;">		</span> _currenTimeCnt = 0;
<span style="white-space: pre;">	</span>}
<span style="white-space: pre;">	</span>_currenTimeCnt +=Time.deltaTime;
}
方法二:InvokeRepeating();//重複呼叫

InvokeRepeating的基類是MonoBehaviour。

function InvokeRepeating (methodName : string, time : float, repeatRate : float) : void

該方法需要傳入的引數有三個,methodName:方法的名稱,string型別;time:等待的時間;repeatRate:重新整理時間,也就是兩次執行方法的間隔。

根據實際需求,我們可以在Awake()方法 或 State()方法中呼叫該方法。