Unity 单击鼠标,物体朝目标点移动

需求分析

我们按下鼠标左键/右键/中间,物体朝向点击位置,并移动到点击位置。

实现思路:当按下鼠标后,我们需要利用射线获取到点击的坐标,然后利用Transform的LookAt方法使物体朝向点击的目标点,最后在一定时间内使物体移动到目标点即可。这里推荐一个补间动画插件-----DoTween,用它为旋转、移动添加插值,让动作不会太过于僵硬。

插件下载接:DoTween插件

提取码:1aiz   

实现

插件下载解压后,将它拖入到Assets文件下,全部导入即可,然后创建脚本

using DG.Tweening;//DoTween插件引用
using UnityEngine;
public class MoveToTargetPos : MonoBehaviour
{
    private static float movespeed = 2.0f;//米/秒,速度自定义即可
    private Camera camera;
    private Ray ray;
    private RaycastHit hit;
    private void Awake()
    {
        camera = GetComponentInChildren<Camera>();//获取子物体的摄像机组件
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(1))//按下鼠标右键
        {
            ray = camera.ScreenPointToRay(Input.mousePosition);//实例化射线为摄像相机朝场景中鼠标点击位置发射射线
            if(Physics.Raycast(ray,out hit))//如果射线与场景中物体发生了碰撞
            {
                float distance = Vector2.Distance(transform.position, hit.point);//获取自身物体与鼠标点击位置的平面距离 
                transform.DOMove(hit.point, distance / movespeed).SetEase(Ease.Linear);//使用DoTween的DOMove方法,参数1:目标位置,参数2:时间
                transform.DOLookAt(hit.point,1);//物体逐渐朝向某个位置,参数1:目标位置,参数2:时间
            }
        }  
    }
}

最后将脚本挂载在物体上即可:

效果展示:

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值