第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從 assetBundle 加載的 Prefab 是否可以傳遞給 Vuforia Anchor

從 assetBundle 加載的 Prefab 是否可以傳遞給 Vuforia Anchor

C#
翻閱古今 2023-08-13 13:57:11
目標(biāo)是一個(gè)兩步過程,其中從 AssetBundle 加載 Vuforia GroundPlane 對(duì)象的預(yù)制件,并將其傳遞到 AnchorBehavior 變量聲明以放置游戲?qū)ο?。如果作?Unity C# 的新手,我沒有達(dá)到我想要的準(zhǔn)確程度,我深表歉意嘗試了各種方法將加載的預(yù)制件等同于 AnchorBehavior。但因?yàn)檫@是兩種類型的對(duì)象,所以會(huì)發(fā)生錯(cuò)誤,表明它們不能隱式相等聲明如下:public PlaneFinderBehaviour plane;public ContentPositioningBehaviour planeFinder;public AnchorBehaviour model;public string nameOfAssetBundle;public string nameOfObjectToLoad;想法是傳遞代表預(yù)制件的“nameOfObjectToLoad”并將其傳遞給“AnchorBehavior”值,然后當(dāng)腳本附加到按鈕時(shí)可以使用以下方法“onClick”。public void create(){    planeFinder.AnchorStage = model.GetComponent<AnchorBehaviour>();}期望預(yù)制件將傳遞給 AnchorBehavior 并實(shí)例化預(yù)制件“onClick”這是從中提取這些片段的完整腳本。進(jìn)一步的研究暴露了我的新手技能?!癿odel = loadAsset;”的最終意圖 是我試圖直接從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型,這是無法明確完成的。但到目前為止,我的研究還沒有找到從 AssetBundle 中獲取加載的 Prefab 并將其提供給 AnchorBehaviour 變量的方法。如果有人對(duì)這種數(shù)據(jù)類型之間的轉(zhuǎn)換方法有任何經(jīng)驗(yàn),我們非常感謝您的指導(dǎo)。更新 通過正確轉(zhuǎn)換聲明,消除了轉(zhuǎn)換錯(cuò)誤。model = (asset.asset as AnchorBehaviour);但現(xiàn)在我有一個(gè) NullReference 錯(cuò)誤,表明我未能在這一行中正確聲明該值    {        planeFinder.AnchorStage = model.GetComponent<AnchorBehaviour>();    }現(xiàn)在這是我的新困境,因?yàn)槲也淮_定我在哪里未能正確聲明變量。更新 當(dāng) AnchorBehaviour 變量設(shè)置為私有時(shí),此錯(cuò)誤得到解決。因此,現(xiàn)在腳本可以編譯,但無法產(chǎn)生預(yù)期的結(jié)果。這可能表明需要更改加載 AssetBundle 組件的方式,如 IEnumerator 部分中所述。Unity 控制臺(tái)打印出以下日志注釋There is no content to place at the anchor. Set the "Anchor Stage" field to the content you wish to place.UnityEngine.Debug:LogError(Object)在所有建議之后,這是最新的腳本,不幸的是它沒有放置 AssetBundle 中的內(nèi)容。我可以看到更多的研究和測試。
查看完整描述

1 回答

?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊

查看AssetBundle.LoadAssetAsync

在 5.0 版本之前,用戶可以使用 LoadAsync 直接獲取各個(gè)組件。不再支持此功能。相反,請(qǐng)使用 LoadAssetAsync 首先加載游戲?qū)ο?,然后查找該?duì)象上的組件。


您不能簡單地將檢索到的引用類型GameObject轉(zhuǎn)換為AnchorBehaviour引用。相反,你必須使用GetComponent.


所以你應(yīng)該做的是

AssetBundleRequest assetRequest = assetBundle.LoadAssetAsync<GameObject>(objectNameToLoad);

yield return assetRequest;


GameObject loadedAsset = (GameObject)assetRequest.asset;


// since model is already of type AnchorBehaviour

// you should do the GetComponent already here

model = loadedAsset.GetComponent<AnchorBehavior>();

現(xiàn)在您已經(jīng)有了類型的引用,AnchorBehaviour第二次GetComponent調(diào)用將是多余的,因?yàn)樗祷叵嗤囊?。所以現(xiàn)在只能用


public void create()

{

? ? planeFinder.AnchorStage = model;

}

如果您有此腳本的多個(gè)實(shí)例,則僅加載 assetBundle 一次可能是有意義的,例如


private static bool alreadyLoading;

private static AssetBundle assetBundle;


void Start()

{

? ? // only load the bundle once

? ? if(!alreadyLoading)?

? ? {

? ? ? ? // set the flag to make sure this is never done again

? ? ? ? alreadyLoading = true;

? ? ? ? StartCoroutine(LoadAsset(nameOfAssetBundle, nameOfObjectToLoad));

? ? }

? ? else

? ? {

? ? ? ? LoadObjectFromBundle(nameOfOjectToLoad);

? ? }

}?


private IEnumerator LoadAsset(string assetBundleName, string objectNameToLoad)

{

? ? string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "AssetBundles");

? ? filePath = System.IO.Path.Combine(filePath, assetBundleName);


? ? var assetBundleCreateRequest = AssetBundle.LoadFromFileAsync(filePath);

? ? yield return assetBundleCreateRequest;


? ? assetBundle = assetBundleCreateRequest.assetBundle;


? ? LoadObjectFromBundle(objectNameToLoad);

}


private IEnumerator LoadObjectFromBundle(string objectNameToLoad)

{

? ? AssetBundleRequest assetRequest = assetBundle.LoadAssetAsync<GameObject>(objectNameToLoad);

? ? yield return assetRequest;


? ? GameObject loadedAsset = (GameObject)assetRequest.asset;


? ? model = loadedAsset.GetComponent<AnchorBehavior>();

}

查看完整回答
反對(duì) 回復(fù) 2023-08-13
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)