实战项目3

文章详细介绍了在Unity3D中实现环境交互的一些技术,包括使用简化版的碰撞mesh,设置属性锁定,设计警报器逻辑,利用单例模式管理资源。此外,还涉及声音控制,如调整AudioSource和加载模式,以及Spot灯的配置。动画方面,讲解了如何创建和编辑动画曲线,实现无限循环,以及通过Animator控制人物移动和转向。最后提到了物体间的交互,如门的开关动画和声音效果,以及切换屏幕材质的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

原本的环境模型有一个简化版的碰撞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在美国输入法下可以让相机与当前视角保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值