温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-06 06:33:23 来源:网络 阅读:444 作者:蓬莱仙羽 栏目:游戏开发

我们在用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);	 			} 			 		} 	} } 

效果图:

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI