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...