Laya 实操十三:3D场景创建+transform

创建3D场景

export default class Test extends Laya.Script {
    constructor() { 
        super(); 

        //搭建场景
        var scene3d = new Laya.Scene3D();
        Laya.stage.addChild(scene3d);
        //创建相机
        var camera = new Laya.Camera(0,0.3,100);
        camera.fieldOfView = 60;
        camera.clearColor = new Laya.Vector4(0,0,0,1);
        scene3d.addChild(camera);
        camera.transform.translate(new Laya.Vector3(0,1,0));
        camera.cullingMask = 1<<2;//层级
        //camera.removeAllLayers();
        //camera.addLayer(1);
        //camera.cullingMask = (1<<1)|(1<<2);
        //物体
        //几何网格/网格图元
        var cube = new Laya.MeshSprite3D(Laya.PrimitiveMesh.createBox(1,1,1));
        scene3d.addChild(cube);
        //位置
        cube.transform.translate(new Laya.Vector3(0,0,-10));
        //层级
        cube.layer = 2;
        //材质
        var m = new Laya.UnlitMaterial();
        //贴图
        Laya.Texture2D.load("res/background.png",Laya.Handler.create(this,function(tex){
            m.albedoTexture = tex;
        }));
        //绘制
        cube.meshRenderer.material = m;
    }
}

 transform

export default class Test extends Laya.Script {
    constructor() { 
        super(); 

        //搭建场景
        var scene3d = new Laya.Scene3D();
        Laya.stage.addChild(scene3d);
        //创建相机
        var camera = new Laya.Camera(0,0.3,100);
        camera.fieldOfView = 60;
        camera.clearColor = new Laya.Vector4(0,0,0,1);
        scene3d.addChild(camera);
        camera.transform.translate(new Laya.Vector3(0,1,0));
        camera.cullingMask = 1<<2;//层级
        //camera.removeAllLayers();
        //camera.addLayer(1);
        //camera.cullingMask = (1<<1)|(1<<2);
        //物体
        //几何网格/网格图元
        var cube = new Laya.MeshSprite3D(Laya.PrimitiveMesh.createBox(1,1,1));
        scene3d.addChild(cube);
        //位置
        cube.transform.translate(new Laya.Vector3(0,0,-10));
        //层级
        cube.layer = 2;
        //材质
        var m = new Laya.UnlitMaterial();
        //贴图
        Laya.Texture2D.load("res/background.png",Laya.Handler.create(this,function(tex){
            m.albedoTexture = tex;
        }));
        //绘制
        cube.meshRenderer.material = m;


        console.log(cube.transform.localPosition);
        console.log(cube.transform.position);

        this.cube = cube;
    }
    cube = null;

    onUpdate(){
        //平移
        /*
        var pos = this.cube.transform.position;
        pos.z -= 5 * Laya.timer.delta/1000;
        this.cube.transform.position = pos;
        */
        /*
        var offset = new Laya.Vector3(0,0,-5 * Laya.timer.delta/1000);
        this.cube.transform.translate(offset,false);
        */

        //缩放
        /*
        var s = new Laya.Vector3(5,2,1);
        this.cube.transform.scale = s;
        */

        //旋转
        //欧拉
        //yaw-y,pitch-x,roll-z
        //this.cube.transform.rotationEuler = new Laya.Vector3(15,0,0);
        //四元数
        /*
        var rot = new Laya.Quaternion();
        Laya.Quaternion.createFromYawPitchRoll(0,15,0,rot);
        this.cube.transform.rotation = rot;
        */
        //持续
        //this.cube.transform.rotate(new Laya.Vector3(0,30 * Laya.timer.delta/1000,0),false,false);

        //转动后移动
        /*
        this.cube.transform.rotationEuler = new Laya.Vector3(15,0,0);
        var forward = new Laya.Vector3(0,0,0);
        this.cube.transform.getForward(forward);
        var s = 5 * Laya.timer.delta/1000;
        var offset = new Laya.Vector3(s*forward.x,s*forward.y,s*forward.z);
        this.cube.transform.translate(offset,true);
        */

        //朝向
        //this.cube.transform.lookAt(new Laya.Vector3(0,-10,-20),new Laya.Vector3(0,1,0));
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值