laya的開發文檔


一、 先在unity3d里面做好游戲 為了保證和laya顯示一致,所有材質的shader選擇LayaAir3D/Blinnphong 材質 如圖所示

 

二、 導出舞台和所需prefab

1)     首先設置導出選項 如圖所示

 

 

分2種情況導出:

1、導出場景只保留相機和燈光或者需要一開始就需要顯示的prefab

2、導出prefab 只保留prefab 場景和燈光需要刪除,這些prefab作為動態加載使用

 

三 在laya創建項目

1) 新建空白項目如圖所示 根據自己要用的語言選擇 這里選擇AS3版本

 

2) 創建完畢后 文件樹如下

 

LayaSample.as為啟動文件 可以在.actionScriptProperties修改啟動文件

              在構造函數中 需要設置設配方式 如何是豎屏設置高適應

Laya.stage.scaleMode = "fixedheight";

橫屏設置寬適應

Laya.stage.scaleMode = "fixedWidth";

所有的適配方式可以在stage類的scaleMode方法里面找到

 

四 在laya中加載場景和prefab

1)一般使用預加載的方法

Laya.loader.create([{url:"res/LayaScene_Main/Main.ls","type":Scene},{url:"res/LayaScene_Model/Model.lh","type":Sprite3D}],Handler.create(this,this.onCreateComplete));

加載完成后會回調onCreateComplete 如果需要分包則需要加入baseurl設置成網絡地址同時設置本地已有資源白名單

Laya.URL.basePath = "https://XXX.com";//請把XXX換成自己的真實網址;

MiniAdpter.nativefiles = ["wxlocal","res/atlas/houzi.atlas"];//白名單

       加載場景和獲取場景元素 示例

scene = Laya.loader.getRes("res/LayaScene_Main/Main.ls");

Laya.stage.addChild(scene);

mainCamera = scene.getChildByName("Env").getChildByName("Main Camera") as Camera;

動態加載prefab示例

Sprite3D.instantiate((Laya.loader.getRes("res/LayaScene_Model/Model.lh")

.getChildByName(spName) as Sprite3D));

parent.addChild(obj);

注意:

1、laya的3d坐標系和unity3d的不一樣 X軸相反 laya遵循右手坐標系

2、Vector使用部分預制在特定情況下會有意外的bug 比如Vector.Zero,使用new Vector(0,0,0)則不會

3、沒有unity3d自帶的domove,dorotate等transform相關的tween方法 需要自己實現或者使用第三方類庫 自己實現參考如下

Tween.to(pos,{y:1.5,complete:Handler.create(this,OnTriggerEnterWithJumpMid),update:new Handler(this,onUpdatePosY)},100);

private function onUpdatePosY():void{

            if( (owner as Sprite3D)!=null && (owner as Sprite3D).transform!=null){

            ((this.owner as Sprite3D).getChildByName("GameObject") as Sprite3D).transform.localPosition=pos;

            }

        }

4、Laya.timer類里面所有的delay都是毫秒為單位 unity3d是秒為單位

5、Laya 掛腳本方式為 my.addComponent(Class); 獲取組件方式或者調用掛在腳本的函數

方式為(my. getComponentByType(Class) as Class).callFunction();

6、需要做物理檢測相關的類 需要繼承自Script,相當於uniyt3d里面的MonoBehaviour

里面的生命周期 基本一致

7、laya里面 沒有unity3d里面的tag概念 只能通過名字判斷

8、laya轉出的模型 無論之前在unity3d里面是那個layer 在laya里面都是默認的default

9、raycastHit中的distance數據為 距離/檢測的射線長度 同樣的還有 顏色值/255 ,角度/180,弧度/PI

 

PS Laya的注意事項需要更多的人來完善 如果有紕漏或者改善的 歡迎更新文檔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM