Unity 撞擊相對速度大於指定值時播放音效/音效的音量基於撞擊相對速度


有時場景中物體碰撞太多,如果全部都發出聲音會導致聲音太多或很煩的感覺,所以可以使用這個方法,當物體碰撞的相對線性速度大於指定值時才播放音效,那聲音就不會因為輕輕的碰撞播放,還可以利用這個方法做出撞擊相對速度越大聲音越大的效果。

Audio Source 中先選好音效

碰撞物體的相對線性速度代碼為: 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();
        }
    }
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料