[]我浏览在线文档 关于共享材质和自身材质的代码 貌似没有什么不同?

https://ldc.layabox.com/doc/?nav=zh-ts-4-0-6

获取并修改自身材质:
......
//添加3D场景-----------------------
this.scene = new Laya.Scene();
Laya.stage.addChild(this.scene);
//方法一:直接异步加载
// var mesh:Laya.Mesh = Laya.Mesh.load("LayaScene_01/Assets/model/loveScene_jianzhu.lm");
// var meshSprite3D:Laya.MeshSprite3D = new Laya.MeshSprite3D(mesh);
//方法二:预加载,创建为Sprite3D类型
Laya.loader.create("LayaScene_01/Assets/model/loveScene_jianzhu.lm",Laya.Handler.create(this,this.onCreateComplete));
//预加载完成后回调
private onCreateComplete():void
{
//创建预加载的模型网格
var mesh:Laya.Mesh = Laya.loader.getRes("LayaScene_01/Assets/model/loveScene_jianzhu.lm");
//创建3D模型
var meshSprite3D:Laya.MeshSprite3D = new Laya.MeshSprite3D(mesh);
this.scene.addChild(meshSprite3D);
}


获取并修改共享材质:
//加载导出的卡车模型
this.role3D = Laya.Sprite3D.load("LayaScene_truck/truck.lh");
//模型与材质加载完成监听与回调
this.role3D.on(Laya.Event.HIERARCHY_LOADED,this,this.onLoadComplete);
this.scene.addChild(this.role3D);
//模型与材质加载完成后回调
private onLoadComplete():void{
//获取车身模型(查看.lh文件,模型中两个对象,车头“head”与车身“body”,它们都用同一个材质)
var meshSprite3D:Laya.MeshSprite3D = this.role3D.getChildAt(0).getChildAt(0) as Laya.MeshSprite3D;
//从模型上获取共享材质
var shareMaterial:Laya.StandardMaterial = meshSprite3D.meshRender.material as Laya.StandardMaterial;
//修改材质的反射颜色,让模型偏红
shareMaterial.albedo = new Laya.Vector4(1,0,0,1);
}


-----
看起来只是变量名字不同 shareMaterial. 我不太懂材质。原因是因为,引用的相同材质的模型,只要材质变了。模型的材质都会变。和代码操控没有关系是吗?


已邀请:

ymsdandan

赞同来自: woody1720596907

给你举个例子,车头和车身都有自己的自身材质,而他们整体有个共享材质,你要是改共享材质就是整体改变,你要是改自身材质就是只改变车头或车身中你要修改的对应的自身材质,这么解释你能明白了么

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作