Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
 public void SetArtForFacing(EnumHolder.Facing facing)
 {
     CharacterSprite = facingSprites[(int)facing];
 }
Esempio n. 3
0
 void SetAnimationForWalking(EnumHolder.Facing facing)
 {
     animator.enabled = true;
     animator.runtimeAnimatorController = curAnimation;
     animator.SetInteger("Facing", (int)facing);
 }