public PlayerCloneMovement GetPlayerCloneMovement(List <SavedPlayerFrame> savedPlayerFrames) { PlayerCloneMovement playerCloneMovement = pool.Pop(); playerCloneMovement.Initialize(savedPlayerFrames); playerCloneMovement.gameObject.SetActive(true); return(playerCloneMovement); }
private void Awake() { pool = new Stack <PlayerCloneMovement>(); for (int i = 0; i < cloneCount; i++) { PlayerCloneMovement playerCloneMovement = Instantiate(playerCloneMovementPrefab); playerCloneMovement.transform.SetParent(transform); playerCloneMovement.gameObject.SetActive(false); pool.Push(playerCloneMovement); } }
public void ResetPlayer() { playerMovement.transform.position = spawnPoints[TriggersReached - 1].position; lastGoalTriggerVirtualCamera.Priority = -1; PlayerCloneMovement cloneMovements = playerClonePool.GetPlayerCloneMovement(lastSavedFrames); cloneMovements.Enable(); instantiatedCloneMovements.Add(cloneMovements); playerMovement.Reset(); playerMovement.enabled = false; foreach (PlayerCloneMovement instantiatedCloneMovement in instantiatedCloneMovements) { instantiatedCloneMovement.ResetPosition(); } clonesReachedFinalButton = 0; StartCoroutine(EnablePlayerDelayed()); }
private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { List <SavedPlayerFrame> savedPlayerFrames = playerMovement.GetFrames(); PlayerCloneMovement playerCloneMovement = playerClonePool.GetPlayerCloneMovement(savedPlayerFrames); playerCloneMovement.Enable(); } if (Input.GetKeyDown(KeyCode.R)) { StartRewind(); } else if (Input.GetKeyUp(KeyCode.R)) { EndRewind(); } if (Input.GetKeyDown(KeyCode.T)) { playableDirector.Play(); } }