2014-01-13 23 views
0

下面是我使用的脚本:OnTriggerEnter,得分计算不正确。我的脚本有什么问题?

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

+0

Theres没有错你的代码,检查并确保你的对象只有一个collider,你也可以检查进入collider的对象的名字。 – wtsang02

+0

看来我没有一个对撞机。谢谢你的回复! – Edvin

回答

0

你可能在被冲突对象层次以上的对撞机。

看看这个Layer-Based Collision Detection document。它解释了如何在一个图层中仅创建一个对撞机,并仅在该特定图层中发生所有冲突,从而仅激活该单个对撞机。

+0

感谢罗伯托,这有帮助! – Edvin