Unity 叉乘 vector3 四元数 和声音组件
-
数学:a(x,y,z) b(I,j,k)
a X b = (y*k – z * j,-x*k + z *I,x*j-y*i)
-
1. Vector3
知识点:插值运算优化摄像机跟随;球形插值;平滑阻尼运算 Vector3.SmoothDamp;
线性插值运算:
球形插值运算:
平滑阻尼运算:
- 2. 四元数
知识点:什么是四元数;相对于欧拉角旋转的优缺点;四元数相关API;
四元数是一个超复数 ;复数 = 实数 + 虚数 8 + 2i I ^2 = -1
四元数的概念:
四元数的旋转角度赋值:
使用Lerp控制物体旋转速度:
四元数运算符重载:两个四元数相乘,是将两个四元数旋转角度叠加:
案例:四元数控制坦克炮塔的旋转
四元数与向量相乘运算符重载:
- 利用四元数旋转控制坦克
- 四元数和向量相乘:案例:类似于RotateAround功能;
- 四元数和向量相乘:案例:摄像机巡游
- 四元数案例:发射环形子弹、发射扇形子弹;
- 四元数和欧拉角旋转优缺点对比:
欧拉角旋转:优点:很容易理解,方便
缺点:会造成万向节死锁,而且不能避免;
四元数旋转:优点:不会万向节死锁;
缺点:难理解,计算复杂;比V3记录多一维数据;
- AudioSource组件
AudioSource:播放声音的组件,音源
Mute:静音
Play On Awake:自动播放;
Loop:循环;
Priority:优先级;
Volume:音量大小;
Pitch:音调高低;
- AudioListener:监听声音;一般放摄像机上,相当于是耳朵
重要:一个场景内只能有一个这个组件;
- AudioClip:
Unity支持的音频格式:
.aiff:适用于较短声音片段;
.wav: 适用于较短声音片段;
.mp3、OGG:适合较长的音乐片段;
Force to mono:强制将多声道音频转换成单声道音频,占用大小会缩小;勾选Normalize之后会对声音有优化;
Load In Background:在后台加载声音;不阻塞主线程加载;
Load Type:Decompress On Load:以不压缩的形式存在内存,用的时候方便,但是占用内存高;
Compress in memory:以压缩的形式存在内存,
Streaming:以流的形式存在内存,使用时现解码。占用内存最小,增加了磁盘的读写和解压,超大文件才会使用;
Preload Audio Data:预加载音频资源;如果勾选进入场景就会马上加载;如果不勾选,第一次使用音频时才会加载进来;
Compression Format:PCM:音频以最高质量进行存储;
Vorbis:相对来说压缩的更小;根据质量控制Quality选择;
ADPCM:包含噪音,且会被多次播放的音频,脚步声、武器碰撞的声音;
- 场景相关: