Example #1
0
    public PlayerCloneMovement GetPlayerCloneMovement(List <SavedPlayerFrame> savedPlayerFrames)
    {
        PlayerCloneMovement playerCloneMovement = pool.Pop();

        playerCloneMovement.Initialize(savedPlayerFrames);
        playerCloneMovement.gameObject.SetActive(true);
        return(playerCloneMovement);
    }
Example #2
0
 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);
     }
 }
Example #3
0
    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());
    }
Example #4
0
    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();
        }
    }