导入R3,简单实现数据绑定UI,以及双向绑定

This commit is contained in:
2025-11-05 05:16:06 +08:00
parent 1ccc7f299d
commit c5c380d170
137 changed files with 6900 additions and 24 deletions

View File

@@ -5,6 +5,12 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
// {{ AOT assemblies
public static readonly IReadOnlyList<string> PatchedAOTAssemblyList = new List<string>
{
"GameFramework.Runtime.dll",
"R3.Unity.dll",
"R3.dll",
"UniTask.dll",
"UnityEngine.CoreModule.dll",
"YooAsset.dll",
"mscorlib.dll",
};
// }}
@@ -13,11 +19,68 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
// }}
// {{ AOT generic types
// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<GameStart.<LoadSimpleR3Test>d__1>
// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<GameStart.<LoadSimpleR3Test>d__1>
// Cysharp.Threading.Tasks.ITaskPoolNode<object>
// Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<Cysharp.Threading.Tasks.AsyncUnit>
// Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<object>
// R3.AnonymousObserver<float,object>
// R3.AnonymousObserver<float>
// R3.AnonymousObserver<object>
// R3.BindableReactiveProperty.Observer<float>
// R3.BindableReactiveProperty<float>
// R3.Observable<float>
// R3.Observable<object>
// R3.Observer<float>
// R3.Observer<object>
// R3.ReactiveProperty.ObserverNode<float>
// R3.ReactiveProperty<float>
// R3.ReadOnlyReactiveProperty<float>
// SingletonMono<object>
// System.Action<R3.Result,object>
// System.Action<R3.Result>
// System.Action<float,object>
// System.Action<float>
// System.Action<object,object>
// System.Action<object>
// System.Collections.Generic.ArraySortHelper<object>
// System.Collections.Generic.Comparer<object>
// System.Collections.Generic.EqualityComparer<float>
// System.Collections.Generic.ICollection<object>
// System.Collections.Generic.IComparer<object>
// System.Collections.Generic.IEnumerable<object>
// System.Collections.Generic.IEnumerator<object>
// System.Collections.Generic.IEqualityComparer<float>
// System.Collections.Generic.IList<object>
// System.Collections.Generic.List.Enumerator<object>
// System.Collections.Generic.List<object>
// System.Collections.Generic.ObjectComparer<object>
// System.Collections.Generic.ObjectEqualityComparer<float>
// System.Collections.ObjectModel.ReadOnlyCollection<object>
// System.Comparison<object>
// System.EventHandler<object>
// System.Func<float,object>
// System.Func<int>
// System.Nullable<R3.Result>
// System.Predicate<object>
// }}
public void RefMethods()
{
// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,GameStart.<LoadSimpleR3Test>d__1>(Cysharp.Threading.Tasks.UniTask.Awaiter&,GameStart.<LoadSimpleR3Test>d__1&)
// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<GameStart.<LoadSimpleR3Test>d__1>(GameStart.<LoadSimpleR3Test>d__1&)
// Cysharp.Threading.Tasks.UniTask.Awaiter Cysharp.Threading.Tasks.EnumeratorAsyncExtensions.GetAwaiter<object>(object)
// object R3.Disposable.AddTo<object>(object,System.Collections.Generic.ICollection<System.IDisposable>)
// object R3.MonoBehaviourExtensions.AddTo<object>(object,UnityEngine.Component)
// object R3.MonoBehaviourExtensions.AddTo<object>(object,UnityEngine.GameObject)
// System.IDisposable R3.ObservableSubscribeExtensions.Subscribe<float,object>(R3.Observable<float>,object,System.Action<float,object>)
// System.IDisposable R3.ObservableSubscribeExtensions.Subscribe<float>(R3.Observable<float>,System.Action<float>)
// System.IDisposable R3.ObservableSubscribeExtensions.Subscribe<object>(R3.Observable<object>,System.Action<object>)
// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,GameStart.<Start>d__0>(Cysharp.Threading.Tasks.UniTask.Awaiter&,GameStart.<Start>d__0&)
// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<GameStart.<Start>d__0>(GameStart.<Start>d__0&)
// object UnityEngine.GameObject.AddComponent<object>()
// object UnityEngine.GameObject.GetComponent<object>()
// YooAsset.AssetHandle YooAsset.ResourcePackage.LoadAssetAsync<object>(string,uint)
// YooAsset.AssetHandle YooAsset.YooAssets.LoadAssetAsync<object>(string,uint)
}
}

