UnityVR--小程序7--坦克对战

在游戏中没有对手或敌人也是一件无聊的事,本文为主角增加一个敌人——坦克。坦克在场景中沿着自身坐标的Z轴来回巡视,并使用了物理系统的球形检测,如果主角走入坦克的检测范围内,则坦克将炮口瞄准主角,向主角发动攻击。

1. 加入坦克对象。坦克分成左、右轮子和炮口三个部分,坦克控制脚本(TankCtrl.cs)挂载在坦克根节点上。

2. 坦克加上Collider组件与Rigidbody组件,使用Sphere、Box、Capsule型的Collider都可以,需要调整Collider的位置与大小,符合坦克的大小。Rigidbody中需要勾选重力。

  

 3. TankCtrl.cs脚本,分3段。另外,在头文件中,需要引用UnityEngine.UI命名空间

(1)变量定义与Start()方法:

  (2)Update()方法:其中使用了物理系统的球形检测方法,检测以坦克为圆心,2为半径的范围内,rayCast层的碰撞体,因此,主角需要加入rayCast层,才会被坦克检测到。而如果有其他物体进入坦克检测范围内,由于不是rayCast层,就不会被坦克检测。

主角需要加入rayCast层:

 

  (3)可以使用Gizmos画出坦克的检测范围,方便调试。

 4. 坦克的子弹:制作方式与UnityVR--小程序3--金色的子弹1 中的子弹制作方式相同,挂载TankBullet.cs脚本,并保存为tankBullet.prefab预制体。TankBullet.cs如下图:

 5. 最后,别忘记在坦克的控制脚本TankCtrl.cs中设置公共变量:坦克速度和坦克子弹的预制体。也可以将坦克保存为预制体。

 以上,坦克部分就制作完成,接下来,需要修改一下主角的子弹脚本,这样主角的子弹就可以打坦克了。

6. 主角子弹脚本(修改后):BulletPlus.cs

补充:

如果坦克被消灭后,跳出几个金币的奖励,会让游戏变得更加趣味。方法如下:

1. 在Start()之前,增加定义一个公共变量,用于拖入金币的预制体Coin.prefab。别忘了,在脚本保存后,需要在Unity-Inspector界面中拖入金币的预制体

  

 2. 将TankCtrl.cs的最后一段,描述坦克分值小于零时的情况的脚本中,加入以下这段:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值