public void UndoLastMomevent() { int index = movements.Count - 1; if (index >= 0) { Movement movement = movements[index]; SnapCharacter snapCharacter = movement.Sender.GetComponent <SnapCharacter>(); snapCharacter.DoMovement(movement.OldPosition, false); movements.Remove(movement); } else { Debug.Log("There is no more moves"); } }
public void DoMovement(Vector3 newPosition, bool registerMovement) { transform.position = newPosition; SnapCharacter swapCharacter = CheckCharacterToSwap(); if (swapCharacter) { swapCharacter.DoSwapMovement(oldPosition); CheckTileToSolidify(); } else { UnsolidifyLastTile(); CheckTileToSolidify(); } if (registerMovement) { Movement movement = new Movement(gameObject, oldPosition, transform.position); CharacterManager.Instance.RegisterMovement(movement); } oldPosition = transform.position; }