为啥从assetBundle添加MeshCollider时网格被标记为不可访问以及如何解决?
Posted
技术标签:
【中文标题】为啥从assetBundle添加MeshCollider时网格被标记为不可访问以及如何解决?【英文标题】:Why the mesh has been marked as non-accessible when adding MeshCollider from assetBundle and how to solve it?为什么从assetBundle添加MeshCollider时网格被标记为不可访问以及如何解决? 【发布时间】:2019-12-12 09:01:34 【问题描述】:我有一个可脚本化的资产,在 GameObject 变量上包含一个 fxbModel,我正在这样做:
model = Instantiate(caAsset.model, origin);
fbxComponents.All(fbxComponent => fbxComponent.gameObject.AddComponent<MeshCollider>());
资源是否从资源加载,一切正常。*
但是来自 AssetBundle 的资产**会发生以下错误。
CollisionMeshData couldn't be created because the mesh has been marked as non-accessible.
Mesh asset path "" Mesh name "Flanschdeckel_low"
UnityEngine.GameObject:AddComponent()
(*)MyScriptableAsset caAsset = Resources.Load(scriptableObjectName);
(**)MyScriptableAsset caAsset = bundle.LoadAsset<MyScriptableAsset>(scriptableObjectName);
【问题讨论】:
【参考方案1】:在网格子文本下的模型选项卡上的 fbx 文件上有一个启用读/写的属性,如果您勾选该框,它可能会起作用。检查图片右上角以便更好地理解。enter image description here
【讨论】:
是的,这就是诀窍。谢谢你。我发现,统一进一步在 fbx 导入时选中了此复选框。我还没有找到编辑此设置的方法,但使用 docs.unity3d.com/ScriptReference/Mesh-isReadable.html 可以通过通知正在创建资产的用户来控制创建资产包的过程。以上是关于为啥从assetBundle添加MeshCollider时网格被标记为不可访问以及如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
unity中Assetbundle打包windows成功,为啥打包Android失败
Unity进阶----AssetBundle_03(2018/11/07)