【问题标题】:Collision detection in Unity 2dUnity 2d 中的碰撞检测
【发布时间】:2021-08-12 00:41:33
【问题描述】:

我正在开发我的第一个 Unity 项目。这是一个小游戏,你必须移动你的星球来躲避来袭的小行星。

我已经设置了一个简单的碰撞检测系统,但目前无法正常工作,我不完全确定原因。

这些是代码行,它们在行星的移动脚本上,连接到我的游戏对象行星:

private void OnTriggeredEnter2D(Collider2D collision)
{
    if (collision.tag == "Asteroid")
    {
        restartPanel.SetActive(true);
    }
}

小行星是以这种方式在附加到不可见游戏对象的脚本中动态生成的预制件:

void Update()
{
    float interval = Time.deltaTime;
    random = Random.Range(0f, 1f);
    Debug.Log(interval);
    Debug.Log(random);
    if (interval > random) {
        GameObject newAsteroid = Instantiate(asteroidPrefab, GetRandomPosition(), Quaternion.identity);
        newAsteroid.GetComponent<Gravity>().planet = planet;
    }
}

当行星与任何小行星相撞时,或者当小行星相互碰撞时,什么都不会发生,如果这很重要的话,我不完全确定为什么。

感谢您的帮助。

【问题讨论】:

    标签: c# unity3d collision-detection game-engine 2d-games


    【解决方案1】:

    方法名不正确,我搞砸了,应该是OnTriggerEnter2D,而不是OnTriggeredEnter2D。

    哎呀。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      相关资源
      最近更新 更多