- Mathf类
- Mathf.Clamp(value, min, max) 第一个参数value:被检验的值;
Min:当前这个值得取值下限;Max:是当前取值的上限;返回值:value<min的时候返回值等于min,如果value>max值,返回值等于max,如果value处于Min和max之间,返回value。
- Mathf.Abs(-2):取绝对值;
- float lerp = Mathf.Lerp(a,b, t); 返回值=(b-a)*t+a ,线性插值运算;
- Mathf.SmoothDamp (transform.position.y, target.position.y, ref yVelocity, 10f); 随着时间的推移逐渐改变一个值到期望值。平滑阻尼,让我们的游戏物体运动更加平滑
第一个参数:移动物体的起始点位置;
第二个参数:移动物体的目标位置;
第三个参数:返回物体移动的速度;
第四个参数:运动所花费时间;
- 声音组件
- Audio Listener :相当于人的耳朵,一个场景中不能存在多个,如果存在多个就会一直报Debug
- 声音资源的处理:
Force to mono:多声道声音合并成单声道,可以节省空间资源,手机游戏必选;
Load in Background :在后台加载,为了提高整个游戏的运行时体验一样好,官方推荐勾选。
LoadType:Decompress On load:非压缩加载,一旦加载就会存在内存中,方便调用,适合短声音;
Compressed in memory :压缩加载,用的时候在解压,占用内存小,适合长声音;
Straming:流形式加载,播放时解码,大文件处理;
- AudioSource:组件,这个组件有声音片段
- Play() :播放声音;
- Stop():停止播放;
- Pause():暂停播放,重新Play的时候继续播放
4..AIFF:适合短声音文件,游戏打斗的音效;
.WAV: 适合短声音文件,游戏打斗的音效;
.MP3: 适合长声音,一般是游戏背景音乐;
.OGG: 适合长声音,一般是游戏背景音乐;
- Rigidbody—刚体
使物体能够在物理控制下接受力的作用,改变物体的一些属性,组件让我们的游戏更接近真实生活;
- mass:质量
- drag:阻力,默认的是0
- Angular Drag:转向阻力
- Use Gravity:是否有重力效果
- Is Kinematic:运动学刚体,开启之后力对他没有影响
- Interpolate:防止抖
- Collision Detection:碰撞检测:discrete—线性检测最低
Continous---连续检测
Continous Dynamic—连续动态检测
- Constraints:Freeze Position:选择哪个轴不受碰撞影响;
Freeze Rotation:选择碰撞不沿着某个轴旋转
9. velocity:给刚体赋值运行速度
-----发生碰撞的必要条件:1.碰撞的两个物体,必须有一个有刚体。一般刚体绑定在运动的游戏物体上。刚体所在的物体不运动会检测精度下降。
2.碰撞的两个物体必须都有碰撞器;也就是Collider
- 碰撞体Box Collider
Is Trigger:勾选之后,没有物理碰撞的效果,但是会触发碰撞检测函数;
Material:物理材质,可以做弹球的效果(Project—>create—>PhysicMaterial)
Dynamic Friction:动态摩擦,滑动摩擦,运动时收到的摩擦力
Static Friction:静态摩擦力,静止时收到的摩擦力
Bounciness:弹力
Friction Combine:摩擦力组合方式
Bounce Combine:弹力组合方式
Center :碰撞体的中心偏移
Size:碰撞体的大小
- 碰撞检测函数
Collider:只有勾选了Collider的isTrigger选项才会触发
OnTriggerEnter(Collider other):进入到另外一个碰撞体,只在进入时调用一次
OnTriggerStay(Collider other) :停留在另外一个碰撞体,通留在碰撞体中时一直调用
OnTriggerExit(Collider other):离开另外一个碰撞体,离开碰撞体时调用一次
- a,b都没有刚体,碰撞体都有,不能发生碰撞,也不会触发这个函数
- a,有刚体,有碰撞体,b有碰撞体,没有刚体,其中一个物体上的碰撞体开启了isTrigger,都会触发a,b两个物体上的Trigger函数
- 当两个游戏物体a,b发生碰撞,其中一个游戏物体的Trigger检测函数所在的类组件是失活状态的,也会检测这个函数的触发
OnCollisionEnter(Collision collision):碰撞体进入调用,只会调用一次
OnCollisionStay(Collision collision):碰撞体接触调用,当两个碰撞体都静止时,不会调用,当这两个碰撞体有一个运动就会检测
OnCollisionExit(Collision collision):碰撞体离开时会调用,只会调用一次
注意:1。当两个游戏物体a,b发生碰撞,其中一个游戏物体的Trigger检测函数所在的类组件是失活状态的,也会检测这个函数的触发
- 切换场景SceneManager .LoadScene("Tank");
1.新建场景,Fileànew scene 保存场景:Ctrl + s
2. SceneManager .LoadScene("Tank"); 通过场景名进行加载(推荐使用)
LoadScene(int sceneBuildIndex); 通过场景index进行加载
- 只有场景添加到File-》BuildSetting里才能进行场景切换