屏幕内跟随鼠标移动(鼠标点击一个位置,物体移动到该位置)

Vector3 world;//物体要移动到的位置 (世界坐标系)     
float moveSpeed = 0;//物体移动速度 
void Update()
{
//将物体的世界坐标转换为屏幕坐标        
Vector3 targetposition = Camera.main.WorldToScreenPoint(this.transform.position);
//鼠标在屏幕上的位置坐标 
Vector3 mouseposition = Input.mousePosition;
if (Input.GetMouseButton(0))
{
mouseposition.z = targetposition.z;
//world=Camera.main.ScreenToWorldPoint(mouseposition);
//这种情况下 会有穿透现象
world.x = Camera.main.ScreenToWorldPoint(mouseposition).x;
world.z = Camera.main.ScreenToWorldPoint(mouseposition).z;
world.y = this.transform.position.y;
moveSpeed = 3;
}
if (this.transform.position == world)
{
//如果物体移动到了鼠标指定的位置 将移动速度设为0 
moveSpeed = 0;
}
this.transform.LookAt(world);//物体朝向鼠标对应的位置 (此时的位置为世界坐标系) 
this.transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}

转载于:https://www.cnblogs.com/Study088/p/7298704.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值