如何检查 OnCollisionEnter2D Continuous

How can check the OnCollisionEnter2D Continuous

我有一个动画和两个 2D 游戏对象,一条线和一个盒子。 Line 有一个关于变换 x 的动画。很快,Line 通过框转到右侧并重新启动。当线路崩溃时,我尝试让盒子播放音频。该系统通过 void OnCollisionEnter2D 工作。但它只工作一次。 OnCollisionEnter2D 不会每次都检查崩溃。那么,我该如何解决逻辑问题。

public AudioClip A1;
public bool b1;

  void Update(){

    if (b1 == true) {
        AudioSource.PlayClipAtPoint (A1, transform.position);
    }

}

void  OnCollisionEnter2D(Collision2D coll) {
    if (coll.gameObject.tag == "Button1")

        b1 = true;

}

void OnCollisionExit2D(Collision2D coll){
if (coll.gameObject.tag == "Button1")
        b1 = false;

}

你可以简单地使用OnCollisionStay2D(Collision2D)你可以在这个函数中播放你的动画。

public AudioClip A1;

void  OnCollisionStay2D(Collision2D coll)
{
    if (coll.gameObject.tag == "Button1")
        AudioSource.PlayClipAtPoint (A1, transform.position);

}

使用OnCollisionStay2D,每次都会检查崩溃

使用UnityEngine; 使用 System.Collections;

public class ExampleClass : MonoBehaviour {
    void OnCollisionStay2D(Collision2D coll) {
        if (coll.gameObject.tag == "Button1")
            b1 = true;

    }
}