示例#1
0
        public void Start()
        {
            AimDirection direction = physics.GetVelocityRef().ClosestDirection();

            // going left?
            bool flipX = direction == AimDirection.LEFT || direction == AimDirection.UP_LEFT ||
                         direction == AimDirection.DOWN_LEFT;

            switch (direction)
            {
            case AimDirection.UP:
                animator.SetBool(Up, true);
                break;

            case AimDirection.DOWN:
                animator.SetBool(Down, true);
                break;

            case AimDirection.UP_LEFT:
            case AimDirection.UP_RIGHT:
                animator.SetBool(DiagUp, true);
                break;

            case AimDirection.DOWN_LEFT:
            case AimDirection.DOWN_RIGHT:
                animator.SetBool(DiagDown, true);
                break;

            default:
                animator.SetBool(Horizontal, true);
                break;
            }

            spriteRenderer.flipX = flipX;
        }
示例#2
0
        private void Update()
        {
            AimDirection aim = physics.GetVelocityRef().ClosestDirection();

            if (aim != AimDirection.LAST)
            {
                direction = aim;
            }
        }
示例#3
0
        public void Update()
        {
            Vector2 velocity = physics.GetVelocityRef();

            animator.SetFloat(VerticalSpeed, velocity.y);

            bool flipX = velocity.x < float.Epsilon;

            spriteRenderer.flipX = flipX;
        }