2015-10-28 3 views
0

Я делаю небольшую игру в Unity с Stickybombs. Я сделал это так, что, когда вы нажимаете «Правый клик», липкая бомба взрывается, уничтожает себя и создает эффект частиц для взрывов. Вот следующий код:.GetComponent () .AddExplosionForce в Unity не работает

void Update() { 
    if(Input.GetButtonDown("Fire2")) { 
     GetComponent<Rigidbody>().isKinematic = false; 
     GetComponent<Rigidbody>().AddExplosionForce(explosionForce, transform.position, explosionRadius, 3.0f); 
     Destroy(gameObject); 
     Instantiate (Explosion, transform.position, new Quaternion(0, 0, 0, 0)); 
    } 

} 

Тем не менее, линия GetComponent() AddExplosionForce (explosionForce, transform.position, explosionRadius, 3.0f); ничего не делает. Я делаю что-то неправильно?

Вот переменные. Заранее спасибо: D

public GameObject Explosion; 
 
private float explosionForce = 300; 
 
private float explosionRadius = 15f;

+0

'Сила может применяться только к активному твердому корпусу. Если GameObject неактивен, AddExplosionForce не имеет эффекта. 'Http://docs.unity3d.com/ScriptReference/Rigidbody.AddExplosionForce.html имеет ту же процедуру, что и ваш код. Мне кажется, ваш код кажется мне хорошим, как вы знаете, что эта линия ничего не делает? Разве это не влияет на другие жесткие тела, из которых вы уверены, что они не являются кинематическими? Вы пытались сыграть с 'isKinematic' в этом скрипте или увеличили радиус/силу взрыва до более высоких значений? –

+0

Спасибо за ваш вход @MaximilianGerhardt Все жесткие тела, которые я пытаюсь воздействовать на взрыв, активны и не кинематичны. Я сделал радиус и силу значений 5000f, но безрезультатно. – Kataware

+0

Вот изображение для одного из жестких элементов Компоненты ящика http://www.mediafire.com/view/icbfykvgppv1is0/THingy.png – Kataware

ответ

0

Мой предыдущий комментарий, превращена в ответ:

Не знаю, если это может помочь, но уничтожить объект, как только Вызывается AddExplosionForce. Таким образом, у вас нет времени для имитации эффекта взрыва, потому что объект немедленно уничтожается. Вы пытались удалить звонок Destroy() и посмотреть, что происходит?

Боковое примечание: Я предлагаю называть функцию Destroy() в конце и использовать задержку в качестве примера.

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