Как сделать эффект Raycast именованным только GameObject

В моем текущем проекте (Unity 3.3 IOS) у меня есть персонаж, идущий по мосту. Если персонаж упадет с моста, он упадет в огненную реку и взорвется. Проблема в том, что когда он находится на мосту, Raycast считывает жесткое тело на мосту, и он немедленно взрывается. Если я переставлю его в окне сцены в положение на открытом воздухе, сила тяжести заставит его упасть в реку и взорваться, как и планировалось. Я добавил следующую строку кода, чтобы обозначить уничтожение только в том случае, если raycast попадает в «плоскость». Не работает.

if(hit.collider.gameObject.name == "plane");

Персонаж не уничтожается на мосту или при попадании в самолет / огненную реку.

Он будет ходить по нескольким мостам и зданиям, поэтому я хочу, чтобы он был уничтожен / взорван только в случае попадания луча в самолет.

Может ли кто-нибудь сказать мне, почему мой код не работает или как его исправить?

Вот мой полный код Raycast.

var explosion : Transform;
var point : Vector3;
var explosionRotation : Quaternion;

function Update()
{
    var hit :RaycastHit;
    var dwn = transform.TransformDirection(Vector3.down);
    if (Physics.Raycast(this.transform.position,dwn,hit,3))           
        if (hit.collider.gameObject.name == "plane")
        {
            point = hit.point;
            explosionRotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
            Explode();
        }
}

function Explode()
{
    Destroy(this.gameObject);
    var instanExplosion = Instantiate(explosion, point, explosionRotation);
}

person Digital D    schedule 19.05.2011    source источник


Ответы (1)


Можете ли вы поделиться своей сценой с основными задействованными объектами?

Могут возникнуть некоторые проблемы.

  • Мост тоже можно назвать самолетным.
  • Луч слишком длинный

Вы думали об использовании слоев? Похоже, вы используете этот луч только для падения / смерти персонажа. Вы можете добавить свою плоскость на отдельный слой и позволить лучу проверять только этот слой.

person marsbear    schedule 27.05.2011