(Các bạn basic cần học thêm mới thao tác được kỹ năng này)
Bước 1: Tạo project mới tên là BuildAssets, save scence với tên MakeBundleAssets
Bước 2: Tạo 1 folder để chứa các tài nguyên cần xuất có tên: ExportBundleAssets
Bước 3: Tạo 1 cube, sau đó tạo một prefab chứa cube đó với tên "cube_prefab", sau đó kéo vào trong ExportBundleAssets
Bước 4: Tạo một Javascript có tên MakeAssetBundle và sử dụng đoạn code sau:
import System.IO; //dat tat ca cac tai nguyen vao trong mot thu muc //Assets/Ten_thumuc: trong vi du nay ta dung thu muc "MakeAssetBundle " //www.3din.com.vn
function Start() { var path: String = AssetDatabase.GetAssetPath(Selection.activeObject); Debug.Log("Selected Folder: " + path); if (path.Length != 0) { path = path.Replace("Assets/", ""); var fileEntries: Array = Directory.GetFiles(Application.dataPath+"/"+path);
for(var fileName: String in fileEntries) { var filePath: String = fileName.Replace(" ", "/"); filePath = filePath.Replace("\\","/"); var index: int = filePath.LastIndexOf("/"); filePath = filePath.Substring(index); Debug.Log(filePath); var localPath: String = "Assets/" + path; if (index > 0) localPath += filePath; var t: Object = AssetDatabase.LoadMainAssetAtPath(localPath); if (t != null) { Debug.Log(t.name); var bundlePath: String = "Assets/" + path + "/" + t.name + ".unity3d"; Debug.Log("Building bundle at: " + bundlePath); // Build the resource file from the active selection. BuildPipeline.BuildAssetBundle(t, null, bundlePath, BuildAssetBundleOptions.CompleteAssets); } } } } |
Việc load tài nguyên chúng ta sẽ dùng câu lệnh:
var www = WWW ("http://www.3din.com.vn/cube_prefab.unity3d"); yield www; if (www.error != null){ Debug.Log(www.error); }else{ // Get the designated main asset and instantiate it. var assetB = www.assetBundle.Load("cube"); var obj = Instantiate (assetB, transform.position, Quaternion.identity); } |
"http://www.3din.com.vn/" Chính là host chứa tài nguyên của tổi, đây là một host được thiết lập security và mine type để cho phép Unity truy cập.
Các bạn có thể tạo ra trên localhost của mình và copy tài nguyên .unity3d vào đó, và thử truy cập.
Chú ý: Các bạn có thể xuất các tài nguyên là Code, Prefab,...
Nếu cần support thì đừng ngại liên hệ với chúng tôi. Chúc các bạn thành công.