如何检查OnCollisionEnter2D连续

时间:2015-08-02 22:44:36

标签: c# unity3d collision-detection

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

Visual

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;

}

2 个答案:

答案 0 :(得分:1)

您只需使用 OnCollisionStay2D(Collision2D)即可在此功能中播放动画。

public AudioClip A1;

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

}

答案 1 :(得分:0)

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

使用UnityEngine; 使用System.Collections;

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

    }
}