В моем текущем проекте (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);
}