예제 #1
0
    void Aiming()
    {
        cursorDirection   = new Vector3(input.GetAxis("CursorX"), input.GetAxis("CursorY"), 0);
        cursorDirection   = Vector3.ClampMagnitude(cursorDirection, 1);
        cursorDirection.y = cursorDirection.y / 2;
        cursorDirection  *= cursorReach;
        if (inputIndex == 0)
        {
            cursor.position = (Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 5.0f)));
        }
        else
        {
            print("inputIndex = " + inputIndex + ". radial cursor mode. ");
            cursor.localPosition = (Vector3.SmoothDamp(cursor.localPosition, cursorDirection, ref velocity, cursorSmooth));
        }

        float dist = Vector2.Distance(cursorAnchor.position, cursor.position);

        if (dist > joystickDeadzone)
        {
            Vector3 dir   = cursor.position - staffPivot.position;
            float   angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
            staffPivot.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
        }
        else
        {
            if (cursor.position.x > trans.position.x)
            {
                staffPivot.rotation = new Quaternion(0, 0, 0, 0);
            }
            else
            {
                staffPivot.rotation = new Quaternion(0, 0, 180, 0);
            }
        }
        playerAnimations.AnimationUpdate(rb.velocity.magnitude, (cursor.position.x - trans.position.x));
    }