Unity 2D及3D物体随鼠标转向的方法(类似孤胆枪手效果)

首先明确效果,如孤胆枪手那样任务随鼠标方向转向的效果
要实现此效果我们首先要知道鼠标的位置
话不多说直接上代码

 Vector3 point = Input.mousePosition;
 //注意,此时的Point并非鼠标的世界坐标,而是屏幕坐标
 point.z = 10;
 //这里是一个小坑,point.z初始为0
 //在3D条件下、Camera的Z轴为-10,如果不设置point的Z轴坐标那么经过下面转换后得到的世界坐标会变成(0,0,-10),原因是Z轴的转化规则为point的Z轴值+Camera的Z轴值
 //2D条件下无影响,但还是推荐设置Z轴信息
 point = Camera.main.ScreenToWorldPoint(point);
 //使用函数ScreenToWorldpoint对point坐标转化,屏幕坐标转化为世界坐标
 //此外Camer中还要其他位置的转化函数,可以去试试

此时我们便获得了鼠标的世界坐标信息,想要让物体跟随鼠标转动我们需要对物体使用transform.LookAt函数

point.z=0;
//对2D作用,可以修改其值
transfom.LookAt(Vector3 worldPositin);
//此函数是将物体的Z轴对准某个点,一般用于摄像头的对焦
//此外,它还有一个重载函数
transform.LookAt(Vector3 worldPosition,Vector3 worldUp);
//作用为在物体Z轴转动至worldPosition后,将Y轴转动至worldUP方向
//一般可以将worldUp赋值为Vector3.back或Vector3.forward,将Y轴锁定
//如果好奇也可以试试Vector.left之类的参数

我们要使用的就是重载函数

transform.LookAt(point,Vector.back);

这样一来我们的物体随鼠标转向的方法就做好了。需要注意的就是3D中对鼠标屏幕坐标转化为世界坐标方法以及在设置了Z轴的方向后也要设置Y轴方向,否则物体会“翻面”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值