[回到版面]
回應模式
名 稱
E-mail
標 題
內 文
附加圖檔[] []
刪除用密碼(刪除文章用。英數字8字元以內)
  • 可附加圖檔類型:GIF, JPG, PNG, JPEG,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 10000 KB。當回文時E-mail填入sage為不推文功能
  • 當檔案超過寬 125 像素、高 125 像素時會自動縮小尺寸顯示
  • 程式碼可使用 [code][/code] 以 google-code-prettify 標亮 (程式自動判斷語言類別)

  • 公告、舉報、建議請向DB管理室辦理。
  • 本板討論遊戲製作為主,改造方面也可討論,但如果牽涉到版權,請自重。
  • 3D建模請至3D板, 3D遊戲製作(Ex.怎麼用DirectX跑3D?)則可在這討論。
  • 本板為一般向板面,禁止張貼上車圖。

檔名:1498900890391.jpg-(279 KB, 850x1195) [以預覽圖顯示]
279 KBUnity PC更新檔製作 名稱: 無名氏 [17/07/01(六)17:21 ID:QzKATjWs] No.12841 1推 
Unity Build PC版用完會產生一個exe檔還有一個data資料夾
那如果今天想用類似patch的更新檔或是DLC該如何製作呢?
(不考慮網路更新的功能的話)

如果有相關文章參考也可以~ 因為關鍵字好像有點雜....
無名氏: assetbundle (REGYW5jM 17/07/02 20:22)
無標題 名稱: 無名氏 [17/07/01(六)22:21 ID:QKgn4TTA] No.12842 4推  
不就單純比對兩個版本差異檔案就好了嗎?
然後把差異檔案打包起來就OK了
無名氏: (*゚∇゚)可是...如果我變化的是resources.assets...那單個差異會很大... (t7SMZMuA 17/07/03 21:15)
無名氏: 所以基本上來說經常性變動物件是不會放在resources底下 (tz0s8DqI 17/07/04 23:44)
無名氏: 當你把檔案放在resources底下時.就必須承擔整個DATA資料夾都必須更新的風險 (tz0s8DqI 17/07/04 23:45)
無名氏: 不過主要還是看放啥物件啦.各種物件有不太一樣的處理法. (tz0s8DqI 17/07/04 23:46)
無標題 名稱: 原PO [17/07/05(三)01:32 ID:11yI29S6] No.12853   
看了兩天的AssetBundle
然後載了一個AssetBundleManager的Plugin來試試

目前試到我能打包出AssetBundle的各平台版本的小檔案了
然後...然後就不會用了 囧

這個Plugin的範例場景打包出來,不知道怎麼跟這些檔案結合
感覺包出來的東西跟我Build的東西是兩個不同的東西
----
之前有一個小遊戲用了很多Resources.Load
如果我想換成AssetBundle有什麼直接讀取的好辦法嗎?
我看這個Plugin有提供一個LoadAssetAsync的讀取

不過因為我的物件想要即時讀取並直接使用
用Async應該還沒讀完,就會掛掉了吧

希望大大們可以再給我一些提示方向 OTZ
無標題 名稱: 無名氏 [17/07/05(三)21:35 ID:XIaaT.Es] No.12863   
我是REGYW5jM
我待的專案是用assetbundle在手機平台上
專案輸出時會有兩個部分
1)前端專案(.apk.ipa,包含了一開始的場景,全部的code&下載assetbundle的機制
2)assetbundle的檔案

