Как повернуть мою руку игрока сверху и снизу с ограничением в 45 градусов? единство 5

Я пытаюсь создать 2D-игру в Unity. У моего игрового плеера есть некоторые функции, такие же, как у Doodle Army. Я хочу поворачивать руки и голову игрока с ограничениями до 45 градусов вверх и вниз, как армейский игрок каракули, с обеих сторон. Я использую два джойстика: один для движения, а второй - для прицеливания. таким образом, второй джойстик может вращать руку и голову в направлении движения джойстика. Я хочу ограничить это вращение до 45 градусов вверх и вниз с обеих сторон (влево и вправо (вверх и вниз)).

Любой может мне помочь.

Вот мой небольшой код для поворота рук и головы двухмерного спрайта.

using UnityEngine;
using System.Collections;
using UnityStandardAssets.CrossPlatformInput;

public class PlayerRotation : MonoBehaviour {

    public float moveForce = 5, boostMultiplier = 2;
    GameObject ga;

    // Use this for initialization
    void Start () {
        ga = GameObject.Find ("Charac_Head");
    }

    // Update is called once per frame
    void FixedUpdate () {

        Vector2 moveVec = new Vector2 (CrossPlatformInputManager.GetAxis ("Horizontal2"), 
                              CrossPlatformInputManager.GetAxis ("Vertical2")) * moveForce;



        //ga.transform.LookAt(transform.position.toVector2() + moveVec);
            //ga.transform.Rotate (0, 0, moveVec.y);
        if (moveVec.y <= 4.0f && moveVec.y >= -4.0f) {
            //ga.transform.right = moveVec;
            ga.transform.Rotate(0,0,moveVec.y);
            Debug.Log (moveVec);
        }
        //}
    }

}

person moje_mast_ram    schedule 30.08.2017    source источник


Ответы (1)


Вы можете использовать Mathf.Clamp для принудительного применения окончательного значения между min и max.

Я не тестирую код, но покажу, что вам нужно:

moveVec.y = Mathf.Clamp(moveVec.y + Time.deltaTime*rotateRate, -45.0f, 45.0f);
transform.localEulerAngles = moveVec;
person joreldraw    schedule 30.08.2017
comment
Я попробую это. - person moje_mast_ram; 30.08.2017