/// <summary> /// Move the animal and remove it's reference. That way /// during lerping it wont have an incorrect reference. /// </summary> private void MoveAnimal(AnimalTile animal, IntVector2 targetPos) { if (AnimalTile.IsNullOrMoving(animal)) { return; } animal.LerpToPosition(targetPos); SetAnimalInBoard(animal, targetPos); }
/// <summary> /// Spawns a new gameobject and stores its reference in the board. /// </summary> private void SpawnAnimal() { AnimalBluePrint bluePrint = animalsToSpawn.Dequeue(); GameObject newTile = Instantiate(animalPrefabs[(int)bluePrint.Type], this.transform.position, Quaternion.identity, animalStorage); AnimalTile newAnimalTile = newTile.GetComponent <AnimalTile>(); //Start lerping towards it's target, and store it's reference in the board. newAnimalTile.animalBoard = animalBoard; newAnimalTile.LerpToPosition(bluePrint.TargetPos); animalBoard.SetAnimalInBoard(newAnimalTile, bluePrint.TargetPos); }
/// <summary> /// Move the animal and remove it's reference. That way /// during lerping it wont have an incorrect reference. /// </summary> private void MoveAnimal(IntVector2 animalPos, IntVector2 targetPos) { AnimalTile animalToMove = GetAnimal(animalPos); if (AnimalTile.IsNullOrMoving(animalToMove)) { return; } animalToMove.LerpToPosition(targetPos); animals[animalPos.x, animalPos.y] = null; SetAnimalInBoard(animalToMove, targetPos); }