InjectFix icon indicating copy to clipboard operation
InjectFix copied to clipboard

Unity2021 能对async做补丁, 但不能使用await

Open alan9988 opened this issue 2 years ago • 4 comments

[IFix.Patch]
public async void OnBtnStart()
{
    Debug.Log("---111---");
    m_VersionText.text = 1.ToString();
    if (m_Started)
    {
        return;
    }
    Debug.Log("---2222---");
    await Task.Delay(3000);
    m_VersionText.text = 2.ToString();
    Debug.Log("---333---");

Output:

11-25 17:25:33.413 2475 2491 I Unity : ---111---

11-25 17:25:33.419 2475 2491 I Unity : ---2222---

后面的代码没运行

alan9988 avatar Nov 25 '22 04:11 alan9988


    [IFix.Patch]
    public async void OnBtnStart()
    {
        Debug.Log("-----1---------");
        if (m_Started)
        {
            return;
        }
        Debug.Log("-----2---------");
        m_Started = true;
        await UniTask.WaitUntil(()=>Game.AB.IsReady);
        Debug.Log("-----3---------");
        await Game.Scene.LoadScene(AssetPathHelper.LocateScene("MapScene"));
        Debug.Log("-----4---------");
    }

Output:

11-29 15:17:01.278 6978 6997 I Unity : -----3---------

11-29 15:17:01.309 6978 6997 I Unity : -----1---------

11-29 15:17:01.310 6978 6997 I Unity : -----2---------

运行次序不正常

alan9988 avatar Nov 29 '22 02:11 alan9988

+1

haiyaojing avatar Jan 03 '23 09:01 haiyaojing

+1

lishengru avatar Jul 19 '23 09:07 lishengru

+10086

lishengru avatar Jul 20 '23 10:07 lishengru