// Start is called before the first frame update
        void Start()
        {
            GroundedStatus = false;

            if (KeyboardStyle == CKeyboardStyle.StyleTDS || KeyboardStyle == CKeyboardStyle.StyleSTW ||
                KeyboardStyle == CKeyboardStyle.StyleJRPG)
            {
                TargetController.GetComponent <Rigidbody2D>().gravityScale   = 0;
                TargetController.GetComponent <Rigidbody2D>().freezeRotation = true;
            }
            else if (VectorStyle == CVectorStyle.StyleTDS || VectorStyle == CVectorStyle.StyleSTW ||
                     VectorStyle == CVectorStyle.StyleJRPG)
            {
                TargetController.GetComponent <Rigidbody2D>().gravityScale   = 0;
                TargetController.GetComponent <Rigidbody2D>().freezeRotation = true;
            }

            if (isEnabled && InputType == CInputType.Mouse)
            {
                isMoving        = false;
                Destination     = TargetController.transform.position;
                MovementQuadran = CMovementQuadran.None;
            }

            InputSyncronize();
        }
예제 #2
0
        void Update()
        {
            if (MovementType == CMovementType.Tap || MovementType == CMovementType.Click)
            {
                moveDirection = Vector3.zero;
                if (TargetController.isGrounded)
                {
                    if (Input.GetKeyDown(PointerKey))
                    {
                        ray = MainCamera.ScreenPointToRay(Input.mousePosition);
                        if (Physics.Raycast(ray, out raycastHit))
                        {
                            Destination   = raycastHit.point;
                            Destination.y = TargetController.transform.position.y;
                            TargetController.transform.LookAt(Destination);
                        }
                        initialValue = false;
                    }

                    if (!initialValue)
                    {
                        CurrentDistance = Vector3.Distance(Destination, TargetController.transform.position);
                        if (CurrentDistance > StopDistance)
                        {
                            moveDirection = transform.forward * MoveSpeed * Time.deltaTime;
                            TargetController.Move(moveDirection);
                            isMoving = true;
                        }
                        else
                        {
                            isMoving = false;
                        }
                    }
                }

                moveDirection.y -= gravity * Time.deltaTime;
                TargetController.Move(moveDirection * Time.deltaTime);
            }
            else
            if (MovementType == CMovementType.Swipe)
            {
                if (TargetController.isGrounded)
                {
                    MovementQuadran = SwipeValue();
                    ray             = MainCamera.ScreenPointToRay(SecondTouch);
                    if (Physics.Raycast(ray, out raycastHit))
                    {
                        Destination   = raycastHit.point;
                        Destination.y = TargetController.transform.position.y;
                        TargetController.transform.LookAt(Destination);
                        moveDirection = transform.forward * MoveSpeed * Time.deltaTime;
                    }
                }

                moveDirection.y -= gravity * Time.deltaTime;
                TargetController.Move(moveDirection * Time.deltaTime);
            }
        }
 void Start()
 {
     isMoving        = false;
     Destination     = TargetController.transform.position;
     MovementQuadran = CMovementQuadran.None;
     if (isCanvasSkillEnabled)
     {
         CanvasSkill.gameObject.SetActive(false);
     }
 }
        CMovementQuadran SwipeValue()
        {
            CMovementQuadran result = CMovementQuadran.None;

            if (Input.touchCount > 0)
            {
                Touch touch = Input.touches[0];
                switch (touch.phase)
                {
                case TouchPhase.Began:
                    FirstTouch = touch.position;
                    break;

                case TouchPhase.Moved:
                    SecondTouch = touch.position;
                    Direction   = SecondTouch - FirstTouch;
                    break;

                case TouchPhase.Ended:
                    if (Direction.x >= 0 && Direction.y >= 0)
                    {
                        result = CMovementQuadran.UpRight;
                    }
                    if (Direction.x >= 0 && Direction.y < 0)
                    {
                        result = CMovementQuadran.DownRight;
                    }
                    if (Direction.x < 0 && Direction.y >= 0)
                    {
                        result = CMovementQuadran.UpLeft;
                    }
                    if (Direction.x < 0 && Direction.y < 0)
                    {
                        result = CMovementQuadran.DownLeft;
                    }

                    break;
                }
            }

            return(result);
        }
        void Update()
        {
            if (MovementType == CMovementType.Tap || MovementType == CMovementType.Click)
            {
                moveDirection = Vector3.zero;
                if (TargetController.isGrounded)
                {
                    if (Input.GetKeyDown(GetTriggerKey()))
                    {
                        lastpos = Input.mousePosition;
                        if (isCanvasSkillEnabled)
                        {
                            CanvasSkill.gameObject.SetActive(true);
                        }
                    }
                    if (Input.GetKey(GetTriggerKey()))
                    {
                        delta          = Input.mousePosition - lastpos;
                        RotationStatus = delta;
                        lastpos        = Input.mousePosition;
                        Vector3 resultRotation = new Vector3(0, -RotationStatus.y, 0);
                        this.transform.Rotate(resultRotation);
                    }
                    if (Input.GetKeyUp(GetTriggerKey()))
                    {
                        RotationStatus = Vector3.zero;
                        if (isCanvasSkillEnabled)
                        {
                            CanvasSkill.gameObject.SetActive(false);
                        }
                    }

                    if (Input.GetKeyUp(GetTriggerKey()))
                    {
                        ray = MainCamera.ScreenPointToRay(Input.mousePosition);
                        if (Physics.Raycast(ray, out raycastHit))
                        {
                            Destination   = raycastHit.point;
                            Destination.y = TargetController.transform.position.y;
                            TargetController.transform.LookAt(Destination);

                            RaycastTag   = raycastHit.collider.tag;
                            RayObjectTag = raycastHit.collider.gameObject.name;
                        }
                        initialValue = false;
                    }



                    if (!initialValue)
                    {
                        CurrentDistance = Vector3.Distance(Destination, TargetController.transform.position);
                        if (CurrentDistance > StopDistance)
                        {
                            moveDirection = transform.forward * MoveSpeed * Time.deltaTime;
                            TargetController.Move(moveDirection);
                            isMoving = true;
                        }
                        else
                        {
                            isMoving = false;
                        }
                    }
                }

                moveDirection.y -= gravity * Time.deltaTime;
                TargetController.Move(moveDirection * Time.deltaTime);
            }
            else
            if (MovementType == CMovementType.Swipe)
            {
                if (TargetController.isGrounded)
                {
                    MovementQuadran = SwipeValue();
                    ray             = MainCamera.ScreenPointToRay(SecondTouch);
                    if (Physics.Raycast(ray, out raycastHit))
                    {
                        Destination   = raycastHit.point;
                        Destination.y = TargetController.transform.position.y;
                        TargetController.transform.LookAt(Destination);
                        moveDirection = transform.forward * MoveSpeed * Time.deltaTime;
                    }
                }

                moveDirection.y -= gravity * Time.deltaTime;
                TargetController.Move(moveDirection * Time.deltaTime);
            }
        }
예제 #6
0
 void Start()
 {
     isMoving        = false;
     Destination     = TargetController.transform.position;
     MovementQuadran = CMovementQuadran.None;
 }