示例#1
0
    private void Move()
    {
        if (canMoveInput)
        {
            //if (moveCoolDown <= 0)
            //{
            if (Input.GetKeyUp(KeyCode.UpArrow))
            {
                if (dir != DIRECTION.UP)
                {
                    dir = DIRECTION.UP;
                    playerAttackPoint.position = position + Vector3.up;

                    //animations
                    playerAnimations.animator.SetFloat("moveX", 0f);
                    playerAnimations.animator.SetFloat("moveY", 1f);
                }
                else
                {
                    //moveCoolDown = 50;
                    canMove = false;
                    moving  = true;

                    playerMovePoint.position += Vector3.up;
                    if (!Physics2D.OverlapCircle(playerMovePoint.position, 0.2f, whatStopsMovement))
                    {
                        position += Vector3.up;

                        playerAttackPoint.position = position + Vector3.up;

                        StartCoroutine(playerAnimations.AnimateWhenMoving());
                    }
                    else
                    {
                        playerMovePoint.position -= Vector3.up;
                    }
                }
            }

            else if (Input.GetKeyUp(KeyCode.DownArrow))
            {
                if (dir != DIRECTION.DOWN)
                {
                    dir = DIRECTION.DOWN;
                    playerAttackPoint.position = position + Vector3.down;

                    //animations
                    playerAnimations.animator.SetFloat("moveX", 0f);
                    playerAnimations.animator.SetFloat("moveY", -1f);
                }
                else
                {
                    //moveCoolDown = 50;
                    canMove = false;
                    moving  = true;

                    playerMovePoint.position += Vector3.down;
                    if (!Physics2D.OverlapCircle(playerMovePoint.position, 0.2f, whatStopsMovement))
                    {
                        position += Vector3.down;

                        playerAttackPoint.position = position + Vector3.down;

                        StartCoroutine(playerAnimations.AnimateWhenMoving());
                    }
                    else
                    {
                        playerMovePoint.position -= Vector3.down;
                    }
                }
            }

            else if (Input.GetKeyUp(KeyCode.LeftArrow))
            {
                if (dir != DIRECTION.LEFT)
                {
                    dir = DIRECTION.LEFT;
                    playerAttackPoint.position = position + Vector3.left;

                    //animations
                    playerAnimations.animator.SetFloat("moveX", -1f);
                    playerAnimations.animator.SetFloat("moveY", 0f);
                }
                else
                {
                    //moveCoolDown = 50;
                    canMove = false;
                    moving  = true;

                    playerMovePoint.position += Vector3.left;
                    if (!Physics2D.OverlapCircle(playerMovePoint.position, 0.2f, whatStopsMovement))
                    {
                        position += Vector3.left;

                        playerAttackPoint.position = position + Vector3.left;

                        StartCoroutine(playerAnimations.AnimateWhenMoving());
                    }
                    else
                    {
                        playerMovePoint.position -= Vector3.left;
                    }
                }
            }

            else if (Input.GetKeyUp(KeyCode.RightArrow))
            {
                if (dir != DIRECTION.RIGHT)
                {
                    dir = DIRECTION.RIGHT;
                    playerAttackPoint.position = position + Vector3.right;

                    //animations
                    playerAnimations.animator.SetFloat("moveX", 1f);
                    playerAnimations.animator.SetFloat("moveY", 0f);
                }
                else
                {
                    //moveCoolDown = 50;
                    canMove = false;
                    moving  = true;

                    playerMovePoint.position += Vector3.right;
                    if (!Physics2D.OverlapCircle(playerMovePoint.position, 0.2f, whatStopsMovement))
                    {
                        position += Vector3.right;

                        playerAttackPoint.position = position + Vector3.right;

                        StartCoroutine(playerAnimations.AnimateWhenMoving());
                    }
                    else
                    {
                        playerMovePoint.position -= Vector3.right;
                    }
                }
            }
            //}
        }
    }