2014-11-15 2 views
1

Я создаю игру fps, я создал пушку, пулю и врага. Теперь я хочу, чтобы мой враг уничтожился после столкновения с пулей. Мой враг - это игровой объект с именем Fire и помеченный Enemy и моя пуля с именем «Cube 1 (Clone)» и помечены «Cube 1 (Clone)». Я сделал сценарий для этого:как уничтожить предмет после столкновения

#pragma strict 

function OnTriggerEnter(theCollision : Collider) 
{ 
    if(theCollision.gameObject.name=="Cube 1") 
    { 
     Destroy(gameObject); 
     Debug.Log("Dead"); 
    } 
} 

Но это не работает.

+1

Java! = JavaScript и JavaScript! = UnityScript и тег [tag: unity] - это совершенно другое Unity (не игровой движок [tag: unity3d]) – LearnCocos2D

ответ

0

Вам необходимо проверить тег не на имя. Вы можете проверить имя, но помните, что у него будет «(Clone)».

function OnTriggerEnter(theCollision : Collider) 
{ 
    if(theCollision.tag == "Cube 1") 
    { 
     Destroy(gameObject); 
     Debug.Log("Dead"); 
    } 
} 

Если вы не уверены в том, что вы правильно помечены, вы можете просто использовать оба чек в вашем, если заявлении.

if(theCollision.tag == "Cube 1" || theCollision.gameObject.name == "Cube 1(Clone)") 
    Destroy(gameObject); 
+0

, и теперь у меня есть эта ошибка «Assets/Collision1.js (1 , 4): BCE0005: Неизвестный идентификатор: «TheCollision» ». –

+0

@LakehalAmine Убедитесь, что ваш код находится внутри функции 'OnTriggerEnter()'. Убедитесь, что он похож на мой код выше. – FunctionR

-1

Ну так как пуля помечено Cube 1(Clone), я хотел бы использовать

if(theCollision.tag == "Cube 1(Clone)"){...} 

И, вероятно, будет переименовать метку что-то значимое, скажем bullet.

Смежные вопросы