在我当前的(Unity 3.3 IOS)项目中,我有一个角色走过一座桥。如果角色从桥上掉下来,他就会掉进火热的河里并爆炸。问题是当他在桥上时,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);
}