查看: 2513|回复: 5

[脚本] Unity3D 鼠标移动物体旋转代码 附图

[复制链接]

33

主题

13

听众

203

积分

Rank: 2

升级   1%

发表于 2012-8-12 20:13 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!



[code=javascript]var target : Transform;
var distance = 20.0;
var mySpeed = 250.0;
private var x = 0.0;
private var y = 0.0;
var xMinLimit=30;
var xMaxLimit=120;
var yMinLimit=30;
var yMaxLimit=120;

function Start () {
    var angles = transform.eulerAngles;
    x = angles.y;
    y = angles.x;
}

function LateUpdate () {
   if (Input.GetMouseButton(1)){
      x += Input.GetAxis("Mouse X") * mySpeed * 0.02;
      x = ClampAngle(x, xMinLimit, xMaxLimit);
      y -= Input.GetAxis("Mouse Y") * mySpeed * 0.01;
      y = ClampAngle(y, yMinLimit, yMaxLimit);
   }
   var rotation = Quaternion.Euler(y, x, 0);
   transform.rotation = rotation;
   var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
   transform.position = position;
}

static function ClampAngle (angle : float, min : float, max : float) {
   if (angle < -360)
      angle += 360;
   if (angle > 360)
      angle -= 360;
   return Mathf.Clamp (angle, min, max);
}

[/code]
————————————————————————————————————————————————————
[code=javascript]var target : Transform;
var distance : float;
var mySpeed = 250.0;
private var x = 0.0;
private var y = 0.0;
var xMinLimit=30;
var xMaxLimit=120;
var yMinLimit=30;
var yMaxLimit=120;

function Start () {
    var angles = transform.eulerAngles;
    x = angles.y;
    y = angles.x;
}

function LateUpdate () {
   if (Input.GetMouseButton(0)){
      x += Input.GetAxis("Mouse X") * mySpeed * 0.02;
      x = ClampAngle(x, xMinLimit, xMaxLimit);
      y -= Input.GetAxis("Mouse Y") * mySpeed * 0.01;
      y = ClampAngle(y, yMinLimit, yMaxLimit);
   }
   
   distance += Input.GetAxis("Mouse ScrollWheel")*30;
   if(distance >=400)
   distance=400;
   if (distance<=50)
   distance = 50;
   var rotation = Quaternion.Euler(y, x, 0);
   transform.rotation = rotation;
   var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
   transform.position = position;
}

static function ClampAngle (angle : float, min : float, max : float) {
   if (angle < -360)
      angle += 360;
   if (angle > 360)
      angle -= 360;
   return Mathf.Clamp (angle, min, max);
}

[/code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

楼主热帖
该会员没有填写今日想说内容.

38

主题

24

听众

784

积分

Rank: 3Rank: 3

升级   18.93%

发表于 2013-4-16 21:30 |显示全部楼层
多谢楼主 你的分享!好资源 我想修改一下 到时候分享给大家 呵呵
回复

使用道具 举报

0

主题

22

听众

431

积分

Rank: 2

升级   77%

发表于 2013-4-16 23:05 |显示全部楼层

感谢楼主的无私分享!
回复

使用道具 举报

0

主题

21

听众

200

积分

Rank: 2

升级   0%

发表于 2013-5-26 22:44 |显示全部楼层
Input.GetAxis("Mouse X")
Input.GetAxis("Mouse Y")
手都快摆酸了 一直返回0
回复

使用道具 举报

16

主题

25

听众

391

积分

打酱油的

Rank: 2

升级   63.67%

发表于 2013-5-28 13:15 |显示全部楼层

膜拜中。。。。
回复

使用道具 举报

1

主题

20

听众

202

积分

Rank: 2

升级   0.67%

发表于 2013-7-12 19:29 |显示全部楼层
有没有按左键物体才移动旋转的方法呢
回复

使用道具 举报

0

主题

21

听众

207

积分

Rank: 2

升级   2.33%

发表于 2017-6-7 15:37 |显示全部楼层
很不错
回复

使用道具 举报

0

主题

21

听众

207

积分

Rank: 2

升级   2.33%

发表于 2017-6-7 15:34 |显示全部楼层
好帖就是要顶
回复

使用道具 举报

1

主题

21

听众

202

积分

Rank: 2

升级   0.67%

发表于 2017-6-7 14:48 |显示全部楼层
顶顶多好
回复

使用道具 举报

0

主题

21

听众

203

积分

Rank: 2

升级   1%

发表于 2017-6-7 15:25 |显示全部楼层
很好哦
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

站长推荐 上一条 /1 下一条

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal ( 苏ICP备12051100号 )   

GMT+8, 2019-12-15 03:24 , Processed in 0.120667 second(s), 44 queries .