unity3d————延时函数
1.public void InvokeRepeating(string methodName, float time, float repeatRate);
延迟重复执行函数
InvokeRepeating
参数一:函数名字符串
参数二:第一次执行的延迟时间
参数三:之后每次执行的间隔时间
注意:
1-1.延时函数第一个参数传入的是函数名字符串
1-2.延时函数没办法传入参数 只有包裹一层
1-3.函数名必须是该脚本上申明的函数
2.public void Invoke(string methodName, float time);
延迟函数
Invoke
参数一:函数名 字符串
参数二:延迟时间 秒为单位
注意:
它的注意事项和延时函数一致
3.取消延迟函数
3-1取消该脚本上的所有延时函数执行
CancelInvoke();
3-2指定函数名取消
只要取消了指定延迟 不管之前该函数开启了多少次 延迟执行 都会统一取消
CancelInvoke("DelayDoSomething");
4.总结
继承MonoBehavior的脚本可以使用延时相关函数
函数相关
Invoke 延时函数
InvokeRepeating 延时重复函数
CancelInvoke 停止所有或者指定延时函数
IsInvoking 判断是否有延时函数待执行
使用相关
1.参数都是函数名,无法传参数
2.只能执行该脚本中申明的函数
3.对象或脚本失活无法停止延时函数执行,只有销毁组件或者对象才会停止或者代码停止
5.代码示例
public class xiecheng : MonoBehaviour
{
void Start()
{
//InvokeRepeating("delayFun", 0, 1);
delayFun2();
}
private int count = 0;
/* private void delayFun()
{
print("当前秒数:" + count + "秒");
count++;
}*/
private void delayFun2()
{
print("当前秒数(2)" + count);
count++;
Invoke("delayFun2", 1);
}
}
运行结果: