您的位置:首页 > 汽车 > 新车 > 建立旅游网站的目的_广州传媒有限公司_杭州网络整合营销公司_最新疫情新闻100字

建立旅游网站的目的_广州传媒有限公司_杭州网络整合营销公司_最新疫情新闻100字

2025/5/13 7:58:10 来源:https://blog.csdn.net/LFJINNAN/article/details/146343845  浏览:    关键词:建立旅游网站的目的_广州传媒有限公司_杭州网络整合营销公司_最新疫情新闻100字
建立旅游网站的目的_广州传媒有限公司_杭州网络整合营销公司_最新疫情新闻100字

1、Off Mesh Link 过渡动画设置

  • 首先创建一个动画  
  • 关闭 Nav Mesh Agent 中的 Auto Traverse Off Mesh Link
  • 编写脚本
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.AI;public class OffMeshTest : MonoBehaviour
    {//Playerpublic NavMeshAgent agent;//跳跃动画public Animation ani;//是否正在传送bool isTransfering;//传送目标OffMeshLinkData omld;void Update(){// 检测是否处于OffMeshLink上if(agent.isOnOffMeshLink){if(!isTransfering)   //未开始传送{ani.Play("offmeshAni");omld = agent.currentOffMeshLinkData;isTransfering = true;   }else                //开始传送{ // 获取动画的归一化进度(0到1之间)float timeLerp = ani["offmeshAni"].normalizedTime;// 计算线性插值位置(从起点到终点)var posLerp = Vector3.Lerp(omld.startPos, omld.endPos, timeLerp);// 添加Y轴的正弦曲线运动,模拟跳跃抛物线posLerp.y+= Mathf.Sin(timeLerp * Mathf.PI) * 2;if(!ani.isPlaying)    //动画停止播放{agent.transform.position = omld.endPos;isTransfering = false;// 完成OffMeshLink过渡agent.CompleteOffMeshLink();}}}}
    }
    

    2、Navigation Area导航区域成本设置

成本设置——代码实现:

1)修改 door 的成本

2)Area Mask  

代码实现:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;public class NavAreaTest : MonoBehaviour
{//Playerpublic NavMeshAgent agent;void Update(){if (Input.GetKeyDown(KeyCode.T)){NavMesh.SetAreaCost(NavMesh.GetAreaFromName("Door"), 10000.0f);}if(Input.GetKeyDown(KeyCode.M)){int walkable = 1 << NavMesh.GetAreaFromName("Walkable");int jump= 1 << NavMesh.GetAreaFromName("Jump");int door = 1 << NavMesh.GetAreaFromName("Door");agent.areaMask = walkable + jump+ door;}}
}

3、多导航场景叠加跳转

实现代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.SceneManagement;public class Test : MonoBehaviour
{public OffMeshLink oml;GameObject linkGo;void Update(){if (Input.GetKeyDown(KeyCode.A)){//  Scene加载模式 为 叠加 LoadSceneMode.Additive (两个Scenes同时出现)SceneManager.LoadScene("SceneAdd2", LoadSceneMode.Additive);}if (Input.GetKeyDown(KeyCode.B)){linkGo = GameObject.FindGameObjectWithTag("Link");oml.endTransform = linkGo.transform;}}
}

 4、Nav Mesh Agent (导航代理组件)

         

 1)Steering

  • Stopping Distance:到达目标位置立即停止运动(不为0)
  • Auto Braking:自动刹车

         多个寻路点  不勾选

2)Obstacle Avoidance

  • Radius(半径)

  • Height(高度)

  • Quality(质量):质量越高,监测频率越高
  • Priority(优先级):数字越小,优先级越高

3)Path Finding

  • Auto Repath(重新规划路径):

不勾选   遇到障碍 障碍消失  Player 未到达指定位置

勾选       遇到障碍 障碍消失  Player 到达指定位置

5、其他问题

人物运动打滑

偏离中心点

Unity导航系统 | Unity 中文课堂

12--15

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com