开关门

开关门

1.创建6个“Cube”,拉伸成门的形状;一个“Plane”;一个“GameObject”;

2.点击Unity左上角Assets-Import Package-Characters,导入FPS;

3.四扇门一字排开,从左到右依次是“门3”、“门1”、“门2”、“门4”;“门5”、“门6”与“门1”、“门2”重合;点击Unity右上角“Inspector”,“门3”、“门5”、“门6”、“门4”的“Mesh Renderer”不勾选,“门1”、“门2”的“Mesh Renderer”要勾选(“Mesh Renderer”的作用是使被选中物体隐藏);

4.点击“GameObject”,点击Unity右上角“Inspector”里的“Box Collider”,里面的“Is Trigger”勾选上(其他六扇门也要勾选此选项,或者至少“门3”和“门4”的“Is Trigger”要勾选上,否则FPS可以到门跟前,但是到不了门的另一边);点击“Box Collider”里面的“Edit Collider”,可以对空物体“GameObject”的大小和位置进行调整,调整到门的合适位置;

5.点击“GameObject”,设置状态机State1为“TRIGGER ENTER”,状态1为“TRIGGER EXIT”;分别选中“TRIGGER ENTER”和“TRIGGER EXIT”,点击Unity右上角“动作”-“Recent”-“I Tween Move To”,分别添加两个“I Tween Move To”到状态机的状态栏里;

6.“TRIGGER ENTER”的第一个“I Tween Move To”的“Game Object”设置为“ Specify Game Object”,把“门1”拉进下面的框里;“Transform Position”后面带“=”的框点一下,使用变量,把“门5”拉进下面的框里;第二个“I Tween Move To”的“Game Object”设置为“ Specify Game Object”,把“门2”拉进下面的框里;“Transform Position”后面带“=”的框点一下,使用变量,把“门6”拉进下面的框里;

7.“TRIGGER EXIT”的第一个“I Tween Move To”的“Game Object”设置为“ Specify Game Object”,把“门1”拉进下面的框里;“Transform Position”后面带“=”的框点一下,使用变量,把“门3”拉进下面的框里;第二个“I Tween Move To”的“Game Object”设置为“ Specify Game Object”,把“门2”拉进下面的框里;“Transform Position”后面带“=”的框点一下,使用变量,把“门4”拉进下面的框里;注意“LookAt”选项卡下任何选项都不要点,否则开门后门会90度旋转;

8.点击运行,“WASD”键控制前后左右,FPS接触到“GameObject”的时候,门会自动打开,离开后门会自动关上;原理是FPS接触到“GameObject”的那一刻,“门1”和“门2”移动到“门5”和“门6”的位置,“门3”和“门4”本身就是看不见的,会造成一种进去后自动开门的效果;FPS离开“GameObject”的那一刻,“门1”和“门2”从“门5”和“门6”的位置移动回来,和“门3”、“门4”重合,“门5”和“门6”本身就是看不见的,会造成一种离开后自动关门的效果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 准备场景 下载并导入官方Space Shooter教程的范例素材包,我们仅使用其中的模型、材质、贴图、Pre...
    shimmery阅读 6,518评论 0 16
  • This article is a record of my journey to learn Game Deve...
    蔡子聪阅读 3,891评论 0 9
  • 我们都明白,但是却迟疑 没有真相,没有刻意 只是突然发现,我不需要而已 不想拖累别人,也不想苛责自己 听说的听说,...
    帅气的哭阅读 235评论 0 0
  • 函数的定义和使用 函数是组织好的,可重复使用的,用来实现单一,或相关功能的代码段 定义 def 函数名(【参数】...
    nine_9阅读 165评论 0 0
  • 什么时候才回让你觉得孤独呢? 我这个人吧 笑点太低了 哭点更低 我最孤独的时候 不是一个人独走在阳光斑驳的香樟树下...
    十小返阅读 178评论 0 0