Mathf类和Audio和碰撞和刚体和切换场景

  • Mathf类
  1. Mathf.Clamp(value, min, max)  第一个参数value:被检验的值;

Min:当前这个值得取值下限;Max:是当前取值的上限;返回值:value<min的时候返回值等于min,如果value>max值,返回值等于max,如果value处于Min和max之间,返回value。

  1. Mathf.Abs(-2):取绝对值;
  2. float lerp =  Mathf.Lerp(a,b, t);   返回值=(b-a)*t+a  ,线性插值运算;
  3. Mathf.SmoothDamp (transform.position.y, target.position.y, ref yVelocity, 10f); 随着时间的推移逐渐改变一个值到期望值。平滑阻尼,让我们的游戏物体运动更加平滑

第一个参数:移动物体的起始点位置;

第二个参数:移动物体的目标位置;

第三个参数:返回物体移动的速度;

第四个参数:运动所花费时间;

 

  • 声音组件
  1. Audio Listener :相当于人的耳朵,一个场景中不能存在多个,如果存在多个就会一直报Debug
  2. 声音资源的处理:

Force to mono:多声道声音合并成单声道,可以节省空间资源,手机游戏必选;

Load in Background :在后台加载,为了提高整个游戏的运行时体验一样好,官方推荐勾选。

LoadType:Decompress On load:非压缩加载,一旦加载就会存在内存中,方便调用,适合短声音;

         Compressed in memory :压缩加载,用的时候在解压,占用内存小,适合长声音;

         Straming:流形式加载,播放时解码,大文件处理;

扫描二维码关注公众号,回复: 2988429 查看本文章
  1. AudioSource:组件,这个组件有声音片段
  1. Play() :播放声音;
  2. Stop():停止播放;
  3. Pause():暂停播放,重新Play的时候继续播放

     4..AIFF:适合短声音文件,游戏打斗的音效;

        .WAV: 适合短声音文件,游戏打斗的音效;

        .MP3: 适合长声音,一般是游戏背景音乐;

        .OGG: 适合长声音,一般是游戏背景音乐;

 

  • Rigidbody—刚体

使物体能够在物理控制下接受力的作用,改变物体的一些属性,组件让我们的游戏更接近真实生活;

  1. mass:质量
  2. drag:阻力,默认的是0
  3. Angular Drag:转向阻力
  4. Use Gravity:是否有重力效果
  5. Is Kinematic:运动学刚体,开启之后力对他没有影响
  6. Interpolate:防止抖
  7. Collision Detection:碰撞检测:discrete—线性检测最低

   Continous---连续检测

Continous Dynamic—连续动态检测

  1. 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选项才会触发

         OnTriggerEnterCollider other):进入到另外一个碰撞体,只在进入时调用一次

OnTriggerStay(Collider other) :停留在另外一个碰撞体,通留在碰撞体中时一直调用

OnTriggerExit(Collider other):离开另外一个碰撞体,离开碰撞体时调用一次

 

  1. a,b都没有刚体,碰撞体都有,不能发生碰撞,也不会触发这个函数
  2. a,有刚体,有碰撞体,b有碰撞体,没有刚体,其中一个物体上的碰撞体开启了isTrigger,都会触发a,b两个物体上的Trigger函数
  3. 当两个游戏物体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进行加载

  1. 只有场景添加到File-》BuildSetting里才能进行场景切换

猜你喜欢

转载自blog.csdn.net/qq_37896049/article/details/82224519