IEnumerator FollowPath() { Vector3 currentWaypoint = new Vector3(_path[0].transform.position.x, _path[0].transform.position.y, ZCordinate); EnumHolder.Facing _facing = EnumHolder.Facing.Down; int TargetIndex = 0; while (true) { if (transform.position == currentWaypoint) { _path[TargetIndex].BackgroundTile.color = _path[TargetIndex].DeactiveColor; // Burn after reading TargetIndex++; if (TargetIndex == _path.Length) { stopWalkAnimation(); SetArtForFacing(_facing); OnStopMoving.Invoke(_path[TargetIndex - 1]); yield break; } currentWaypoint = new Vector3(_path[TargetIndex].transform.position.x, _path[TargetIndex].transform.position.y, ZCordinate); _facing = determineFacing(_path[TargetIndex - 1], _path[TargetIndex]); SetAnimationForWalking(_facing); } transform.position = Vector3.MoveTowards(this.transform.position, currentWaypoint, speed); yield return(null); } }
public void SetArtForFacing(EnumHolder.Facing facing) { CharacterSprite = facingSprites[(int)facing]; }
void SetAnimationForWalking(EnumHolder.Facing facing) { animator.enabled = true; animator.runtimeAnimatorController = curAnimation; animator.SetInteger("Facing", (int)facing); }