问题描述
- Unity中如何使用协程完成延时执行一个一直触发的函数
-
小弟在U3D中想实现一个简单的功能,复制出物体后将对象一个个按照顺序移动出去并且一直执行移动,下面这段只能实现复制物体并统一发射出去。想要实现延时发射的话,考虑了用InvokeRepeating和Time.Delattime等方法,但是还是没能实现,出现卡死的情况。也听说这些方法的执行效率不高,于是尝试了协程,但是发现有数组越界的情况。
小弟脑子已经不够用了,求各位大神帮忙解答,如果可以的话,能否讲述刚才说的三种实现方法。谢谢!
public class kelong : MonoBehaviour {public int i; public GameObject enemy = null; public GameObject[] enemys; public void Start() { enemys = new GameObject[i]; if (enemy == null) return; for (i = 0; i < enemys.Length; i++) { enemys[i] = Instantiate(enemy); } } void Update() { float translation = Time.deltaTime * 10; for (i = 0; i < enemys.Length; i++) enemys[i].transform.Translate(0, 0, translation); }
解决方案
http://bbs.csdn.net/topics/391884387?list=lz
解决方案二:
InvokeRepeating函数可以实现的了,自定义一个函数名叫void fun(){ //你要实现的功能 },使用InvokeRepeating("fun",t);//fun是函数名,t是延时的时间
时间: 2024-12-31 01:00:38