为什么我的子弹会立即毁掉而不是什么时候才会相撞?

问题描述 投票:0回答:1

我是第一次学习 Unity,我的镜头有问题...

我的子弹会立即销毁,而不是何时相撞。

这是我的项目符号代码:

public class BulletController : MonoBehaviour
{
    public float bulletSpeed;
    public Rigidbody2D theRB;
    public Vector2 moveDir;

    // Update is called once per frame
    void Update()
    {
        theRB.velocity = moveDir * bulletSpeed;
    }

    private void OnTriggerEnter2D(Collider2D other)
    {
        Destroy(gameObject);

    }

    private void OnBecameInvisible()
    {

        Destroy(gameObject);
    }

}

当我玩游戏时,射击立即停止。

如果我删除这个功能:

  private void OnTriggerEnter2D(Collider2D other)
    {
        Destroy(gameObject);

    }

然后射击开始,但从未发生碰撞。 :(

有人可以帮助我吗?

c# unity-game-engine unityscript
1个回答
0
投票

您可以使用

Debug.Log(other);
中的
OnTriggerEnter2D()
来查看是谁触发了碰撞。如果您不希望它触发,但又不可避免地进入触发器,请将
Destroy(gameObject);
放入
if(collider != <something>){}

© www.soinside.com 2019 - 2024. All rights reserved.