Layaair 3D资源加载(Unity3D 导出资源),转载文章

                                                 Layaair 3D资源加载
 

layaair 预加载3D资源(Unity3D 导出资源)  和  2D 资源还是有些区别的。

2D资源的预加载 https://blog.csdn.net/nicepainkiller/article/details/82971636

这个就是我们加载  U3D 导出的 资源文件

基本就这块

 

 

// 程序入口
class GameMain {
    constructor() {
 
 
       //let  screenRatioFitter :ScreenRatioFitter = new   ScreenRatioFitter();
       //Laya3D.init(screenRatioFitter.Width,screenRatioFitter.Height, true);
 
 
        //初始化引擎
        Laya3D.init(SetupConfig.widthDesign,SetupConfig.heightDesign, true);
 
 
        //适配模式
        //Laya.stage.bgColor   = "#000000";
        Laya.stage.scaleMode = Laya.Stage.SCALE_NOBORDER; 
        //Laya.stage.scaleMode = Laya.Stage.SCALE_EXACTFIT;
        Laya.stage.alignH    = Laya.Stage.ALIGN_CENTER;
        Laya.stage.alignV    = Laya.Stage.ALIGN_MIDDLE;
        Laya.stage.screenMode= Laya.Stage.SCREEN_VERTICAL;
 
        //开启统计信息
        Laya.Stat.show();
 
        // //添加3D场景
        // var scene: Laya.Scene = Laya.stage.addChild(new Laya.Scene()) as Laya.Scene;
 
        // //添加照相机
        // var camera: Laya.Camera = (scene.addChild(new Laya.Camera(0, 0.1, 100))) as Laya.Camera;
        // camera.transform.translate(new Laya.Vector3(0, 3, 3));
        // camera.transform.rotate(new Laya.Vector3(-30, 0, 0), true, false);
        // camera.clearColor = null;
 
        // //添加方向光
        // var directionLight: Laya.DirectionLight = scene.addChild(new Laya.DirectionLight()) as Laya.DirectionLight;
        // directionLight.color = new Laya.Vector3(0.6, 0.6, 0.6);
        // directionLight.direction = new Laya.Vector3(1, -1, 0);
 
        // // //添加自定义模型
        // // var box: Laya.MeshSprite3D = scene.addChild(new Laya.MeshSprite3D(new Laya.BoxMesh(1, 1, 1))) as Laya.MeshSprite3D;
        // // box.transform.rotate(new Laya.Vector3(0, 45, 0), false, false);
        // // var material: Laya.StandardMaterial = new Laya.StandardMaterial();
        // // material.diffuseTexture = Laya.Texture2D.load("res/layabox.png");
        // // box.meshRender.material = material;
 
        // let fish :Laya.Sprite3D = Laya.Sprite3D.load("res/fishPrefab/Fish0/Laya.lh");
      
        // scene.addChild(fish);
        // fish.transform.translate ( new Laya.Vector3(10000,0, 1000000)); 
 
  
 
        // let scene: Laya.Scene=  Laya.Scene.load("res/LayaScene_Person/Person.ls");
 
        // Laya.stage.addChild(scene);
        // //创建摄像机(横纵比,近距裁剪,远距裁剪)
        // var camera: Laya.Camera = new Laya.Camera(0, 0.1, 1000);
        // //加载到场景
        // scene.addChild(camera);
        // //移动摄像机位置
        // camera.transform.position = new Laya.Vector3(0, 0, -10);
        // //旋转摄像机角度
        // camera.transform.rotate(new Laya.Vector3(0, 0, 0), true, false);
        // //设置摄像机视野范围(角度)
        // camera.fieldOfView = 35;
        // //设置背景颜色
        // camera.clearColor = new Laya.Vector4(0, 0, 0.6, 1);
        // //加入摄像机移动控制脚本
 
        // //创建方向光 -------------------
        // var light: Laya.DirectionLight = scene.addChild(new Laya.DirectionLight()) as Laya.DirectionLight;
        // //移动灯光位置
        // light.transform.translate(new Laya.Vector3(0, 2, 5));
        // //调整灯光方向
        // light.transform.worldMatrix.setForward(new Laya.Vector3(0, -0.5, 0));
        // //设置灯光环境色
        // light.color = new Laya.Vector3(1, 1, 1);
 
 
        // Laya.timer.loop(100,this,()=>
        // {
        //     // scene.transform.rotate(new Laya.Vector3(0, 0, 0), true, false);     
        // });
 
 
 
        let scene:Laya.Scene = new  Laya.Scene();
        Laya.stage.addChild(scene);
 
 
        let camera:Laya.Camera = new Laya.Camera();
        scene.addChild(camera);
 
 
        let box: Laya.MeshSprite3D = scene.addChild(new Laya.MeshSprite3D(new Laya.BoxMesh(2, 2, 2))) as Laya.MeshSprite3D;
        //let material: Laya.StandardMaterial = new Laya.StandardMaterial();
        //material.diffuseTexture = Laya.Texture2D.load("res/layabox.png");
        //box.meshRender.material = material;
 
        let build:Laya.Sprite3D = Laya.Sprite3D.load("res/fishPrefab/Fish0/Laya.lh");
        box.addChild(build);    
 
        box.transform.localPosition = new Laya.Vector3(0,0,-100);
        scene.addChild(box);
 
         
 
        // ///需要加载的资源列表   
        // let resArray : Array<any> = [
        //     { url:"res/background/back.jpg",            type:Laya.Loader.IMAGE },
        //     { url:"res/atlas/button.atlas",             type:Laya.Loader.ATLAS },
        // ];
 
        // Laya.loader.load( resArray, Laya.Handler.create(this, this.onCompelt), Laya.Handler.create(this, this.onprogress) );
 
     
 
        
        ///需要加载的3D资源列表   
        let res3DArray : Array<any> = [
            { url:"res/fishPrefab/Fish0/Laya.lh",            type:Laya.Sprite3D },
            { url:"res/fishPrefab/Fish1/Laya.lh",            type:Laya.Sprite3D },
            { url:"res/fishPrefab/Fish2/Laya.lh",            type:Laya.Sprite3D },
            { url:"res/fishPrefab/Fish3/Laya.lh",            type:Laya.Sprite3D },
            { url:"res/fishPrefab/Fish4/Laya.lh",            type:Laya.Sprite3D },
            { url:"res/fishPrefab/Fish5/Laya.lh",            type:Laya.Sprite3D },
            { url:"res/fishPrefab/Fish6/Laya.lh",            type:Laya.Sprite3D },
        ];
 
     
        Laya.loader.create(res3DArray, Laya.Handler.create(this,()=>
        {
            console.log("加载3D完成");
 
            for(let i = 0; i < res3DArray.length; i++)
            {
                   let box: Laya.MeshSprite3D = scene.addChild(new Laya.MeshSprite3D(new Laya.BoxMesh(2, 2, 2))) as Laya.MeshSprite3D;
                   let build:Laya.Sprite3D    = Laya.Sprite3D.load(res3DArray[i].url);
                   box.addChild(build);  
                   scene.addChild(box);
 
                   box.transform.localPosition = new Laya.Vector3(0,10*i,-100);
            }
 
            //预加载完成后  有两种方式 获得资源
           
            ///第一种是  
           let build:Laya.Sprite3D   =  Laya.Sprite3D.load("res/fishPrefab/Fish2/Laya.lh");
 
           ///第二种是
           let build2:Laya.Sprite3D  =  Laya.loader.getRes("res/fishPrefab/Fish2/Laya.lh");//这个函数 是2d 还是 u3d 通用的接口, 返回资源类型是根据资源的类型来的
 
 
        }),
        Laya.Handler.create(this, (pro)=>
        {
            console.log("加载3D进度:"+pro);
        }));
 
 
 
 
 
    }
 
        //加载完成
    private onCompelt():void   
    {
        //UIManager.getInstance();
    }
     //加载进度
    private onprogress(pro:number):void
    {
        console.log("加载进度:"+pro);
    }
      
}
new GameMain();
--------------------- 
作者:nicepainkiller 
来源:CSDN 
原文:https://blog.csdn.net/nicepainkiller/article/details/83994540 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值