OnTriggerEnter() 播放声音时 Unity Editor 冻结

Unity Editor freezes when OnTriggerEnter() plays a sound

每次玩家进入触发器时,我的 Unity 编辑器都会冻结,

两者都没有问题,所以我知道它与 OnTriggerEnter() 激活源有关。

public class PlaySound : MonoBehaviour
{
    public AudioSource source;
    public Collider coll;
    public AudioClip clip;

    public bool soundPlaying;

    private void Start() 
    {
        source = GetComponent<AudioSource>();
        coll = GetComponent<Collider>();
        soundPlaying = false;
    }

    private void Update() 
    {
        while(source.isPlaying)
        {
            soundPlaying = true;
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("Space entered");
            source.Play();
        }
    }

    private void OnTriggerEnter(Collider other) 
    {
        if (other.gameObject.tag == "Player")
        {
            Debug.Log("player entered");
            source.Play();
        }   
    }
    
}

另外请注意,soundPlaying Bool 用于 AI 检测对象,因为周围会散布一些对象。

没关系我解决了它,更新函数中的 while 循环可能导致溢出所以我将其更改为 if 语句现在一切正常