unity学习笔记10
一、生命周期函数
1.Awake()
调用时间:对象被激活或创建时。
用途:通常用于初始化对象的状态,获取组件引用或执行其他在脚本生命周期早期需要完成的任务。
2.OnEnable():
调用时间:对象激活时,包括对象被创建和SetActive(true)时。
用途:在对象被激活时调用,通常用于启用资源或订阅事件。
3.Start():
调用时间:在Awake()和第一帧Update()之间。
用途:在脚本实例被创建后,第一次Update()之前调用。通常用于初始化一些需要在第一帧前完成的内容。
4.FixedUpdate():
调用时间:固定时间间隔.、与物理相关。
用途: 主要用于处理与物理引擎相关的逻辑,例如处理刚体运动、施加力、检测碰撞等。
5.Update():
调用时间:每一帧。
用途:处理主要的游戏逻辑,例如用户输入、动画等。
6.LateUpdate():
调用时间:在所有Update()调用之后。
用途:通常用于处理在Update()中计算后的逻辑,例如相机跟随。
7.OnDisable():
调用时间:对象禁用时,包括SetActive(false)时。
用途:在对象被禁用时调用,通常用于取消资源订阅或清理操作。
8.OnDestroy():
调用时间:对象被销毁时。
用途:在对象被销毁时调用,通常用于执行一些清理工作,释放资源。
二、Camera
在Unity中,相机(Camera)用于定义视图、渲染场景以及创建视觉效果。
1.主要属性
位置和旋转: 相机有位置(Position)和旋转(Rotation),用于确定相机在场景中的位置和朝向。
投影类型: 相机可以是透视投影(Perspective)或正交投影(Orthographic),分别用于3D和2D场景。
2.背景
背景颜色: 定义相机背景的颜色。
天空盒(Skybox): 可以使用天空盒来定义相机的背景,创建更具环境感的场景。
3.渲染路径和图像效果
相机的渲染路径定义了渲染管线的方式,例如前向渲染(Forward Rendering)和延迟渲染(Deferred Rendering)。
可以通过添加图像效果(Post-Processing Effects)来改变相机渲染的最终结果,如模糊、颜色校正等。
Depth(深度):决定渲染顺序,深度值较小的相机将在深度值较大的相机之前进行渲染。
Background Color(背景颜色):定义相机背景的颜色。
Viewport Rect(视口矩形):定义相机在屏幕上的位置和大小。
三、音频组件
1.Audio Listener(音频监听器):
作用:Audio Listener 组件附加在摄像机上,用于监听场景中的所有声音。一个场景通常只有一个 Audio Listener。没有这个组件将无法听到声音
主要属性和功能:
Volume ( 音量)︰控制所有听众(Audio Listener)的整体音量。
Pause (暂停):暂停或恢复场景中所有声音的播放。
Velocity Update Mode 速度更新模式)︰设置音频监听器速度的更新模式,用于影响3D音效效果。
2.Audio Source(音频源):
添加方式:Audio Source 是一个游戏对象上的组件,可以通过在Inspector视图中选择"Add Component" -> "Audio" -> "Audio Source" 来添加。
主要属性和功能:
Audio Clip (音频剪辑)︰指定要播放的音频文件,可以是.wav、.mp3等格式的音频文件。
Volume (音量):控制音频源的音量,取值范围为0.0(静音)到1.0(最大音量)
Pitch (音调):控制音频源的音调,用于改变音频的音高。
Loop(循环)︰是否循环播放音频。
Spatial Blend(空间混合)︰控制音频在3D空间中的混合,用于实现音频的3D空间效果。
3DSound Settings (3D音效设置)︰包括Min Distance(最小距离)、Max Distance(最大距离)等设置,影响音频的立体声效果。
Play On Awake(启动时播放)︰是否在游戏对象被激活时自动播放音频。
通过脚本控制音频:
申明两个变量,再将音频文件拖拽上来。
public AudioClip music;
public AudioClip se;
获取播放器组件
private AudioSource player;
player = GetComponent<AudioSource>();
设定播放的音频片段: player.clip = music;
循环播放: player.loop = true;
设置音量:player.volume = 0.5f;
播放控制: player.Play();
暂停和继续播放:player.Pause); player.UnPause();
停止和开始播放: player.Stop(): player.Play();
两者的区别:第一组是从哪里停止的就从哪里开始,第二组是停止后从头开始播放。
通过按键(空格)控制
void updata (){
if( Input.GetKeyDown(KeyCode.Space ) ){
if( player.isPlaying){
player.Stop();
}else{
player.Play();
}
}
}