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); // 唤醒脚本 } } }
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); } }
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); } }