void  ContinueScript(List <ScriptInfo> AwaitPtr, string szAssetName)
    {
        if (AwaitPtr == null)
        {
            return;
        }
        GameObject obj = null;
        long       v   = 0;

        for (int i = 0; i < AwaitPtr.Count; ++i)
        {
            ScriptInfo info = AwaitPtr[i];
            if (FCLibHelper.fc_is_valid_await(m_VMPtr, info.nPtr))
            {
                //if(obj == null) 这里不能共用一个Obj,因为脚本中的引用计算一一对应的
                {
                    obj = new GameObject(szAssetName);  // 自动创建一个对象,算是模拟加载的后对象
                    v   = FCGetObj.PushObj(obj);
                }
                // 必要的话,在这里设置返回值
                FCLibHelper.fc_set_value_wrap_objptr(m_VMPtr, info.nReturnPtr, v);

                FCLibHelper.fc_continue(m_VMPtr, info.nPtr); // 唤醒脚本
            }
        }
    }
예제 #2
0
    static async void LoadPrefab_bridge(long nPtr, long nRetPtr, string arg0)
    {
        try
        {
            int nRes = await TestD.LoadPrefab(arg0);

            if (FCLibHelper.fc_is_valid_await(nPtr))
            {
                // 设置返回值
                FCLibHelper.fc_set_value_int(nRetPtr, nRes);
                FCLibHelper.fc_continue(nPtr); // 唤醒脚本
            }
        }
        catch (Exception e)
        {
            Debug.LogException(e);
        }
    }
예제 #3
0
    static async void LoadPrefabObj_bridge(long nPtr, long nRetPtr, string arg0)
    {
        try
        {
            GameObject nRes = await TestD.LoadPrefabObj(arg0);

            if (FCLibHelper.fc_is_valid_await(nPtr))
            {
                // 设置返回值
                long v = FCGetObj.PushObj(nRes);
                FCLibHelper.fc_set_value_wrap_objptr(nRetPtr, v);
                FCLibHelper.fc_continue(nPtr); // 唤醒脚本
            }
        }
        catch (Exception e)
        {
            Debug.LogException(e);
        }
    }