为了从不同角度观察物体,需要使用鼠标改变物体的位置及角度。
在unity3d中Input.GetMouseButton()获得鼠标键,Input.GetAxis()函数获得鼠标的移动的方向和距离,其中Mouse X表示X方向,Mouse Y表示Y方向,Mouse ScrollWheel表示中键滚动距离。
使用transform.Rotate()改变物体的旋转量,Space.World指定旋转的参考坐标系为世界坐标系;
private float rotationX;
private float rotationY;
private float scaleRotationX = 5f;
private float scaleRotationY = 5f;
private float positionX ;
private float positionY ;
private float positionZ ;
private float scalePosiontX = 0.1f;
private float scalePosiontY = 0.1f;
private float scalePosiontZ = 1f;
void Update()
{
if(Input.GetMouseButton(1)) //右键改变x,y,z位置
{
positionX =Input.GetAxis("Mouse X") * scalePosiontX;
positionY = Input.GetAxis("Mouse Y") * scalePosiontY;
positionZ = -Input.GetAxis("Mouse ScrollWheel") * scalePosiontZ;
transform.position += new Vector3(positionX,positionY,positionZ);
}
else if(Input.GetMouseButton(2)) //中间改变旋转量
{
rotationX =-Input.GetAxis("Mouse X") * scaleRotationX;
rotationY =Input.GetAxis("Mouse Y") * scaleRotationY;
transform.Rotate(rotationY,rotationX,0f,Space.World);
}
}