在场景创建一个Cube,并添加刚体,如图:
编写脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class RibRotate : MonoBehaviour
{
//private Vector3 mouseStartPosition;
private Rigidbody rigidbody;
//private bool isMouseDown;
private float moveSpeed = 5f;
private float rotationSpeed = 10f;
// Start is called before the first frame update
void Start()
{
rigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
float vertical = Input.GetAxis("Vertical");
float horizontal = Input.GetAxis("Horizontal");
if (Input.GetMouseButton(0))
{
//鼠标左键控制左右旋转
rigidbody.angularVelocity = -transform.up * horizontal * rotationSpeed;
}
else if(Input.GetMouseButton(1))
{
//鼠标右键控制上下移动
rigidbody.velocity = -transform.forward * vertical * moveSpeed;
}
//if (Input.GetMouseButtonDown(0))
//{
// mouseStartPosition = Input.mousePosition;
// isMouseDown = true;
//}
//if (Input.GetMouseButtonUp(0))
//{
// isMouseDown = false;
//}
//if (isMouseDown)
//{
// // 获取鼠标移动距离和方向,并计算旋转角度
// float mouseX = Input.GetAxis("Mouse X");
// float mouseY = Input.GetAxis("Mouse Y");
// Vector3 rotation = new Vector3(-mouseY, mouseX, 0) * rotationSpeed;
// // 应用旋转
// transform.Rotate(rotation);
//}
}
}
把脚本添加到Cube中,运行:
Unity鼠标控制刚体移动旋转(实际效果不好,纯粹用来玩玩)
如视频所示,效果真的不行,只能单纯上下或左右移动旋转刚体,同时用鼠标控制效果更差。所以使用上面方法纯粹就是玩玩。