Я ищу способ сделать мое приложение Unity3D способным «откатываться» до предыдущего состояния, чтобы сцена была точно такой же, как это было N
миллисекунды.
Например, скажем, яесть игрок, который продвинулся вперед на 5 единиц.Есть объекты на переднем плане, движущиеся вокруг, такие как катящийся шар ... теперь представьте, что я хотел бы "отменить" 3 хода: игрок должен появиться там, где он был 3 шага назад, и катящийся шар должен также двигаться назад во времени,
Какой подход я бы выбрал здесь?Я думал создать «состояния», каждый раз помеченные Time.realTimeSinceStartup
, но , что свойство равно readonly
.В качестве альтернативы я подумал, что мог бы отслеживать количество кадров, включить V-Synch
, чтобы время рендеринга составляло 30ms
, и откат 30ms * n_frames
, но, к сожалению, время рендеринга не было постоянным, даже с V-Synch
.
Возможно, это похоже на сохранение игры и ее восстановление?Однако сохранение и восстановление должны быть очень быстрыми , порядка менее чем 10ms
.
Какие у меня есть варианты?