Example #1
0
    public bool CheckDirection(JoyStickDirection eDirection)
    {
        switch (eDirection)
        {
        case JoyStickDirection.UP:
            return(Direction.x == 0 && Direction.y == 1);

        case JoyStickDirection.DOWN:
            return(Direction.x == 0 && Direction.y == -1);

        case JoyStickDirection.LEFT:
            return(Direction.x == -1 && Direction.y == 0);

        case JoyStickDirection.RIGHT:
            return(Direction.x == 1 && Direction.y == 0);

        case JoyStickDirection.UP_LEFT:
            return(Direction.x == -1 && Direction.y == 1);

        case JoyStickDirection.UP_RIGHT:
            return(Direction.x == 1 && Direction.y == 1);

        case JoyStickDirection.DOWN_LEFT:
            return(Direction.x == -1 && Direction.y == -1);

        case JoyStickDirection.DOWN_RIGHT:
            return(Direction.x == 1 && Direction.y == -1);

        default:
            return(false);
        }
    }
Example #2
0
        public void OnJoyStickThumTouchMove(Vector2 vec)
        {
            lastJoyStickDir = curJoyStickDir;

            float _angle = Vector2.Angle(vec, Vector2.up);

            if (vec.x >= 0 && _angle <= 135)
            {
                curJoyStickDir = JoyStickDirection.Forward;
            }
            else if (vec.x < 0 && _angle <= 135)
            {
                curJoyStickDir = JoyStickDirection.Backward;
            }
            else if (_angle > 135)
            {
                curJoyStickDir = JoyStickDirection.Down;
            }

            if (OnJoyStickTouchMove != null)
            {
                OnJoyStickTouchMove.Invoke(curJoyStickDir);
            }

            if (lastJoyStickDir != curJoyStickDir)
            {
                switch (curJoyStickDir)
                {
                case JoyStickDirection.Forward:
                    arrow.localRotation = Quaternion.Euler(new Vector3(0, 0, -90));
                    break;

                case JoyStickDirection.Backward:
                    arrow.localRotation = Quaternion.Euler(new Vector3(0, 0, 90));
                    break;

                case JoyStickDirection.Down:
                    arrow.localRotation = Quaternion.Euler(new Vector3(0, 0, 180));
                    break;
                }

                if (!arrow.gameObject.activeSelf)
                {
                    arrow.gameObject.SetActive(true);
                }

                if (OnJoyStickTouchChangeDir != null)
                {
                    lastJoyStickDir = curJoyStickDir;
                    OnJoyStickTouchChangeDir.Invoke(curJoyStickDir);
                }
            }
        }
Example #3
0
 // Use this for initialization
 private void Awake()
 {
     joyStickThum                    = transform.Find("JoyStick/Thum").GetComponent <JoyStickThum>();
     arrow                           = transform.Find("JoyStick/Arrow");
     joyStickTouchJudge              = GetComponent <JoyStickTouchJudge>();
     curJoyStickDir                  = JoyStickDirection.None;
     lastJoyStickDir                 = JoyStickDirection.None;
     joyStickThum                    = GetComponentInChildren <JoyStickThum>();
     joyStickThum.JoyStickMaxRadius  = joyStickMaxRadius;
     joyStickThum.JoyStickMinRadius  = joyStickMinRadius;
     joyStickThum.ThumOnTouchColor   = onTouchTumbColor;
     joyStickTouchJudge.JoyStickType = joyStickType;
 }
Example #4
0
        public void OnJoyStickThumTouchEnd()
        {
            if (arrow.gameObject.activeSelf)
            {
                arrow.gameObject.SetActive(false);
            }

            if (OnJoyStickTouchEnd != null)
            {
                OnJoyStickTouchEnd.Invoke();
            }

            curJoyStickDir = JoyStickDirection.None;
            if (curJoyStickDir != lastJoyStickDir)
            {
                if (OnJoyStickTouchChangeDir != null)
                {
                    lastJoyStickDir = curJoyStickDir;
                    OnJoyStickTouchChangeDir.Invoke(curJoyStickDir);
                }
            }
        }
Example #5
0
 private void TestJoyStick(JoyStickDirection joyStickDir)
 {
     //摇杆返回的方向:        None = 摇杆抬起,  Forward = 方向右,  Backward = 方向左,  Down = 方向下;
     dirText.text = joyStickDir.ToString();
     //Debug.Log("joyStickDir: " + joyStickDir);
 }