用操纵杆旋转角色后。旋转重置。角色的方向使用操纵杆,当我向想要的方向旋转手然后将其从操纵杆中拉出时,我希望角色朝那个方向看。我离开时,别让他朝操纵杆的方向看。我该怎么做。谢谢。
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);
}
}
答案 0 :(得分:0)
'joystickRot'在不向任何其他方向推动时将返回零,这就是重置旋转的原因,因此在将值应用于GameObjects变换旋转之前,必须首先检查操纵杆是否正在实际使用。 / p>
我对您使用的操纵杆系统不太熟悉,但是最肯定会有一种方法来测试操纵杆是否正在使用,并且仅在使用时才施加力和旋转。
顺便说一下,您引用了两个操纵杆对象,但我相信您只需要一个。