[Unity3D]使用碰撞体做触发器实现简单的自动开门

时间:2021-07-10 05:04:27

翻译自DT的经典教程:《Introduction to Unity》


在游戏制作中触发器的使用非常的方便也非常实用。这一张我们简单介绍一下如何使用一个简单的触发器来实现自动开门关门的效果。

首先确保你已经对门进行了动画的设置。

具体流程如下。

选择Window->Animation打开动画窗口,选中需要添加动画的门之后点击红色按钮创建新动画。

[Unity3D]使用碰撞体做触发器实现简单的自动开门

选中一个需要添加动画的要素之后(比如Postion.x),点击添加关键帧按钮:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

拖动时间轴,在动画终点的位置放手:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

在场景中拖动那个门到想要停止的位置,创建动画终点的关键帧:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

点击Animation面板上的播放键,可以预览一下门开动的效果。

至此,简单的动画就算是制作完毕了。

接下来就是触发器的制作。

先添加一个GameObject->CreaateOther->Sphere球形的物体,用它来作触发器。

[Unity3D]使用碰撞体做触发器实现简单的自动开门

创建完毕之后,去掉勾选的MeshRender使得球体变成透明的:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

给这个球体添加一段Unity自带的脚本,使其具备触发器的功能:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

选择触发器的Target对象:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

将其激活的事件设置为Animate:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

但是此时的球体是碰撞体,无法冲入实现触发器的功能,所以需要勾选Is Trigger选项:

[Unity3D]使用碰撞体做触发器实现简单的自动开门

这个时候再次运行,便会发现门在我们接近的时候就会自动打开了。


项目源码太大,无法上传,有需要的可以发邮件给我。

[Unity3D]使用碰撞体做触发器实现简单的自动开门