原本的环境模型有一个简化版的碰撞mesh,创建右边后直接拖过去。属性面板右上角有个,小锁,可以锁定选中物体的属性,即使点其他物体也不会变。
实现警报器的逻辑,警报灯用直射光,这个类做成单例模式,方便其他类调用。
声音的控制,添加audiosource组建,如果有问题,可以试着把声音的加载模式改为depressed。spot点灯右边的属性面板有个cookie就是照到地面上的图案,可以调大强度让图案更清晰。
灯检测碰撞可以先做一个模型,给这个模型mesh collider,这个模型成为灯的子物体,在取消这个模型的render。可以把整个摄像头警报装置做成预制体。选中摄像机,在window里打开动画窗口
点击创建,添加物体,下面选曲线,然后点击圈的中间那个就可以k帧。自动无限循环。通过给
给一个物体录完动画后,另一个物体创建动画控制器,把上一个录完动画的控制器的joint传过去就可以了。
可以把标签都统一写到一个类里面,这样在其他类里面就可以直接访问这个类的字段,不写字符串,不容易出错。
在警报的脚本里创建发现玩家的方法,last位置是创建的vector3,然后在激光和摄像机脚本里调用
控制激光闪烁的逻辑。
添加主角,添加charactercontroller,调整到合适位置,添加刚体,不勾选运动学(纠正),冻结图中所示。
创建一个混合树,右边parameter选speed,compute 阈值也是speed
添加三个参数,speed最好不要大于或者小于0。animator的apply root motion要勾上,动画可以影响人物的实际位置。动画控制器取消勾选has exit time
控制人物移动的代码(这个转身可能有点问题)(已弃用看下面)。只有在game模式里操作人物才会动。
动画右上角的speed是动画播放速度,也可以通过这个来调移动速度。
新的转向方法和嗯shift慢走。
播放走路声音的代码,记得给物体加audio source,拖声音。
用上年代码控制触发警报时背景声音的切换,下面获取组件时要注意默认直接写是从挂脚本的物体获得组件。所以两个声音最好分开放,分开获取组建。
添加个open的bool条件,做门的动画。
控制主角进去门自动打开的代码,这里去掉了idle动画,创建了一个空物体给了一个触发器检测,脚本挂在这个空物体上面,给玩家player的标签。
电梯里面的双层门,内侧门和外侧门保持一致。
控制门打开时声音的播放。可以在动画右上角取消勾选循环
控制声音在定点位置播放,防止播放捡起声音后物体销毁,声音停止。这个脚本挂在要销毁的物体就行,记得把声音给过去。
控制人物靠近按Z换屏幕材质(图案)的逻辑。ctrl+shift+f在美国输入法下可以让相机与当前视角保持一致。