2016-01-18 8 views
1

Я следую учебнику Unity3D Survive Shooter Unity3D и столкнулся с несколькими несоответствиями между презентацией Unite Day и фактическим поведением в Unity 5.3, таким как переход на анимацию и другие мелкие проблемы, которые мне приходилось рисовать чтобы достичь желаемого результата геймплея и следовать руководству.Unity3D - Воспроизведение неполной системы частиц

Одна из проблем, которые я не могу решить, - это воспроизведение системы без циклов частиц. В игре попадают частицы, которые испускаются всякий раз, когда противник выстреливается, но при запуске игры эти частицы испускаются один раз, а не после следующих ударов.

Это конфигурация системы частиц:

enter image description here

оригинальный код просто повторно позиции и вновь играет излучение:

// Set the position of the particle system to where the hit was sustained. 
hitParticles.transform.position = hitPoint; 

// And play the particles. 
hitParticles.Play(); 

я попытался переустановить и очистки системы но это не работает:

hitParticles.Clear(); 
hitParticles.time = 0; 
hitParticles.Play(); 

Ho Повторяю ли я излучение частиц?

спасибо!

+2

Try 'ParticleSystem.Emit (...)' –

+0

@JerrySwitalski это еще только излучение при первом запуске. – BarakChamo

+1

Поцарапайте это, я все еще вызывал '' 'Play()' '' после '' 'Emit()' ''. Просто вызывается '' 'Emit()' '' каждый раз испускает. – BarakChamo

ответ

2

Чтобы ответить на ParticleSystem попробовать использовать ParticleSystem.Emit(...) с параметрами, который соответствует вашей анимации, как:

hitParticles.Emit(5); 
0

Если вы используете Unity 5.3.1, то это звучит очень похоже на ошибку (http://issuetracker.unity3d.com/issues/particle-system-plays-only-once).

+0

Спасибо @RPGamer, по крайней мере, я знаю, что это ошибка, во время учебника появились другие ошибки, но, по крайней мере, я знаю, что мой код виноват в этой проблеме. – BarakChamo

0

Если вам нужно сбросить сразу Particle систему и повторить его (например, винтовка BAREL взрыва), я бы рекомендовал вам это:

ShootParticles.Simulate(0.0f, true, true); 
ShootParticles.Play();