public class cameraRotation : MonoBehaviour
{
[SerializeField] float speed = 20f;
public Vector2 movement;
public float lrCMovement;
public float udCMovement;
[SerializeField] float rotationX;
[SerializeField] float rotationY;
// Start is called before the first frame update
void Start()
{
}
public void onCameraMove(InputAction.CallbackContext ctx)
{
movement = ctx.ReadValue<Vector2>() * speed;
lrCMovement = movement.x;
udCMovement = movement.y;
}
// Update is called once per frame
void Update()
{
transform.rotation = new Quaternion(transform.rotation.x + -udCMovement *
Time.fixedDeltaTime, transform.rotation.y + lrCMovement * Time.fixedDeltaTime,
transform.rotation.z, 1);
}
}
我做了一个物体,我想让它根据用户的输入旋转,通过游戏手柄。但是,当手柄向一边倾斜的时间更长时,它不会旋转360度,而是停止在大约40度。有人知道我做错了什么吗?
1条答案
按热度按时间5sxhfpxr1#
首先,
Quaternion
并不比一个向量复杂多少,所以你不能把x,y,z相加,但是你可以这样做因为您使用
Time.fixedDeltaTime
,我建议您使用FixedUpate
或Time.deltaTime
,不要错过和匹配它们。我会怀疑这是一个Gimbal lock的情况。