ย void Rewind()
ย ย {ย ย
ย ย ย ย if (pointsInTime.Count > 0)
ย ย ย ย {ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย PointInTime pointInTime = pointsInTime[0];
ย ย ย ย ย ย ย ย transform.position = pointInTime.position;
ย ย ย ย ย ย ย ย transform.rotation = pointInTime.rotation;
ย ย ย ย ย ย ย ย pointsInTime.RemoveAt(0);
ย ย ย ย ย ย ย ย pointsInTime.RemoveAt(1);
ย ย ย ย ย ย ย ย pointsInTime.RemoveAt(2);
ย ย ย ย ย ย ย ย pointsInTime.RemoveAt(3);
ย ย ย ย ย ย ย ย pointsInTime.RemoveAt(4);ย
ย ย ย ย }
ย ย ย ย else
ย ย ย ย {
ย ย ย ย ย ย StopRewind();
ย ย ย ย }
ย ย }
ย ย void Record()
ย ย {
ย ย ย ย if (pointsInTime.Count > Mathf.Round(recordTime / Time.fixedDeltaTime))
ย ย ย ย {
ย ย ย ย ย ย pointsInTime.RemoveAt(pointsInTime.Count - 1);
ย ย ย ย }
ย ย ย ย pointsInTime.Insert(0, new PointInTime(transform.position, transform.rotation));
ย ย }
์ ํ๋ธ์์ ์ ๋ํฐ ์๊ฐ์ญํ ์คํฌ๋ฆฝํธ ๋ค์ด ๋ฐ์๋๋ฐ
์ด๊ฒ ๋ฐ์ ๋ ์ฝ๋๊ฐ ๋ฆฌ์คํธ์ ํฌ์ง์ ๋กํ ์ด์ ๊ฐ์ ์ ์ฅํ๊ณ
๋ฆฌ์์ธ๋๊ฐ ๊ทธ ๋ฆฌ์คํธ์ ๊ฐ๋ค์ ์กฐ์ํ๊ณ ์ถ์ ์ค๋ธ์ ํธ์ ํธ๋์คํผ ๊ฐ์ ๋์ ์์ผ์
๊ฒฐ๊ตญ ์๊ฐ์ญํ์ด ๋ฐ์ํ๋๋ฐ ์ด๋ฌ๋ฉด ๊ธฐ๋ก์ด๋ ๋๊ฐ๊ธฐ๋ ์๋๊ฐ ๊ฐ์์ ๋ฌธ์ ์ธ๋ฐ
๋๊ฐ๊ธฐ ์๋๋ฅผ ๋นจ๋ฆฌํ๋ ค๋ฉด ์ ๋ ๊ฒ ํ๋ ์์ซ์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ ๋นผ๊ณค ์์?
๋ง ์ ๋ฐ์ดํธ ์์ ์๋๋ฅผ ๋ ๋น ๋ฅด๊ฒ ๋๋ฆฌ๊ฒ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ ์์?
Time.Scale = 2f // ์ ๋ฐ์ดํธ ์๋ 2๋ฐฐ, Time.Scale = 0.5f // ์ ๋ฐ์ดํธ ์๋ 0.5๋ฐฐ์ผ
๊ทธ๊ฑธ ์ด๋๋ค๊ฐ ์ฐ๋๊ฑฐ์ผ?
๋๊ฐ ์ฐ๊ณ ์ ํ๋ ์์น์ ์ฐ๋๊ฒ ๋ง๊ฒ ์ง ๋๊ฐ๊ธฐ๋ฅผ ํ ๋ ์๋๋ฅผ 2๋ฐฐ๋ฅผ ์ ์ฉ์ํค๊ณ ๋๊ฐ๊ธฐ ํจ์๋ฅผ ์คํํ๊ณ , ๋๊ฐ๊ธฐ๊ฐ ๋๋ฌ์ ๋ ์๋๋ฅผ ์๋ ์๋๋ก ๋ฐ๊พธ๊ฒ ํ๋ฉด๋์ง