【问题标题】:OnTriggerEnter, the score isn't calculated correctly. What's wrong with my script?OnTriggerEnter,分数计算不正确。我的脚本有什么问题?
【发布时间】:2014-01-31 16:02:59
【问题描述】:

这是我正在使用的脚本:

function OnTriggerEnter( other : Collider ) 
{
    if (other.tag == "Coins")
    {
        score = score + 5;
        Debug.Log("Player Score" + score);
        Destroy(other.gameObject);
    }
}

function OnGUI () 
{
    GUI.Box (Rect (10,35,120,30), "Player Score : " + Mathf.Round(score));
}

问题是当我进入硬币的触发器时,它不会+ 5。 有时它会突然 + 10 或 + 15。导致得分高于预期。

这是一个例子,我只收集了两个硬币,而不是得到 10 分,我得到了 20 分。

http://imgur.com/z1xqgrh

【问题讨论】:

  • 您的代码没有问题,检查并确保您的对象中只有1个碰撞器,您还可以检查进入碰撞器的对象的名称。
  • 看来我没有只有 1 个对撞机。感谢您的回复!

标签: user-interface unity3d


【解决方案1】:

您可能在碰撞对象层次结构中有多个碰撞器。

看看这个Layer-Based Collision Detection document。它解释了如何在一个层中只创建一个碰撞器,并使所有碰撞只发生在该特定层中,从而只激活那个单一的碰撞器。

【讨论】:

  • 谢谢罗伯托,这有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2017-12-11
  • 2018-01-21
  • 2021-01-04
  • 2015-04-06
  • 2014-06-29
相关资源
最近更新 更多