如图所示,我想获得用代码在程序运行后获得箭头处这个材质的文件名(即body6001001)?试了很多方法如node.getComponent(SkinnedMeshRenderer).getMaterial(0).name,name都是为空
获得了又能怎样? 打包的时候还会被混淆,导致你用到的名字不是原始名字
我想实现的最终需求就是代码动态替换6开头的材质
我想实现的最终需求就是代码动态替换6开头的材质
建议你打消这个念头…
name 这个字段数据为空是引擎的BUG,等待修复吧。
给你个思路,很绕,但大概率是可行的。1、获得这个资源的uuid,2、根据这个uuid去查找name2uuid的对应表。这个表肯定是存在的,但因为我没实操弄过,所以说不上来在哪。
这其实可以通过设计解决这个问题,写个MaterialsManager进行管理,比如说动态加载所有material,管理好每个material是啥,然后根据需求设置到materials字段上不就可以了么,不想重复设置在设置时候对比一下uuid啥的,总结来说,虽然我不知道你之前上面有些啥,但是我可以用我知道的东西替换你身上的东西,如果你身上的东西uuid和我设置的一样,我就认为你已经变成我想要的模样了
给你个方案,插件。如果你是想在编辑器中改,插件直接完成就行,如果你是想在运行时动态改,那你可以用插件生成映射文件,然后读这个文件
用uuid
