【VR开发】【Unity】【游戏开发】如何控制对象的速度
【背景】
设计一款摩托车竞赛游戏,希望摩托车碰触草皮时会减速,经过草皮后恢复速度。
【方法】
解决方案1:尝试直接用物理材质,设置较大的摩擦力来让摩托自然减速。
结果:失败,并没有对速度产生影响,可能因为轮胎是滚动的,所以摩擦力不会有明显的减速效果。
解决方案2:设置Collider作为触发器,触发后通过脚本给物体做一次减速。
结果:成功。
【实施】
- 创建一个plane对象,Collider勾选顶点,勾选IsTrigger使作为触发器。
- 创建或选择一个绿色的材质作为草皮的视觉效果。
- 将Grass对象防止到跑道的合适位置。
- 为了识别Grass对象,设置Grass的Tag为grass。
- 编写脚本,挂载在摩托车上,判断trigger后,如果对象的tag为grass,则使速度降低到指定数值。为了灵活调整,把指定低速值声明为一个公共变量,脚本如下:
using UnityE