У меня есть взрыв системы частиц, который я хочу играть, когда игрок умирает. Идея заключается в том, что все остальное приостанавливается, но взрыв продолжается, как анимация Pacman, когда вы умираете (все зависает, и анимация смерти pacman играет).Играть в систему частиц, когда Time.timeScale = 0?
Проблема в том, что это не сработает. Я знаю, Time.timeScale = 0 приостанавливает все, и я попытался использовать этот сценарий, чтобы бороться с этим, но не кажется, что это будет работать:
void Update()
{
if (Time.timeScale < 0.01f)
{
particleSystem.Simulate(Time.deltaTime, true, false);
}
}
Я также попытался это, но это не делает работать как:
private ParticleSystem pSystem;
public void Awake()
{
pSystem = gameObject.GetComponent<ParticleSystem>();
}
public void Play()
{
pSystem.Simulate(Time.unscaledDeltaTime,true,true);
}
public void Update()
{
pSystem.Simulate(Time.unscaledDeltaTime,true,false);
}
Я попробовал этот код сценарий, который прилагается к моей системе частиц взрыва панельной, который конкретизируется в положении игрока, когда вы умираете.
Спасибо!
UPDATE: Оказывается, я пытался использовать particleSystem.Simulate(Time.unscaledDeltaTime, true, false);
, но я вызывал его в FixedUpdate(), а не в Update().
Тем не менее, нижняя колонна Астероида ниже, размещенная Гарфти, действительно интересна и, вероятно, стоит делать в конечном счете!
Это будет полезно, я попробую его позже! Одна вещь, о которой мне было интересно, это то, что на данный момент я приостанавливаю 3 вещи, когда устанавливаю Timescale равным 0. Было бы проще следовать методу Астероидной базы или вы считаете, что было бы проще приостановить каждый отдельный компонент? – Tom
Это полностью зависит от того, чего вы пытаетесь достичь. Мне лично нравится подход Астероидной базы, потому что он дает большую гибкость, но, как уже упоминалось, для этого требуется определенная дисциплина. Попробуйте оба и посмотрите, что работает для вас :) – Garfty
Дайте ему попробовать, и хотя это было немного запутанно, это работает! Благодаря! – Tom