View File

@@ -1,39 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<linker>
<assembly fullname="GameFramework.Runtime">
<type fullname="GameManager" preserve="all" />
<type fullname="MainUICanvas" preserve="all" />
<type fullname="PatchEvent" preserve="all" />
<type fullname="SingletonMono`1" preserve="all" />
<type fullname="Singleton`1" preserve="all" />
</assembly>
<assembly fullname="R3">
<type fullname="R3.BindableReactiveProperty`1" preserve="all" />
<type fullname="R3.CompositeDisposable" preserve="all" />
<type fullname="R3.Disposable" preserve="all" />
<type fullname="R3.ObservableSubscribeExtensions" preserve="all" />
<type fullname="R3.Observable`1" preserve="all" />
</assembly>
<assembly fullname="R3.Unity">
<type fullname="R3.MonoBehaviourExtensions" preserve="all" />
<type fullname="R3.UnityUIComponentExtensions" preserve="all" />
</assembly>
<assembly fullname="System">
<type fullname="System.CodeDom.Compiler.GeneratedCodeAttribute" preserve="all" />
<type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
<type fullname="System.ComponentModel.EditorBrowsableState" preserve="all" />
</assembly>
<assembly fullname="UniTask">
<type fullname="Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder" preserve="all" />
<type fullname="Cysharp.Threading.Tasks.EnumeratorAsyncExtensions" preserve="all" />
<type fullname="Cysharp.Threading.Tasks.UniTask" preserve="all" />
<type fullname="Cysharp.Threading.Tasks.UniTask/Awaiter" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.CoreModule">
<type fullname="UnityEngine.Camera" preserve="all" />
<type fullname="UnityEngine.Component" preserve="all" />
<type fullname="UnityEngine.GameObject" preserve="all" />
<type fullname="UnityEngine.MonoBehaviour" preserve="all" />
<type fullname="UnityEngine.Object" preserve="all" />
<type fullname="UnityEngine.Transform" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.UI">
<type fullname="UnityEngine.UI.InputField" preserve="all" />
<type fullname="UnityEngine.UI.Scrollbar" preserve="all" />
<type fullname="UnityEngine.UI.Slider" preserve="all" />
<type fullname="UnityEngine.UI.Text" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.VideoModule">
<type fullname="UnityEngine.Video.VideoPlayer" preserve="all" />
</assembly>
<assembly fullname="YooAsset">
<type fullname="YooAsset.AssetHandle" preserve="all" />
<type fullname="YooAsset.YooAssets" preserve="all" />
</assembly>
<assembly fullname="mscorlib">
<type fullname="System.Action" preserve="all" />
<type fullname="System.Action`1" preserve="all" />
<type fullname="System.Action`2" preserve="all" />
<type fullname="System.Array" preserve="all" />
<type fullname="System.Byte" preserve="all" />
<type fullname="System.Collections.Generic.ICollection`1" preserve="all" />
<type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
<type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
<type fullname="System.Diagnostics.DebuggerHiddenAttribute" preserve="all" />
<type fullname="System.Exception" preserve="all" />
<type fullname="System.IDisposable" preserve="all" />
<type fullname="System.Object" preserve="all" />
<type fullname="System.Runtime.CompilerServices.AsyncStateMachineAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.AsyncVoidMethodBuilder" preserve="all" />
<type fullname="System.Runtime.CompilerServices.CompilationRelaxationsAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.CompilerGeneratedAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.ExtensionAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.IAsyncStateMachine" preserve="all" />
<type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.RuntimeHelpers" preserve="all" />
<type fullname="System.RuntimeFieldHandle" preserve="all" />
<type fullname="System.Single" preserve="all" />
<type fullname="System.String" preserve="all" />
<type fullname="System.Type" preserve="all" />
<type fullname="System.ValueType" preserve="all" />
</assembly>
</linker>