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

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

如何使用“Editor coroutine”包在 Editor 中啟動(dòng)協(xié)程?

如何使用“Editor coroutine”包在 Editor 中啟動(dòng)協(xié)程?

C#
智慧大石 2022-11-21 20:27:15
我正在嘗試在 Unity Editor 中使用自己的 EditorWindow 構(gòu)建一個(gè)工具。該工具需要通過 PHP 文件訪問 MySQL 數(shù)據(jù)庫,因此我需要使用協(xié)程。我尋找解決方案并找到了預(yù)覽包“Editor Coroutine”并安裝了它。我不明白它是如何工作的,文檔也沒有說明任何(或我所理解的)如何使用它。你知道有什么方法可以使這個(gè)東西正常工作嗎?我試圖簡(jiǎn)單地做一個(gè)“StartCoroutine()”,從編輯器類調(diào)用它或創(chuàng)建一個(gè)對(duì)象(GameObject)來調(diào)用它,但這些都不起作用:/。
查看完整描述

2 回答

?
桃花長(zhǎng)相依

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

請(qǐng)注意,接受答案的while循環(huán)會(huì)完全阻止編輯器,直到下載完成。對(duì)于簡(jiǎn)單的文本可能沒問題,但對(duì)于較大的文件,這可能會(huì)成為一個(gè)問題。


但是EditorApplication.update,您可以訂閱以便在編輯器中的每一幀調(diào)用一個(gè)方法。所以對(duì)于 EditorWindow 你可以做類似的事情


private IEnumerator currentDownload;


private void ProcessDownload()

{

    if(currentDownload!=null) currentDownload.MoveNext();

}


private IEnumerator UpdateVersion(string message)

{

    string post_url = NetworkManager.baseUrl + "VersionUpdate.php";

    WWWForm form = new WWWForm();

    form.AddField("Message", message); 

    form.AddField("Version", Application.version);


    UnityWebRequest www = UnityWebRequest.Post(post_url, form);

    www.chunkedTransfer = false;

    yield return www.SendWebRequest();


    if(www.error == null){

        Debug.Log(www.downloadHandler.text);

    } else {

        Debug.Log("error!: " + www.error);

    }

}

并像使用它


// makes sure the callback is added only once

EditorApplication.update -= ProcessDownload;

EditorApplication.update += ProcessDownload;


currentDownload = UpdateVersion("whatever string");


查看完整回答
反對(duì) 回復(fù) 2022-11-21
?
慕田峪9158850

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

我遇到了同樣的問題。我最終得到了以下代碼,它以非協(xié)程方法執(zhí)行 webrequest。


private void UpdateVersion(string message)

{

    string post_url = NetworkManager.baseUrl + "VersionUpdate.php";

    WWWForm form = new WWWForm();

    form.AddField("Message", message); 

    form.AddField("Version", Application.version);


    UnityWebRequest www = UnityWebRequest.Post(post_url, form);

    www.chunkedTransfer = false;

    www.SendWebRequest();


    while (!www.isDone)

    {

        // do nothing

    }   


    if(www.error == null){

        Debug.Log(www.downloadHandler.text);

    } else {

        Debug.Log("error!: " + www.error);

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-11-21
  • 2 回答
  • 0 關(guān)注
  • 213 瀏覽

添加回答

舉報(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)