我的 Bundle 中包含的物件有問題,因為它是在沒有紋理(材料)的情況下實體化的。現在我會解釋你我做了什么。我已將 AssetBundles Browser 包安裝到 unity 中,以便我更輕松地創建 AssetBundles。我創建了一個名為“Cheese2”的預制件,并附有一些組件
這是物件的檢查器
我創建了一個名為“test2”的新 AssetBundle
在此之后,我查看了 AssetBundle 瀏覽器,我看到 AssetBundle 已經正確配置了他的所有依賴項(AssetBundles 瀏覽器自動包含物件的所有依賴項)
這是帶有我的 Bundle “test2” 和所有資產的 AssetBundles 瀏覽器視窗
好的,在此之后,我將捆綁包構建到我的檔案夾“StreamingAssets”中并創建了一些檔案
現在是時候查看腳本了:
public void Evoca()
{
var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "test2"));
if (myLoadedAssetBundle == null)
{
Debug.Log("Failed to load AssetBundle!");
return;
}
var prefab = myLoadedAssetBundle.LoadAsset<GameObject>("Cheese2.prefab");
Instantiate(prefab, transform.position (transform.forward * 1), Quaternion.identity);
}
你怎么能看到我已經創建了一個名為“myLoadedAssetBundle”的變數來選擇Bundle和一個名為“prefab”的變數來選擇我要實體化的bundle的資產(在這種情況下是Cheese2.prefab),之后,我已經實體化了資產 Cheese2.prefab。
我用按鈕的壓力呼叫函式“Evoca”(用于實體化 AssetBundle 的函式),但結果是 this。
你怎么能看到我的奶酪沒有紋理,我不明白為什么。附加到我的組件的“腳本”和“盒子對撞機”作業正常。
我剛剛嘗試使用我的物件的所有依賴項創建另一個名為“依賴項”的 AssetBundle,并在加載“test2”之前對其進行預充電(根據統一手冊)
像這樣的東西:
public void Evoca()
{
var dependencies= AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "dependencies"));
var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "test2"));
Debug.Log(dependencies);
if (dependencies== null)
{
Debug.Log("There is a problem with your dependencies!");
return;
}
if (myLoadedAssetBundle == null)
{
Debug.Log("Failed to load AssetBundle!");
return;
}
var prefab = myLoadedAssetBundle.LoadAsset<GameObject>("Cheese2.prefab");
Instantiate(prefab, transform.position (transform.forward * 1), Quaternion.identity);
}
但它不起作用。
有人能幫我嗎?
uj5u.com熱心網友回復:
我找到了解決方案。問題出在統一的“游戲”模擬器上,我在 reddit 上看到了這篇文章,我想“等等,如果我在手機上嘗試這個應用程式,它作業正常嗎?”。答案是肯定的,在我的手機上它可以正常作業,并且所有紋理都由資產收取。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/440953.html