有時場景中物體碰撞太多,如果全部都發出聲音會導致聲音太多或很煩的感覺,所以可以使用這個方法,當物體碰撞的相對線性速度大於指定值時才播放音效,那聲音就不會因為輕輕的碰撞播放,還可以利用這個方法做出撞擊相對速度越大聲音越大的效果。
碰撞物體的相對線性速度代碼為: collision.relativeVelocity.magnitude
下面是物體碰撞的相對線性速度大於2時播放音效的例子:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OnCollision : MonoBehaviour
{
private AudioSource dropSound;
void Start(){
dropSound=GetComponent<AudioSource>();
}
void OnCollisionEnter(Collision collision)
{
//物體碰撞的相對線性速度大於2
if (collision.relativeVelocity.magnitude > 2){
//播放音效
dropSound.Play();
}
}
}