有時場景中物體碰撞太多,如果全部都發出聲音會導致聲音太多或很煩的感覺,所以可以使用這個方法,當物體碰撞的相對線性速度大於指定值時才播放音效,那聲音就不會因為輕輕的碰撞播放,還可以利用這個方法做出撞擊相對速度越大聲音越大的效果。
![](https://blog.remyhouse.com/wp-content/uploads/Unity-plays-the-sound-when-the-relative-velocity-of-impact-is-greater-than-the-specified-value.gif)
碰撞物體的相對線性速度代碼為: 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();
}
}
}