2014-08-31 53 views
0

我正在Unity中制作篮球比赛,使用触发式对撞机来检测球何时穿过网。在这个触发发生的时候,我也想检查球是否与轮辋接触(2pts)或没有(3pts,swish)。我已经为边框定义了一个OnCollisionEnter,但是我想从触发对撞机本身的OnTriggerEnter函数中知道这种冲突。我应该如何检测Unity 4.3中的3路碰撞

到目前为止,我有:

#pragma strict 

// defined on the basket itself 
function OnTriggerEnter(info:Collider) { 
    if (info.name == "ball") { 
     Debug.Log("Basket made"); 
    } 
} 

然后

#pragma strict 

// defined on the rim 
function OnCollisionEnter (info:Collision) { 
    if (info.collider.name == "ball") { 
     Debug.Log("Ball hit rim"); 
    } 
} 

我想检测后者在前者,有些怎样的功能。

+0

使用布尔变量,将其设置为true,而球在边缘上 – LearnCocos2D 2014-08-31 07:06:41

回答

1

您对球定义两个函数:

function HitRim() 
{ 
    // do something here, like score + 2 
} 

function HitBasket() 
{ 
    // do something here, like score + 3 
} 

和你的代码更改为:

// defined on the rim 
function OnCollisionEnter (info:Collision) { 
    if (info.collider.name == "ball") { 
     Debug.Log("Ball hit rim"); 
     var lBall: YourBallClass; 
     lBall= info.gameObject.GetComponent("YourBallClass"); 
     lBall.HitRim(); 
    } 
} 

// defined on the basket 
function OnTriggerEnter(info:Collision) { 
    if (info.collider.name == "ball") { 
     Debug.Log("Ball hit basket"); 
     var lBall: YourBallClass; 
     lBall= info.gameObject.GetComponent("YourBallClass"); 
     lBall.HitBasket(); 
    } 
}