Unity NavMesh & LineRenderer AI寻路及导航路径的绘制

简介: Unity NavMesh & LineRenderer AI寻路及导航路径的绘制

Nav Mesh是Unity中用于寻路行为的AI功能,下面简单介绍Nav Mesh的使用以及如何使用Line Renderer组件将寻路的路径通过如下方式绘制出来:

image.gif

首先需要将场景中属于寻路过程中的障碍物体做Navigation Static处理,在Inspector检视面板右上角的Static中:

image.gif

然后打开Navigation窗口进行烘焙,在Window/AI菜单中:

image.gif

点击Bake烘焙,在Scene场景窗口中进行预览,其中蓝色的区域即是寻路时可以行走的区域:

image.gif

image.gif

为示例中的机器人添加NavMesh Agent组件,该类中的SetDestination函数可以设置寻路的目标,传入一个坐标即可:

image.gif

usingUnityEngine;
usingUnityEngine.AI;
publicclassFoo : MonoBehaviour{
privateNavMeshAgentagent;
    [SerializeField] privateTransformtarget;
privatevoidStart()
    {
agent=GetComponent<NavMeshAgent>();
    }
privatevoidUpdate()
    {
agent.SetDestination(target.position);
    }
}

image.gif

image.gif

下面绘制寻路的路径,为机器人创建一个子物体并添加Line Renderer组件,路径不需要面向视图方向,因此Alignment模式设为TransformZ,同时将Texture Mode设为Tile:

image.gif

usingUnityEngine;
usingUnityEngine.AI;
publicclassFoo : MonoBehaviour{
privateNavMeshAgentagent;
privateLineRendererlineRenderer;
    [SerializeField] privateTransformtarget;
privatevoidStart()
    {
agent=GetComponent<NavMeshAgent>();
lineRenderer=GetComponentInChildren<LineRenderer>();
    }
privatevoidUpdate()
    {
agent.SetDestination(target.position);
varcorners=agent.path.corners;
lineRenderer.SetPositions(corners);
    }
}

image.gif

image.gif

创建一个Shader,为LineRenderer添加Material材质球:

Shader "Custom/Arrow"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _MSpeed("MoveSpeed", Range(1, 3)) = 2 //移动速度
    }
    SubShader
    {
        //贴图带透明通道 ,半透明效果设置如下:
        tags{"Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"}
        LOD 100
        Blend  SrcAlpha OneMinusSrcAlpha           //Blend选值为: SrcAlpha 和1-SrcAlpha  //也可测试为 DstColor SrcColor    //one one    
        Pass
        {
            Name "Simple"
            Cull off //双面
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            #pragma multi_compile_fog
            #include "UnityCG.cginc"
            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };
            struct v2f
            {
                float2 uv : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };
            sampler2D _MainTex;
            float4 _MainTex_ST;
            float _MSpeed;
            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }
            half4 frag(v2f i) : SV_Target
            {
                float2 uv = float2(i.uv.x - _MSpeed * _Time.y,i.uv.y); //箭头移动的计算
                // sample the texture
                fixed4 col = tex2D(_MainTex, uv);
                // apply fog
                UNITY_APPLY_FOG(i.fogCoord, col);
                return col;
            }
            ENDCG
        }
    }
}

image.gif

用到的贴图资源:

image.gif

image.gif

最终效果:

image.gif

目录
相关文章
|
11天前
|
人工智能 安全 数据安全/隐私保护
一个案例,看懂AI Agent厂商的商业落地路径
随着大语言模型技术的进步,国内科技巨头正加速在AI Agent领域的布局,利用自身技术和应用场景推动AI Agent在各行业的深度融合。百度、飞书、钉钉等已推出相关产品,其中实在智能的Agent智能体结合AI和RPA技术,提供高度自主和交互性的软件实体,已在多个场景实现商用并即将公测。企业选择AI Agent时关注点包括与现有自动化解决方案的融合、易用性、数据安全和新业务自动化能力。实在智能的Agent解决方案因其灵活性、安全性及广泛的应用潜力受到青睐。
125 1
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
Agent AI智能体的未来角色、发展路径及其面临的挑战
Agent AI智能体的未来角色、发展路径及其面临的挑战
|
11天前
|
机器学习/深度学习 人工智能 监控
构建未来:AI在个性化学习路径设计中的应用
【4月更文挑战第29天】 随着人工智能(AI)的飞速发展,教育领域正经历一场由数据驱动的变革。本文聚焦于AI技术在个性化学习路径设计中的应用,探讨其如何通过精准分析学习者的行为和表现来优化教学策略和内容。我们展示了利用机器学习模型来预测学习成果、识别学习障碍以及提供即时反馈的潜力。文章还讨论了实施个性化学习所面临的挑战,包括数据隐私保护和技术整合问题,并提出了相应的解决策略。
|
11天前
|
算法 定位技术 图形学
unity3d寻路算法
unity3d寻路算法
|
11天前
|
机器学习/深度学习 人工智能 API
LangChain初探:为你的AI应用之旅导航
这篇文章带来了 LangChain 较为全面的精彩初探,带领小白选手轻松揭开其神秘面纱,一窥其独特之处。不容错过!
148 1
LangChain初探:为你的AI应用之旅导航
|
11天前
|
存储 图形学 Android开发
Unity 数据读取|(一)宏的定义和资源路径
Unity 数据读取|(一)宏的定义和资源路径
|
5月前
|
人工智能 图形学
Unity——游戏AI实例
Unity——游戏AI实例
|
5月前
|
人工智能 图形学
Unity——模拟AI视觉
Unity——模拟AI视觉
|
8月前
|
人工智能 运维 Cloud Native
ACK 云原生 AI 套件:云原生 AI 工程化落地最优路径
ACK 云原生 AI 套件:云原生 AI 工程化落地最优路径
|
11月前
|
API 图形学
unity-AI(自动导航基础)
unity-AI(自动导航基础)
88 0