开关门
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”本身就是看不见的,会造成一种离开后自动关门的效果。