[]请问,如何获得StandardMaterial,为什么transformUV始终是null

var material = mesh.meshRender.material;
console.log(material.transformUV);
已邀请:

ymsdandan

赞同来自:

有没有可能是你材质的问题呢

game4d

赞同来自:

我 new 的 StandardMaterial, 也不行,没用自己的材质

ymsdandan

赞同来自:

那你发个demo吧,具体我也不清楚
 

game4d

赞同来自:

https://layaair.ldc.layabox.com/demo/?3d&mesh&MeshLoad
在这个例子上加了几行代码,   对transformUV 操作毫无效果啊
 Laya3D.init(0, 0, true);
Laya.stage.scaleMode = Laya.Stage.SCALE_FULL;
Laya.stage.screenMode = Laya.Stage.SCREEN_NONE;

var scene = Laya.stage.addChild(new Laya.Scene());

var camera = scene.addChild(new Laya.Camera(0, 0.1, 100));
camera.transform.translate(new Laya.Vector3(0, 0.8, 1.5));
camera.transform.rotate(new Laya.Vector3(-15, 0, 0), true, false);

var directionLight = scene.addChild(new Laya.DirectionLight());
directionLight.color = new Laya.Vector3(0.6, 0.6, 0.6);
directionLight.direction = new Laya.Vector3(1, -1, -1);

//加载网格
var layaMonkey = scene.addChild(new Laya.MeshSprite3D(Laya.Mesh.load("../../res/threeDimen/skinModel/LayaMonkey/Assets/LayaMonkey/LayaMonkey-LayaMonkey.lm")));
layaMonkey.transform.localScale = new Laya.Vector3(0.3, 0.3, 0.3);
layaMonkey.transform.rotation = new Laya.Quaternion(0.7071068, 0, 0, -0.7071067);

layaMonkey.meshRender.material = new Laya.StandardMaterial();
layaMonkey.meshRender.material.diffuseTexture = Laya.Texture2D.load("../../res/threeDimen/ui/button.png");
layaMonkey.meshRender.material.transformUV = new Laya.TransformUV();

console.log(layaMonkey.meshRender.material.transformUV);

var rotation = new Laya.Vector3(0, 0.01, 0);
var debugModel = false;
var phasorSpriter3D = new Laya.PhasorSpriter3D();
var vertex1 = new Laya.Vector3();
var vertex2 = new Laya.Vector3();
var vertex3 = new Laya.Vector3();
var color = new Laya.Vector4(0, 1, 0, 1);

var index = 0;
Laya.timer.frameLoop(1, this, function () {

index +=1;
layaMonkey.meshRender.material.transformUV.offset = new Laya.Vector2(index 0/100.0, index 0/100.0);

    layaMonkey.active = !debugModel;
    layaMonkey.transform.rotate(rotation, false);

    if (debugModel) {
        phasorSpriter3D.begin(Laya.WebGLContext.LINES, camera);
        Tool.linearModel(layaMonkey, phasorSpriter3D, color, vertex1, vertex2, vertex3);
        phasorSpriter3D.end();
    }
});

(function loadUI() {
    var curStateIndex = 0;
    Laya.loader.load(["../../res/threeDimen/ui/button.png"], Laya.Handler.create(null, function () {
        var changeActionButton = Laya.stage.addChild(new Laya.Button("../../res/threeDimen/ui/button.png", "正常模式"));
        changeActionButton.size(160, 40);
        changeActionButton.labelBold = true;
        changeActionButton.labelSize = 30;
        changeActionButton.sizeGrid = "4,4,4,4";
        changeActionButton.scale(Laya.Browser.pixelRatio, Laya.Browser.pixelRatio);
        changeActionButton.pos(Laya.stage.width / 2 - changeActionButton.width * Laya.Browser.pixelRatio / 2, Laya.stage.height - 100 * Laya.Browser.pixelRatio);
        changeActionButton.on(Laya.Event.CLICK, this, function () {
            if (++curStateIndex % 2 == 1) {
                debugModel = true;
                changeActionButton.label = "网格模式";
            }
            else {
                debugModel = false;
                changeActionButton.label = "正常模式";
            }
        });
    }));
})();

要回复问题请先

商务合作
商务合作