(U3D)Time的使用
Time類包含了一個重要的類變量deltaTime,它表示距上一次調用Update或FixedUpdate
所用的時間。?
因此通過它可以讓游戲對象按照一個常速進行旋轉,而不是依賴于它的幀頻:?
function Update()?
{?
?? tranform.Rotate(0, 5 * Time.deltaTime, 0);?
}?
?
同樣地移動效果:?
function Update()?
{?
?? transform.Translate(0, 0, 2 * Time.deltaTime);?
}?
?
如果想要一個值根據每幀的變化而變化(增加或減少) ,你應該使用 Time.deltaTime來
乘以這個值。這樣才能使得變化的效果依賴于單位時間,而不是幀頻。這不僅使得游戲的運
行獨立于幀頻,也使得運動的效果符合現實。?
同理,要讓燈光的照射范圍在每秒使半徑增加 2個單位,可進行如下編碼:?
function Update()?
{?
?? light.range += 2.0 * Time.deltaTime;?
}?
?
但是在通過force來處理rigidbody時,一般情況下不要乘以 Time.deltaTime,因為 Unity
引擎已經為你進行了處理
?
2
IEnumerator wait(int seconds){
??yield return new WaitForSeconds(seconds);
?}
StartCoroutine(wait(2));? // 在Update() 中調用好像無效
在JS中可以直接用 yield WaitForSeconds(3);
?
3 定時器的使用
- using?UnityEngine; ??
- using?System.Collections; ??
- public?class?NewBehaviourScript?:?MonoBehaviour?{ ??
- //?Use?this?for?initialization ??
- void?Start?()?{ ??
- ???InvokeRepeating("LaunchProjectile",?1,5);//1秒后調用LaunchProjectile?()?函數,之后每5秒調用一次 ??
- } ??
- //?Update?is?called?once?per?frame ??
- void?Update?()?{ ??
- ???if?(Input.GetButton?("Fire"))?{ ??
- ????CancelInvoke(); ??
- ???} ??
- } ??
- void?LaunchProjectile?()?{ ??
- ???print("hello"); ??
- } ??
- }??
?
轉載于:https://www.cnblogs.com/cavehubiao/p/3431762.html
總結
以上是生活随笔為你收集整理的(U3D)Time的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: resin-pro-4.0.34 服務
- 下一篇: “列侍如公卿”上一句是什么