Unity开发日记【第八天】——音效与对话框
目录
一、音效的实现
二、对话框的实现
一、音效的实现
声音是一个游戏必不可少的元素,现在开始尝试给游戏加入一些音效,这里面设计三个组件,分别是Audio Listener(接收)、Audio Source(发送)、Audio Clips(具体的声音片段),我们可以在主相机上固定有一个Audio Listener,通常情况下也只需要这一个。首先在资源商店找到自己喜欢的背景音乐和音效导入进来,然后我们尝试导入背景音乐。首先给Player添加我们提到的Audio Source的组件
这里的添加的组件为什么是蓝色的,是什么意思?其实很好理解,我们把player变成了预制这个组件是预制后加入的也就是预制里面是没有的所以会有蓝色,所以我们如果希望这是一个临时组件那么就这样,如果我们要添加到预制里面
我们只需要点击右上角的覆盖,然后应用所有就自动保存了
这里可以看见有一个AudioClip,将我们选好的声音片段拖进去就好了。
但是为了可以正常或更好的使用我们还需要一些调整比如音量或者循环播放。
接下来我们假设要添加一个怪物死亡时的音效,首先和之前一样创建一个Audio Soure组件然后把选好的音效加进去
注意,一定要取消下面的勾要不然会在游戏一启动的时候就播放这个音效
那么我们如何控制这个音效何时播放呢?当然是写代码了,但是这里注意我们每个怪物的死亡效果和音效是一样的我们是在父类中实现的,所以这个死亡音效也应该在父类中实现
protected AudioSource DeathAudio; //死亡音效protected virtual void Start(){DeathAudio = GetComponent<AudioSource>();}public void Death(){DeathAudio.Play();Destroy(gameObject);}
代码很简单,声明、初始化、调用就完成了,至此死亡的声音已经加入了,同样的方法我们可以添加跳跃或者下落的动画等,这里就不再赘述。
二、对话框的实现
对话框是用来引导剧情的重要组成部分,这部分我们尝试实现一下简单的对话框,首先我们的想法是在第一关的末尾的地方加上一个按E进入的一个对话框,可以引导玩家进入第二关
在制作UI的时候我们新建了一个画布,此时我们在这个画布上新建一个UI > 面板(panel),这个面板是布满整个画面的,可以改变它的颜色,同样我们用之前锁定的方法来确定UI的位置,调节好数值
最后设置好就是这样的,我们希望玩家在来到关尾的时候会触发这个对话框
为了让这个UI上有文字,所以我们要创建这个对话框的子物体(UI > Text),然后写好字体后调整大小和位置,和其他资源一样字体也是可以在资源商店找到自己喜欢的然后更改。同样对话框也可以修改,最后的效果图:
为了可以实现触发的效果,我们需要在对应的位置加上一个触发器,这里我使用了方形碰撞器,添加到了背景图上,然后添加一段新代码。
代码如下:【注意这里需要把玩家的tag修改为Player才可以触发下面的代码】
using UnityEngine;public class EnterDialog : MonoBehaviour
{public GameObject enterDialog;private void OnTriggerEnter2D(Collider2D collision) //对话框弹出{if(collision.tag == "Player"){enterDialog.SetActive(true);}}private void OnTriggerExit2D(Collider2D collision) //对话框消失{if (collision.tag == "Player"){enterDialog.SetActive(false);}}
}
然后需要默认关闭EnterDialog
然后保存代码测试运行
这里我们希望为各种对话框添加一个渐入的动画,但是我们没有这个动画,这里我们需要新的功能。首先在一个合适的路径创建一个动画,然后拖拽到UI:EnterDialog上,这样会自行创建一个动画控制器,这样我们就可以自行制作动画了但是我们此时没有图片,所以我们需要录制
点击后,我们先修改透明度让文字和对话框消失,然后我们发现它自己记录了一个关键帧
然后在经过任意时间后(把时间轴放在自己想要的地方)恢复透明度,然后关闭录制,我们就完成了一个渐入的动画
至此我们就完成了第一关游戏场景的搭建,我们可以用之前的整个过程搭建更多的游戏场景!
Unity开发日记【第八天】——音效与对话框相关推荐
- unity开发日记之火箭发射
2020-06-25 夜晚,思考人生的意义,乔布斯在斯坦福的演讲说到,你的热爱就是你的事业,你的事业就是你的热爱,我想了想,什么是自己的热爱呢,这么多年,陪伴在自己身边的也就是充满乐趣的游戏吧.自己不 ...
- Unity开发日记【第一天】——素材的导入及地图的建立
前言:本人由于兴趣和未来的工作原因开始尝试接触和学习Unity开发,为了避免忘记一些东西所以写下这些博客算是一个记录. 目录 一.软件的安装与配置 二.如何编辑素材以及Tilemap的使用 三.图层和 ...
- C# + Unity开发日记(二) 利用宏命令实现简单的代码开关
unity提供的宏命令在开发中可以非常方便的对不同的代码进行区分,例如UNITY_EDITOR 就可以定义代码只在编辑器里运行,这样就可以在下面写一些编辑器专用的代码,而不用担心打包Android或者 ...
- Unity开发日记【第七天】——怪物的移动和动画及类的实现
目录 一.怪物的移动 二.怪物的动画 三.实现消灭动画.类的初探. 一.怪物的移动 之前我们向游戏中添加了敌人,现在要努力让敌人动起来,首先我们之前使用的是方形的碰撞器,为了防止怪物卡住我们改用圆形的 ...
- UNITY 开发日记/教程 俄罗斯方块 (五) 方块平移和旋转
接上文. 已经实现了方块下落之后,可以意识到,平移变得非常简单.因为我们已经实现了边界检查的函数,只要把移动目标坐标放进去判断就可以了. 在UPDATE中增加如下代码 if (Input.GetKey ...
- Unity开发日记【第六天】——敌人、受伤和运动手感提升
目录 一.敌人的实现 二.受伤效果的实现 三.代码优化及二段跳实现 一.敌人的实现 今天试图将敌人添加进来让游戏变得更有趣 首先按照之前的步骤,使用素材制作三种敌人的动画 这里面需要添加的组件(敌人首 ...
- [Unity]《太空射击》开发日记Ep.2(初级篇)
文章目录 前言 敌人1脚本 预制件 敌人1的完善工作 触发器式碰撞 屏幕边缘检测 计算敌人1的飞行角度 优化敌人生成器 前言 [Unity]<太空射击>开发日记Ep.1(入门篇) 在上一篇 ...
- 用Unity开发一款2D横版游戏demo
# LanW Game Project 目录 (一) 介绍 (二) 安装教程 (三) 开发流程 1. 新建工程 2. 设置人物 3. 控制主角的移动 4. 添加切换动作的动画 5. 镜头 ...
- 【Unity XR】Unity开发OpenXR
Unity开发OpenXR 介绍OpenXR相关依赖插件 OpenXR OpenXR Plugin XR Interaction Toolkit XR Plugin Management 安装Open ...
最新文章
- 在linux下安装JDK
- boost::mp11::mp_transform相关用法的测试程序
- 关于maven依赖中的scopeprovided/scope使用
- [转]一位研究生的职业生涯规划和心得体会
- python基础——变量
- win10 平台VS2019最简安装实现C++/C开发
- 中秋节公司发了这个(结尾分享红包)
- java输出输入的日期_Java编写的日历,输入年月,输出这个月的日期与星期
- 编程细节 —— 按值传递、按引用传递(final、const)
- 通信原理大作业--基于MATLAB的数字通信系统仿真设计
- Python做一个简单的在线编辑器
- php递归函数理解,详解php递归函数
- html横向导航条代码动态伪类,伪类导航栏.html
- 计算机语言收入排名,全球人均收入排名美元_计算机语言收入排名
- Java面试被问特长,面试官问“你有什么特长”,这三种回答堪称完美,拿走不谢...
- 第二周——团队项目(小小大佬带飞队)
- C++的STL库常见函数
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(9月7日~9月13日)...
- SpringCloud入门总结 + 使用SpringCloud搭建微服务项目
- 7-6 查询水果价格