Как сделать так, чтобы эффект Raycast назывался GameObject Only - PullRequest
0 голосов
/ 19 мая 2011

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

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

1 Ответ

0 голосов
/ 27 мая 2011

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

Возможны некоторые проблемы.

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

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

...