Unity运用NavMeshAgent和LineRenderer实现物体运动轨迹回放功能

        最近公司有个项目需要做个Demo,功能是在3D场景中实时更新物体的GPS位置让物体在3d场景中移动,然后可以回访轨迹。GPS坐标转换为Unity坐标网上有比较多的博客,这里就不说了,主要分享一下物体运动和轨迹绘制以及回放的实现方法。

        效果看视频:

Unity轨迹回放功能录屏

        逻辑是,通过NavMeshAgent组件和Unity自带的路网烘培让小球动起来,然后鼠标按下的时候记录一下小球所在的位置,用于之后的轨迹的绘制,然后通过LineRenderer在场景中画出轨迹,UI的Slider来控制物体是在哪个点,代码如下:

PlayerMove挂载在NavMeshAgent的物体上,鼠标点击路网让他移动,按下空格键回放轨迹

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.UI;
/// <summary>
/// 物体移动
/// </summary>
public class PlayerMove : MonoBehaviour
{
    /// <summary>
    /// ID
    /// </summary>
    public string ID
    {
        get;
        set;
    }
    /// <summary>
    /// 回放时得到下个点的速度
    /// </summary>
    public float getPointSpeed;
    /// <summary>
    /// 回放时移动速度
    /// </summary>
    public float replayMoveSpeed;
    /// <summary>
    /// 存放所有行走的路径点
    /// </summary>
    private List<Vector3> roadPoints = new List<Vector3>();
    /// <summary>
    /// 寻路组件
    /// </summary>
    private NavMeshAgent meshAgent;
    /// <summary>
    /// 轨迹回放控制器
    /// </summary>
    ReplayController replayController;
    // Start is called before the first frame update
    void Start()
    {
        meshAgent = GetComponen
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值