您的位置:首页 > 移动开发 > Unity3D

[Unity3d]控制物体的旋转以及缩放

2013-12-26 11:37 726 查看
我们在用unity做产品展示的功能的时候,旋转和缩放是必不可少的功能,如果是大型物品,比如汽车或者其他的东西,可以使用旋转摄像机的思路来控制达到物体旋转的效果,如果是这种情况可以参考我之前的文章:http://blog.csdn.net/dingxiaowei2013/article/details/16337411;如果是小型物品的展示,就可以通过通过控制物体本身的旋转和位置的变化来达到缩放和旋转物体的效果。因为我这里有一个背景图,所以不希望背景图动,之所就只能采取第二种方法来达到缩放旋转物体的效果。

Code:

using UnityEngine;
using System.Collections;

public class DragModel : MonoBehaviour {

private float x = 0.0f;
private float y = 0.0f;

private float xSpeed = 200.0f;
private float ySpeed = 200.0f;

private float zSpeed = 40f;

private float normalDistence = 0;

private float minDistence = 0;
private float maxDistence = 10;

void Update ()
{

if(Input.GetMouseButton(1))
{
x=Input.GetAxis("Mouse X") *xSpeed;
print(Input.GetAxis("Mouse X"));
y=Input.GetAxis("Mouse Y") *ySpeed;

transform.Rotate(Vector3.up * -x *Time.deltaTime,Space.World);
transform.Rotate(Vector3.right * y *Time.deltaTime,Space.World);

}

else if(Input.GetAxis("Mouse ScrollWheel")!=0)
{
float ga = Input.GetAxis("Mouse ScrollWheel");
if(transform.position.z > minDistence && transform.position.z<maxDistence||transform.position.z<=minDistence && ga<0||transform.position.z>=maxDistence && ga>0)
{
transform.Translate(Vector3.forward*-Input.GetAxis("Mouse ScrollWheel")*zSpeed*Time.deltaTime,Space.World);
}

}
}
}


效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: