Unity--游戏字幕

本博只为复习知识,纯属博主个人碎碎念,不具有普适性,大神绕道。


说了那么多碰撞器,动画,声音什么的,游戏中常见的字幕还没说过。像我们玩消消乐什么的,是不是都会有分数的变化?那这个是怎么实现的呢?

本节会设计到的有Canvas、Text和Image组件。本节要实现的是:现在要限制玩家自由地进入门中——只有在收集到了全部必要物品的情况下才可以进入门中。通过在玩家进入触发区域时,在屏幕上显示相关的提示,就能让玩家意识到他必须收集完所有能源才能进入房中。

思路如下:


添加能源:

通过预制体,拖动到Hierarchy面板产生GameObject这个就不多说了,当人碰到能量石的时候,能量石就消失,所以能量时要有碰撞器,并且是触发式的。我们想让能量石一直在旋转,因此我们写了一个脚本控制它,意思就是这个能量石绕着Y轴进行旋转:

rotationSpeed乘上Time.deltaTime的原因还是把以帧为单位变化改为以秒为单位变化。

然后添加碰撞检测的代码:

当游戏场景中有物体进入powerCell触发器碰撞器的区域内,就会触发调用如上函数。函数首先会检测这个物体是否为玩家(Player)。

如果是玩家,我们便通过SendMessage()函数发送一个消息给玩家对象,让其执行自身(玩家对象)脚本中一个名为CellPickup的函数。最后,我们移除场景中的这个能源物体,完成拾取操作。


编写玩家脚本

我们要把玩家当前所收集到的能源数保存到一个变量charge中,为了确保这个变量可以被其它脚本访问到,我们将把它声明为static(静态变量),静态变量是一种可以被其它脚本访问的全局变量,并且不会像公有变量一样出现在检视面板中。

这点考虑一下c++其实也是一样的, 在c++中如果该类中的某个变量想被其他类中的变量访问,一个方法就是把该变量设置为全局变量,一个方法就是把该变量设置为static。

当我们重新加载或测试同一场景时,变量值可能会被系统保留,因此我们在Start()函数中对其进行初始化,确保程序能正确运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

keneyr

老爷~给小的赏点盘缠吧555~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值