The Default Camera

在Scene Manager窗口中点击新建Default Camera,并将生成的NavCam 1移动到开始时Main Camera所在的位置

  1. 选择NavCam 1 ,在inspector窗口中的Game Camera脚本里解锁X-axis movement,并将其中的Offset改为4.91,其中的influence = 1参数指的是目标移动一个单位,摄像机也移动一个单位,打开Constrain,最小-17,最高40

  2. 解锁Spin rotation,Affect by:Look At Target,Target height offset 1.08,让角色移动时摄像机跟随旋转

  3. 解锁 Field of view,offset设为-30.06,打开Constrain,最小20,最高60,让角色距离镜头太远时能够缩放焦距

在运行模式下修改完摄像机数据,记得复制component

Using Triggers

我们这次使用trigger来改变当前摄像机

  1. 在Scene Manager中新建GameCamera,命名为NavCam Platform,将这个Camera放在角色去会客厅时距离比较近的位置。

image-20211026141024286

  1. 在Scene Manager中新建Trigger,选中并命名为Trigger_PlatformCamera,在Trigger脚本中,进行编辑

    image-20211026142923505

    “Run In Background”是相对于“Pause Gameplay”的模式,Player触发Trigger时不会使菜单因为暂停而闪烁消失

    我们不新建Trigger对象,而是在这个Trigger对象里面再添加一个trigger脚本,然后编辑

    image-20211026143459356

这样Player离开Trigger区域时会自动返回主摄像机

Hotspots and Interactions

制作Hotspot之前,先设定一下电梯门的动画,由于这个电梯门是自带打开关闭和停止三个动画的,所以设置动画时需要特别更改一些参数

首先,选中My 3D Game文件夹,新建一个animatorcontroller命名为LiftController,双击打开,然后在TutorialFiles——Set——Lift中把LiftDoorsClose、LiftDoorsOpen、LiftDoorsShut拉取进去

选中LiftDoorsShut右键——Set as Layer Default State。新建Parameter——int——命名为State,在Any State中分别向三个动画片段添加transform

image-20211026170611266

编辑这三个Transition的条件,注意将它们的Transition Duration都设为0,Can Transiton To Self都关闭(防止重复第一帧),然后LiftDoorsShut的条件是State Equals 0、LiftDoorsOpen的条件是State Equals 1、LiftDoorsClose的条件是State Equals 2

image-20211026170952887

在hierarchy窗口中——SetGeometry——Lift,将LiftController放进Animator里面

  1. 创建Lift HotSpot

    在Scene Manager窗口中新建HotSpot,命名为HotSpot_Lift,选中这个HotSpot,移动并缩放填满电梯门口,在Inspector窗口中Label填写“电梯”

    然后点击新建Use interactions,Cursor 选择 Lookat,Player action选择Turn to face,新建interaction

    选中这个interaction,Action type选择Dialogue Playspeech,Line text输入“我可以搭乘电梯出去”

    在Settings manager——interface settings里面,可以选择交互方式,这里是choose Hotspot then interaction

    回到Hotspot_Lift,接着新建Use interaction,Cursor 选择 Use,Player action选择Walk To Marker,新建interaction和Marker,勾选Face after moving

    这个Marker放在电梯前面,在Scene Manager窗口中,新建Simple 摄像机,镜头放在电梯前面,命名为Camera_Lift,然后再新建一个Marker,命名为Marker_Inside Lift,放在电梯里面,再新建一个Collision Cube,移动并缩放填满电梯门口

    编辑这个电梯:Use的interaction,注意红框中标记的Object-Animate和Object message,后者是用来开启和关闭碰撞的

    image-20211027114351968

    然后在Cursor Manager里面,Hotspot cursor勾选Prefix cursor Lables,这样选择交互方式时会出现交互提示

  2. 创建LaserGun Hotspot

    在My 3D Game文件夹里面,创建新的Animator Controller,命名为Laser Controller,将Tutorial Files——Set——LaserGun内部的动画片段拖拽到Laser Controller里边

    像之前对于Lift的动画片段处理一样,这一次我们把On动画作为默认,On的State为0、MoveUp的State为1、Off的State为2、TurnOff的State为3。

    选择SetGeometry——LaserGun,将Laser Controller放在Animator里面

    新建Hotspot,命名为Hotspot_Laser,将其缩放调整,覆盖到场景激光枪的前部,将其label改为“激光枪”,创建它的action

    image-20211027151754233

    创建一个Simple摄像机,命名为Camera_Laser_1,放在激光枪的尾部仰视它,然后Ctrl+D复制一个命名为Camera_Laser_2,修改一下Field of View和旋转

    image-20211027155629172

    编辑一下激光枪:Look at的interaction

    image-20211027160139523

    勾选return to last gameplay就能自动载入默认的摄像机