此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


[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()方法中调用该方法。





本文链接http://element-ui.cn/news/show-577044.aspx