Laya加载unity场景踩坑记录(AS3语言)

本文分享了使用Unity与LayaAir引擎混合开发的实践经验,包括版本兼容性问题、场景加载方法、资源预加载策略及常见错误解决办法。作者推荐使用LayaAir 1.x最新版IDE搭配Unity 5.6.x插件,详细介绍了两种场景加载方式及光照、碰撞盒设置等技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.千万不要用高版本的unity使用laya的插件,因为他们目前最新的2.0的插件也就支持到unity5.6.x,不然迎接你的将会是最少两个错误。

2.如果之前用的1.x版本的laya转成2.x版本的引擎的话将会出现一片bug,因为2.x很多api不向下兼容,甚至Dictionary都木有了!!所以目前我用的版本是1.x最新版的IDE加上2.0的unity插件(这种搭配灰常好用,用1.x的插件虽然也能导出场景和模型,而且在laya中也可以用,但是打包成微信小程序时就会莫名报错!!)

3.如果场景加载完就不需要对场景及其内部的物体进行操作的话(一般来说那是不可能的)那么就用以下的加载方式:

var scene:Scene = Scene.load(url);

Laya.stage.addChild(scene);  //千万不要忘记将场景加入舞台中

4.若场景加载完后需要对场景内部的物体进行其他操作,需要先预加载资源,然后再将场景加载到舞台上,并从资源中找到想要操作的物体,代码如下: 

           Laya.loader.create(url, Handler.create(this,this.onLoad));
public function onLoad():void

        {
            var scene:Scene = Laya.loader.getRes(url);  //同预加载时的url

            Laya.stage.addChild(scene);

            Laya.stage.setChildIndex(scene,0);    //为了在场景前加上UI界面            

            var camera:Camera = scene.getChildByName("Main Camera") as Camera;

            var target:Sprite3D = scene.getChildByName("Target") as Sprite3D;  

            console.log("target:"+target.name);

            console.log("摄像机:"+camera.name);

            //添加平行光----------------------------------

            var directionLight:DirectionLight = scene.addChild(new DirectionLight()) as     DirectionLight;

            //灯光的漫反射颜色

            directionLight.color = new Vector3(1.6, 1.6, 1.6);

            //灯光的方向(弧度)

            directionLight.direction = new Vector3(0.3, -1, 0);

            //设置灯光漫反射颜色

            directionLight.diffuseColor = new Vector3(0.3,0.3,0.3);

            //灯光的环境色

            scene.ambientColor = new Vector3(0.6, 0.6, 0.6);            

        }   

以上方法中url可以是本地的相对地址,也可以是网址,并且url也可以是url数组,可以同时加载多个资源,需要注意在通过网址加载资源时,资源一定要与项目放在同一个服务器,否则会因跨域访问而导致加载失败。

问题集锦:

1.添加网格碰撞盒时出现Cannot read property 'btCollisionObject' 错误:

通过点击IDE最左侧的调色盘按钮进入编辑模式,可在菜单中“文件->项目设置”打开项目设置面板,勾选laya.physics3D.js,确定便可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值