assetbundle只有在釋出跟時機測試的時候才會使用,其餘的製作還是使用本地端的資源(廢話
透過#define的方式選擇要使用本地端資料還是assetbundle
也就是透過Resources.Load或LoadAssetAsync來讀取

讀取資源的部分 應該要用startcoroutine下去做,且在初始化的時候處理
無標題 名稱: 原PO [17/07/07(五)00:16 ID:K0OKjzfQ] No.12864   
有些地方還是不太懂,可能我不了解assetbundle的整體概念
雖然是看了許多文章....範例也有使用過了

也就是說一般我們遊戲是只留程式+必要的資源
然後可以分出來的資源,以assetbundle分離,然後放在Server
然後取用這些資源時,必須透過網路去索取,然後顯示在遊戲上這樣嗎?

那這些下載的資源,會是以什麼形勢存在在Client的上面呢?
因為我看的範例似乎沒有下載機制,感覺有點把所有資源讀出來放在記憶體的感覺?

所以其實assetbundle跟Patch下載是不同的嗎?
還是說assetbundle也能做到Patch下載?

我可能概念上不太清楚,有請大大了m(_ _)m
無標題 名稱: 無名氏 [17/07/09(日)00:50 ID:GdHA0FIo] No.12866 4推  
>>No.12864
assetbundle和Patch是不一樣的東西.
簡單說
通常assetbundle只包含可動態更新的資源
而Patch則是包含不可動態更新的內容.例如code之類(當然不是絕對)

另外下載算是不同功能.而且為網路空間還要錢.
所以通常範例不會包含該功能

assetbundle基本就只是檔案.存在Client的硬碟內
然後透過unity讀取assetbundle後.會解析並放入記憶體中.之後在遊戲內使用
好處就是可以在執行狀態下.進行下載更新資源

而Patch這東西通常就是下載完就直接蓋掉主程式.
因為不能在執行狀態下更新Patch檔.
所以手機來說就直接放一個新的APK

PC game一般廠商會要玩家自行下載更新.
好一點的會另外做一個更新程式來進行更新
無名氏: code不可動態更新?Unity 不支援動態連結dll嗎? (fa6cGVdk 17/07/09 10:31)
無名氏: 所以我說不是絕對啦.不是每個平台都有支援.而且依據平台版本支援程度也不一樣 (GdHA0FIo 17/07/09 14:49)
無名氏: 我想手機平台都會去擋"熱更新"所以就乖乖的讓玩家去store上下載吧 (UsLPMX0. 17/07/09 15:08)
無名氏: iOS好像有擋.android我記得有支援熱更新 (GdHA0FIo 17/07/09 19:13)
無標題 名稱: 原PO [17/07/09(日)13:27 ID:TnEa7roc] No.12867 3推  
所以意思應該是,

我必須先有一個網路空間,讓我放這些assetbundle的打包檔
然後我的apk一開始並沒有這些檔案

透過下載的機制將assetbundle的檔案從網路空間下載到Client端
然後再從Client讀這些資源,這樣應該沒有錯?

其實不太清楚的點是assetbundle的檔案是永遠存於網路上還是會下載下來這部份
也就是如果我要用下載下來的話,我必須另外再寫下載的功能
不知道是不是這樣 QQ
無名氏: assetbundle下載完就存在Client了.下次可直接到該下載路徑讀取資源 (GdHA0FIo 17/07/09 15:05)
無名氏: 另外除了下載功能外.通常你還需要加入判斷哪個情況需下載assetbundle (GdHA0FIo 17/07/09 15:06)
無名氏: 例如:Client無資源時.版本更新時...等等 (GdHA0FIo 17/07/09 15:07)
無標題 名稱: 無名氏 [17/07/09(日)15:04 ID:UsLPMX0.] No.12868   
其實很簡單

伺服器:永遠有最新的assetBundle(可能還會有一份清單給客戶端比對檔案版本)

客戶端:最近下載的assetBundle或者根本沒有

機制:檢查客戶端缺少或需要更新的assetbundle並且下載,下載完成後再進行載入(至於檢查的時間點可依照需求而定,可以是程式一打開或者有需要用到特定資源時),當檔案是最新時就直接載入

Unity有提供WWW這個類別處理AssetBundle的下載以及快取,LoadFromCacheOrDownload本身就會依照檔案名稱以及版本來決定要下載或直接讀取本地端的檔案,下載回的檔案也會幫你儲存到本地端
無標題 名稱: 原PO [17/07/10(一)22:51 ID:eboyLE7g] No.12870 5推  
目前以Unity來說,通常會怎麼去寫伺服器呢?
是用C++或是C#嗎?

AssetBundle的資料還算OK,這幾天會試看看...
不過Server的部份,不太清楚Unity會怎麼實作這些
無名氏: server跟unity其實沒半點關西耶.雖然現在unity聽說好像有提供server服務的樣子 (k1/cqCM6 17/07/11 00:20)
無名氏: 如果你只是要下載AssetBundle的話.一個可供對外下載的網路空間就夠了 (k1/cqCM6 17/07/11 00:21)
無名氏: 如果你要多寫判斷更新之類的.應該簡單的PHP server就可以辦到 (k1/cqCM6 17/07/11 00:22)
無名氏: 要是指下載機制的寫法.看你是要用簡單的unity內建www或者寫C#的連線甚至另外寫jar檔去做都可 (k1/cqCM6 17/07/11 00:25)
原PO: 大感謝,應該先從簡單的php試看看 (hJJd/loM 17/07/12 00:53)
無標題 名稱: 無名氏 [17/07/16(日)16:35 ID:4t9N9jaE] No.12879   
>>No.12870
我是不懂Unity啦,因為都用原生程式再寫的
以前自動更新程式常見的是FTP,因為獲取檔案資訊容易,可以直接比對檔案
用HTTP的方式也可以,就是少了直接比對檔案的步驟
每次都寫個版本更新清單,比對更新版本清單,然後下載更新資料並解壓縮覆蓋檔案,就這樣子

我原本以為你說的是DLC,這個其實直接下載更新包自動解壓縮覆蓋就好了...
無標題 名稱: 原PO [17/07/16(日)22:34 ID:uutnavcg] No.12880   
其實是Unity有內建打包成執行檔的功能
不過資源的部份會整個弄成一包,所以跟原生的不太一樣
簡單的說就是我沒辦法區分2包的資源差異(單純是同一個檔案變大了)

所以才想要解決的辦法....
Unity好像沒有除了assetbundle 以外能單機做更新檔的方式

【刪除文章】[]
刪除用密碼:
第一頁[0] 最後一頁