关于解密游戏的部分功能实现

406次阅读
没有评论

1. 准星更改功能

将可以互动的物品上都设置一个 Object 的标签,这是为了在准星对焦到可互动物体上,可以更改准星图片,来提示玩家可以互动。

关于解密游戏的部分功能实现
关于解密游戏的部分功能实现

使用射线检测,从主摄像机中间发射一条射线,距离为 5,当射线打中带有 Object 标签的物体时,图片修改。

2 物品管理功能

由于本项目很小,物品很少,并不需要搭建框架,所以为了方便,采用集中列举方法。

可以互动的物体有:四个密码,可开关的门,一个需要检视的相框,一把钥匙

所以我们可以在射线检测的基础上再添加判断,不过这次需要更改物体的名字来做二次判断。

关于解密游戏的部分功能实现

此方法的好处在于非常快捷,适合这样小项目,如果物品很多以及需要扩展,则此方法不适用,需要重新搭建物品管理框架。

3. 物品检视功能

基于利用 RenderTexture 在 UI 上显示、旋转模型,教程可以参考Unity 教程:利用 RenderTexture 在 UI 上显示、旋转模型_哔哩哔哩_bilibili

创建一个渲染器纹理和新摄像机以及一个新面板。摄像机的目标显示可以改为其他通道,防止与主摄像机混乱使用,同时将目标纹理设置成刚刚创建的渲染器纹理,这样摄像机所捕捉的画面将会在纹理上呈现。

关于解密游戏的部分功能实现
关于解密游戏的部分功能实现

之后我们在创建的面板上面新增一个原始图像,注意是原始图像,相比于普通图像,原始图像实现的功能更多,普通图像的优点就是较为方便。随后可以把渲染器纹理拖入使用。要注意的是,此面板的父级画布需要显示在主摄像机上,这样玩家才能看到,默认通道显示为 Display1。

关于解密游戏的部分功能实现

最终效果如下

关于解密游戏的部分功能实现

4. 门的交互

我们在交互门的时候,门只有开 关两个状态,所以我们需要将他的动画机设置成相反

关于解密游戏的部分功能实现

同时我们加入门的开关音效,要注意的是需要把 DoorController 添加在门身上,否则帧事件触发不了。

关于解密游戏的部分功能实现

音效触发这里使用的是动画的帧事件

关于解密游戏的部分功能实现

5. 钥匙的交互

在拿到钥匙之后才可以开门,所以我们需要加一个 bool 值来判断是否拿到钥匙

关于解密游戏的部分功能实现

6. 收音机的交互

第一次左键,收音机开始播放,再次左键就会暂停,右键则是关闭收音机。播放需要 AudioSource 组件,我们将它添加在收音机之后。可以在脚本里面设置。

关于解密游戏的部分功能实现

同时在物品交互里添加对收音机右键的功能

关于解密游戏的部分功能实现

7. 密码的交互

将密码以贴花的方式放在场景中,一共有四个,根据密码名字的不同,来显示不同的文字,比如:我应该找到了第一个密码

关于解密游戏的部分功能实现
关于解密游戏的部分功能实现

8. 手电筒的交互

手电筒在桌子上,玩家拿取之后将会销毁。随后玩家身上的手电筒被开启。就实现了拿取手电筒的功能

关于解密游戏的部分功能实现
关于解密游戏的部分功能实现

玩家身上的脚本,通过代码的控制,按 E 可以切换手电筒的开关。

关于解密游戏的部分功能实现

9. 文字显示功能

为了方便以及扩展,我们使用 DoTween 插件实现文字显示。DOTween 是一个 快速 高效 完全类型安全的  Unity 面向对象的 动画引擎 ,针对 C# 用户进行了优化, 免费 开源 ,具有 大量高级功能。官网链接:DOTween(HOTween v2)

文字显示分为两个部分,一是收音机播放是的字幕,二是找到密码和其他东西时的正常提示。

播放字幕使用的是 DoTween 的队列功能,他可以将动画排序,一条条播放。队列也有播放,暂停,停止的功能,也很好的满足收音机的需求。

关于解密游戏的部分功能实现
关于解密游戏的部分功能实现

正常提示也是队列,不同的是他有一个用于接收文字的参数,其他地方可以访问来实现提示功能

关于解密游戏的部分功能实现

在物品管理中的使用

关于解密游戏的部分功能实现

10. 混音器的控制功能

我们将声音分为三个部分:主音量,背景音乐,音效。所以我们要用到混音器

关于解密游戏的部分功能实现

这里添加了三个组,Master(主音量),Music(音乐),SFX(音效)。要注意的是 Master 作为父级,且另外两个等级一致。然后需要将所有的音频组件的输出都设置成相对应的组。

关于解密游戏的部分功能实现

随后 AudioSource 播放音频,混音器将会看到效果,混音器不仅可以集中管理音频,也可以对他们添加后处理,例如高通低通等,但此项目并不需要这些功能。

关于解密游戏的部分功能实现

我们集中了所有音频之后,需要一个设置界面来调整音频大小,新建一个面板,调整好三个音量设置。接下来编写滑动条的脚本。

关于解密游戏的部分功能实现
关于解密游戏的部分功能实现

我们需要添加一个混音器,然后编写三个音量管理的方法,这里的参数 v 将会从滑动条里传入。将脚本给与滑动条,我们在滑动条组件上设置好数值区间后,添加一个值改变时的事件。

关于解密游戏的部分功能实现

这样滑动条就可以控制混音器来调整声音大小。

9. 通关谢幕

我们在最终出口放置一个触发器

关于解密游戏的部分功能实现
关于解密游戏的部分功能实现

当玩家在触发区域时,打开通关界面,并且无法移动,鼠标更改为显示。

这里依然是使用队列动画,随后通关界面将渐渐显示,文字显示,文字显示完毕之后,最后的退出按钮出现。

关于解密游戏的部分功能实现

至此,流程结束

正文完
 0
评论(没有评论)