[Unity] LQ转载--Unity3D基础28:Invoke计时函数与碰撞销毁

查看:532 |回复:1 | 2021-6-12 20:12:56

您需要 登录 才可以下载或查看,没有账号?注册

x
前面已经实现了“物体随机刷新”,代码如下,利用flag全局变量使金币每15帧刷新一次

360截图20210612200704402.jpg

那么假设不以帧计时,那么有没有专门的API可以实现计时呢?

一、Invoke函数
·Invoke(string, float):在float秒后执行函数string,只会执行一次
·InvokeRepeating(string,float1,float2):在float1秒后执行函数string,接下来每float2秒执行一次
·CancelInvoke():使这个脚本中所有的Invoke调用失效

同等代码如下:除此之外,当按下C键之后,所有的刷新都会停止

360截图20210612200833275.jpg

Invoke 相关的函数都在 MonoBehaviour 类里面,我们所有写的脚本类都是 MonoBehaviour 类的子类,所以我们可以直接通过方法名来调用父类中的方法

二、碰撞销毁

当主角碰撞到金币时,金币应该马上被销毁,不然就可以“反复刷分”,这显然是不合理的

方法如下:因为Coin太多,而名字是唯一的,所以要先建立Tag标签



之后只需要编写代码实现:当主角与标签为Tag的物体发生碰撞的时候,销毁这个物体即可,如下:





除此之外,最好将主角方块的质量设的特别大,这样主角就基本不会发生碰撞效果

实现结果:





当然,还可以将碰撞改为触发,并移除金币的刚体组件,给金币加上自动旋转效果,金币脚本和效果如下:




————————————————


版权声明:本文为CSDN博主「Jaihk662」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Jaihk662/article/details/86766641




2021-6-12 20:12:56  
 赞 赞 0

使用道具 登录

1个回答,把该问题分享到群,邀请大神一起回答。
2#
谢谢楼主共享!!
回复 收起回复
2021-6-14 16:21:27   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

手机游戏引擎手游引擎Unity3D技术
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表