您好,登錄后才能下訂單哦!
在游戲設計過程中定時器是必不可少的工具,我們知道update方法是MonoBehavior中一個人人皆知的定時器方法,每幀都在調用,那還有其他什么定時器的方法呢,這里介紹一下。
在一定時間調用methodName函數
using UnityEngine; using System.Collections; public class example : MonoBehaviour { public Rigidbody projectile; void LaunchProjectile() { Rigidbody instance = Instantiate(projectile); instance.velocity = Random.insideUnitSphere * 5; } public void Awake() { Invoke("LaunchProjectile", 2); } }
每隔一定時間調用一次methodName函數
Invokes the method methodName in time seconds.
在time秒調用methodName方法;簡單說,根據時間調用指定方法名的方法
After the first invocation repeats calling that function every repeatRate seconds.
從第一次調用開始,每隔repeatRate時間調用一次.
using UnityEngine; using System.Collections; public class example : MonoBehaviour { public Rigidbody projectile; void LaunchProjectile() { Rigidbody instance = Instantiate(projectile); instance.velocity = Random.insideUnitSphere * 5; } public void Awake() { InvokeRepeating("LaunchProjectile", 2, 0.3F); //2秒后,沒0.3f調用一次 } }
取消這個腳本中所有的調用
Cancels all Invoke calls on this MonoBehaviour.
取消這個MonoBehaviour上的所有調用。
public class example : MonoBehaviour { public Rigidbody projectile; void Update() { if (Input.GetButton("Fire1")) CancelInvoke(); } void LaunchProjectile() { instance = Instantiate(projectile); instance.velocity = Random.insideUnitSphere * 5; } public void Awake() { InvokeRepeating("LaunchProjectile", 2, 0.3F); } } function LaunchProjectile () { instance = Instantiate(projectile); instance.velocity = Random.insideUnitSphere * 5; }
using UnityEngine; using System.Collections; public class example : MonoBehaviour { public Rigidbody projectile; void Update() { if (Input.GetKeyDown(KeyCode.Space) && !IsInvoking("LaunchProjectile")) //如果這個方法不在調用并且等待了2秒 Invoke("LaunchProjectile", 2); } void LaunchProjectile() { Rigidbody instance = Instantiate(projectile); instance.velocity = Random.insideUnitSphere * 5; } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。