[]有些模型load之后,MeshSprite3D 的共享材质个数为0,无法对材质进行操作

_disObj3d = Sprite3D.load("../../res/models/cike.lh");
_scene3d.addChild(_disObj3d);
_disObj3d.once(Event.HIERARCHY_LOADED, null, function(sender:Sprite3D):void
{
      var ms:MeshSprite3D = _disObj3d.getChildByName("mod_CiKeZhuangBei_Body_03") as MeshSprite3D;
      if(ms)
      {
          trace("length " + ms.meshRender.sharedMaterials.length);
      } 
}     
输出: length 0
 
已邀请:

jifm

赞同来自:

我拿官网的例子--帐篷,他的child也是0

Laya_XS

赞同来自:

帐篷的名字应该是

名字.jpg

,你名字应该搞错了,你在确认下,你的问题可以通过断点调试下!

leeq3000

赞同来自:

@xiaosong 我这个不是官网的帐篷啊,我这是自己的模型
var ms:MeshSprite3D = _disObj3d.getChildByName("mod_CiKeZhuangBei_Body_03") as MeshSprite3D;
这个节点我是拿到了的哈,转换成MeshSprite3D也成功了的,要不然不会有输出。
 
现在的关键问题是这个MeshSprite3D的ms.meshRender.sharedMaterials.length 共享材质是空的

183*****755

赞同来自:

1,如果没有使用最新版本的引擎,请用最新的版本的引擎,因为最新版本的引擎解决了加载的问题
2,如果使用非最新版本的引擎,请在每个子节点ms.meshFilter.sharedMesh加载完后获取

150*****372

赞同来自:

最新版本的依旧有这问题

要回复问题请先

商务合作
商务合作