【问题标题】:After rotate gameobje with joystick , rotate resetting. joystick rotate correction用摇杆旋转游戏对象后,旋转复位。操纵杆旋转校正
【发布时间】:2019-03-25 20:30:35
【问题描述】:

用摇杆旋转角色后。旋转复位。角色的方向 使用操纵杆,当我将手转向我想要的方向然后将手从操纵杆中拉出时,我希望角色朝那个方向看。当我离开时,不要让他看同一个方向操纵杆。我该怎么做。谢谢。

public class MyJoystick : MonoBehaviour
{
    public Joystick joystick;
    public Joystick joystickRot;
    public float moveSpeed;
    Quaternion targetRotation;
    Rigidbody rigidbody;


    // Start is called before the first frame update
    void Start()
    {
        rigidbody = GetComponent<Rigidbody>();

    }

    // Update is called once per frame
    void Update()
    {
        // var rigidbody = GetComponent<Rigidbody>();


        rigidbody.velocity = new Vector3(joystick.Horizontal * moveSpeed, rigidbody.velocity.y, joystick.Vertical * moveSpeed);

        // this is problem
        // don't reset the rotate when joysticki is released.

        transform.eulerAngles = new Vector3(transform.eulerAngles.x, Mathf.Atan2(joystickRot.Horizontal
              , joystickRot.Vertical) * Mathf.Rad2Deg, transform.eulerAngles.z);
    }
}

【问题讨论】:

    标签: unity3d rotation joystick


    【解决方案1】:

    'joystickRot' 在没有被推向任何其他方向时将返回零,这就是重置旋转的原因,因此在将值应用于 GameObjects 变换旋转之前,您必须首先检查操纵杆是否正在实际使用中。

    我对您使用的操纵杆系统并不太熟悉,但肯定有一种方法可以测试操纵杆是否正在使用,并且仅在使用时施加力和旋转。

    顺便说一句,您引用了两个 Joystick 对象,但我相信您只需要一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      相关资源
      最近更新 更多