You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用NavMeshBuilder.CollectSources出现void转NavMeshBuildSource错误

问题解决:Unity运行时构建NavMesh调用CollectSources报CS0029错误

错误原因

  • NavMeshBuilder.CollectSources为void无返回值方法,它会直接将收集到的所有导航构建源写入你传入的最后一个List<NavMeshBuildSource>类型参数中,不会返回单个NavMeshBuildSource对象
  • 你的代码尝试将void返回值赋值给NavMeshBuildSource类型变量,触发了隐式类型转换失败的CS0029报错

修复方案

把报错的赋值行删掉,直接调用方法即可,收集到的构建源会自动存入你提前初始化的navMeshBuildSources列表中,后续可直接用该列表构建NavMesh。

修正后完整代码示例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class NavMeshRuntimeBuilder : MonoBehaviour
{
    LayerMask _layerMask;
    // 存储运行时生成的NavMesh数据
    NavMeshData _runtimeNavMesh;
    NavMeshDataInstance _navMeshInstance;

    private void SetUpNavMesh()
    {
        NavMeshBuildSettings navMeshBuildSettings = NavMesh.CreateSettings();
        navMeshBuildSettings.agentHeight = 2f;
        navMeshBuildSettings.agentRadius = 1f;
        navMeshBuildSettings.agentSlope = 45f; // 原参数2坡度过低,建议根据实际需求调整

        Bounds collectionBounds = new Bounds(Vector3.zero, new Vector3(99999, 9999, 9999));
        NavMeshCollectGeometry navMeshCollectGeometry = NavMeshCollectGeometry.PhysicsColliders;
        List<NavMeshBuildMarkup> navMeshBuildMarkups = new List<NavMeshBuildMarkup>();
        List<NavMeshBuildSource> navMeshBuildSources = new List<NavMeshBuildSource>();
        
        // 修正后的调用方式,不需要接收返回值
        NavMeshBuilder.CollectSources(collectionBounds, _layerMask, navMeshCollectGeometry, 0, navMeshBuildMarkups, navMeshBuildSources);

        // 后续构建并激活NavMesh的补充代码
        _runtimeNavMesh = new NavMeshData();
        _navMeshInstance = NavMesh.AddNavMeshData(_runtimeNavMesh);
        NavMeshBuilder.UpdateNavMeshData(_runtimeNavMesh, navMeshBuildSettings, navMeshBuildSources, collectionBounds);
    }
}

内容的提问来源于stack exchange,提问作者Anouar Touati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:57:05