unity实现物体跟随鼠标移动
在一些游戏中比如英雄联盟,data之类的游戏中都有人物跟随鼠标移动的功能,
今天我们来实现它
1.打开unity创建一个3D物体
2.创建一个c#代码代码如下
var world:Vector3;
var speed:float=0;//物体的移动速度
function Update (){
var screenpos=Camera.main.WorldToScreenPoint(transform.position);//物体的世界坐标转化成屏幕坐标
var e:Vector3=Input.mousePosition;//鼠标的位置
//当点击鼠标左键时
if(Input.GetMouseButton(0)){
e.z=screenpos.z;//1.因为鼠标的屏幕 Z 坐标的默认值是0,所以需要一个z坐标
world=Camera.main.ScreenToWorldPoint(e);
speed=1;
}
if(transform.position==world){
speed=0;
}else{
animation.Play("walk");//这是我自身带的一个默认动画,你可以把它删了
}
transform.LookAt(world); //物体朝向鼠标
transform.Translate(Vector3.forward*speed*Time.deltaTime);
}
3.将代码挂载到我们刚刚创建的3D物体上运行就可以实现3D物体跟随鼠标移动。