2015-09-07 3 views
0

У меня есть взрыв системы частиц, который я хочу играть, когда игрок умирает. Идея заключается в том, что все остальное приостанавливается, но взрыв продолжается, как анимация 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().

Тем не менее, нижняя колонна Астероида ниже, размещенная Гарфти, действительно интересна и, вероятно, стоит делать в конечном счете!

ответ

1

Одним из способов вы можете сделать это с помощью Time.unscaledDeltaTime

Другой способ вы могли бы подойти что-то вроде этого является создание вашего собственного менеджера времени, но это требует определенной дисциплины, чтобы придерживаться. Люди в Asteroid Base написал хорошую статью о чем-то вроде этого here.

Надеюсь, это поможет!

+0

Это будет полезно, я попробую его позже! Одна вещь, о которой мне было интересно, это то, что на данный момент я приостанавливаю 3 вещи, когда устанавливаю Timescale равным 0. Было бы проще следовать методу Астероидной базы или вы считаете, что было бы проще приостановить каждый отдельный компонент? – Tom

+1

Это полностью зависит от того, чего вы пытаетесь достичь. Мне лично нравится подход Астероидной базы, потому что он дает большую гибкость, но, как уже упоминалось, для этого требуется определенная дисциплина. Попробуйте оба и посмотрите, что работает для вас :) – Garfty

+0

Дайте ему попробовать, и хотя это было немного запутанно, это работает! Благодаря! – Tom