我应该如何在Unity 4.3中检测3路碰撞

时间:2014-08-31 03:28:08

标签: unity3d unityscript

我正在Unity中制作篮球比赛,使用扳机对撞机来检测球何时通过网。在此触发发生时,我还想检查球是否与边缘接触(2分钟)(3分钟,嗖嗖声)。我已经为轮圈定义了一个OnCollisionEnter,但是我想知道触发器对撞机本身的OnTriggerEnter函数的这种碰撞。

到目前为止,我有:

#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");
    }
}

我想在前者的功能中检测后者,有些如何。

1 个答案:

答案 0 :(得分: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();
    }
}