flare 3D之載入模型資源見解

2021-07-09 08:08:51 字數 2633 閱讀 2150

flare 3d

之載入模型資源見解

首先說說在

flare 3d

中載入模型資源的一些方法:

通過3d

場景物件的

url進行載入

: myscene3d.addchildfromfile("saidao.f3d");

並且這個方法返回相應的

3d模型(

pivot3d

)物件,

後面可以得到這個返回的

3d模型物件進行操作。

首先載入然後生成

pivot3d

物件,然後通過遊戲的場景物件進行加入這個

3d模型物件

: var 3d:pivot=newpivot3d(

檔案資源

url);

myscene.addchild(3d);

但是經過測試這個方法怎麼就不能把3d模型放入到myscene場景中。可能**有問題,有待研究,但這是乙個方法。

然後呢,在網上搜了下,竟然還有另外還有以下幾種方式,而且搜了好幾個,它們又驚人的相似,看來真是一大抄呀,所以我也借鑑學習下它們的所講的東西。然後去測試了下,果然還行。

(1)、利用flare3dloader

類載入:

var loader:flare3dloader=new flare3dloader(

檔案資源

url);

loader.load();

myscene3d.addchild(loader);

(2)使用嵌入

(embed)

資源的方式來進行載入:

首先通過

embed宣告

[embed(source=」

檔案url」)

, public var 3d

:class;

然後使用

scene3d

場景物件或者

flare3dloader

來進行載入

myscene.addchildfromfile(new3d());

var loader:flare3dloader=new flare3dloader(new 3d());

loader.load();

myscene3d.addchild(loader); 額

.......

貌似和之前沒有什麼區別嘛

,只是把那個路徑內嵌了而已。

然後說完使用的方法載入後,然後就是要注意的就是當初次使用以上這些方法載入這些模型f3d資源時,

會統一觸發一次

scene3d.complete_event

事件,表示

scene

已經構建好了。然後就得等著系統把這些資源載入完,然後如果有新的資源加入時才會觸發

scene3d.complete_event

事件,如果是載入之前載入過得檔案則不會觸發

scene3d.complete_event

。 所以在乙個遊戲生成過程中,如果要生成乙個類的兩個物件,而且這個類中會載入相應的

f3d檔案,那麼第一次生成物件時相應的資源就需要進行載入,然後我們可以通過

scene3d.complete_event

事件等待著資源的載入完成然後進行事件處理,但是如果你還想繼續生成這個類的物件,那麼這些資源就不會被載入,那麼就沒有檔案載入完成這個事件即

scene3d.complete_event

事件。 今天的解決方案就是,在每個需要相應資源的類中定義好乙個靜態屬性如

flag

並且預設設定為

false

,即還沒有被載入,然後一旦有誰例項化這個類(伴隨著資源載入),那麼就把這個靜態屬性設定為

true

,即載入了,然後加乙個判斷,如果

flag==false

就新增scene3d.complete_event

事件,flag==true

那麼就不用呼叫這個事件了,**如下

:if(!flag)else

然後呢,又在網上發現說還有種用

loader

的屬性來判斷的方法,如下

: loader =newflare3dloader("eko.f3d");

loader.load();

scene.addeventlistener(scene3d.update_event, updateevent );

privatefunctionupdateevent(e:event):void

} 它即用到了

loader

物件中的

loaded

屬性來判斷。

而且我還發現,首次載入的資源生成的

3d物件加入到

scene3d

場景中後,如果你後面使用過程中對它的屬性進行改變,然後你再利用這些資源資源生成

3d物件加入相同的

scene3d

場景後,如果你不恢復它初始的屬性的話,它的屬性會是你後面修改過的屬性。所以每次再要生成時需要重置它的屬性。

U3D資源載入

1.靜態引用 在指令碼內建立public變數,把資源在inspector面板上進行賦值。2.resources resource.load resource.loadall 可以動態載入resouces資料夾內的資源檔案。如果有重複資源,優先尋找路徑層次高的那個。3.assetdatabase as...

Mapbox載入3D模型

現在需要在mapbox中載入obj檔案和附屬的材料庫mtl檔案,在地圖上展示乙個3d模型。1.threebox.js 2.mapbox gl.js 3.mapbox gl.css 4.需要載入的3d模型檔案 var map newmapboxgl.map map.on style.load func...

Unity3D 動態載入資源

一 內部呼叫 1.resources.load path type 或resources.loadall path type 載入儲存在resources資料夾中path處的資源,必須忽略字尾名。gameobject instance instantiate resources.load enemy...