【Unity开发】随手记:声音,天空盒技术
写在前面
本系列为笔者实在是不想写作业,来通过写博客勉励自己一下。参考教程为《Unity 3D游戏开发》(中国工信出版集团),大部分代码和注释来源于这个博主,姐妹万岁哈哈哈哈🤣。
文章中只放代码(随缘附少量基础讲解和效果),项目操作可以自行百度or留言,防止太长一篇1~3个案例,案例来源于哈工大(威海)王峥老师布置的作业。
播放声音
使用附件中所给的声音素材完成下列功能:程序运行时在屏幕的左上角出现一个按钮,同时播放pla.mp3声音,当用鼠标点击按钮时,播放mp5.mp3的声音
- 按钮:使用Canvas下的Button即可
- 播放声音:添加Audio Source,在右侧面板设置背景音乐即可
- 点击播放:在按钮单击时调用MainCamera上挂载的脚本文件中的
pressbofang()
函数,MainCamera上挂载的音乐就是要播放的:
该函数体如下所示:
public class AudioSettings : MonoBehaviour
{
AudioSource musics;
void Start()
{
musics = this.GetComponent<AudioSource>();
}
public void pressbofang()
{
if (!musics.isPlaying)
{
musics.Play();
}
}
}
天空盒
使用素材构建冰川天空盒,并编程实现使用鼠标拖动摄像机旋转观察整个场景
- 天空盒:创建材质,设置为6面天空盒,分别赋予背景图
- 为Main Camera挂载天空盒组件和脚本组件:
脚本组件用于让天空盒视野跟随鼠标,获取鼠标移动,并且通过Time.deltaTime
来缩放帧的大小以保证相等:
public class NewBehaviourScript : MonoBehaviour
{
private void Update()
{ // 获取鼠标横向移动,让Unity中摄像机绕Y轴转动
float x = Input.GetAxis("Mouse X");
// 获取鼠标纵向移动,让Unity中摄像机绕X轴转动
float y = Input.GetAxis("Mouse Y");
//需要限制沿X轴旋转角度
if (x != 0 || y != 0)
RotateView(x, y);
}
public float speed = 10;
private void RotateView(float x, float y)
{
x *= speed * Time.deltaTime; //鼠标横向移动变化值
//Unity中摄像机随着x的变化绕Y轴转动
transform.Rotate(0, x, 0);
y *= speed * Time.deltaTime;//鼠标纵向移动变化值
// Unity中摄像机随着y的变化绕X轴转动
transform.Rotate(-y, 0, 0);
}
}