更新时间:2023-05-08 GMT+08:00
分享

开发指导

开发流程

开发流程请参考图1

图1 开发流程图

开发过程

  1. 搜索POI。

    // 创建获取POI的异步任务栈
    var mPOICloud = new HTPOICloud(); 
    
    // 将生命周期绑定到unity的生命周期
    mPOICloud.Create("NAVIPOI"); // 参数设置的是线程名
    mPOICloud.Start();
    mPOICloud.Stop();
    mPOICloud.Destroy();
    
    // 设置系统的基本参数
    mPOICloud.SetParams(HTSystemManager.GetHTSystem().GetAppConfig(), HTSystemManager.GetHTSystem().GetAppEnv(), hostUrl);
    
    // 设置成功失败的回调监听
    mPOICloud.AddListListener(SelecteDestination);
    mPOICloud.AddErrorListener(OnPoiError);
    
    // 根据gps获取附近的POI
    double lon = HTSystemManager.GetHTSystem().GetSniffer().GetGpsLocation().mLongitude;
    double lat = HTSystemManager.GetHTSystem().GetSniffer().GetGpsLocation().mLatitude;
    mPOICloud.GetDataList(lon, lat);

  2. 选定终点。

    HTNaviManager会自动管理HTNaviSession中导航功能的生命周期,被默认挂载在预制体当中,使用时可以直接通过HTNaviSession的mNavi来调用各种方法。
    // 导航终点坐标是虚拟世界坐标,可以直接带入POI上返回的坐标
    mNaviSession.mNavi.SetDestination(447763.6348, 4418530.1394, 37.979218);

  3. 发起导航。

    mNaviSession.mNavi.StartNavi();

  4. 回调监听。

    // 导航实时信息监听
    mNaviSession.mNaviInfoListener = OnNaviInfoStatus;
    // 导航失败信息监听
    mNaviSession.mNaviErrorListener = OnNaviError;
    // 进入电梯信息监听
    mNaviSession.mNaviElevatorListener = OnNaviElevator;
    // 方向引导信息监听
    mNaviSession.mNaviDirectionListener = OnNaviDirection;
    // 偏移量信息监听
    mNaviSession.mNaviYawListener = ShowYaw;

    您可在Unity新建工程Assets > HTFoundation > Samples > HTFoundationTester > Scripts中找到HTNaviCtro.cs并查看参考实例。

相关文档