热更推进
This commit is contained in:
parent
8a19e4fe92
commit
0e3cb360ee
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
@ -1,19 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 36527db572638af47b03c805671cba75, type: 3}
|
||||
m_Name: GlobalConfig
|
||||
m_EditorClassIdentifier:
|
||||
CodeMode: 3
|
||||
EnableDll: 1
|
||||
BuildType: 1
|
||||
AppType: 7
|
||||
EPlayMode: 0
|
||||
@ -1,5 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4e3d91838fd2b974b80e6d441c8857b5
|
||||
guid: 0ec4cb895ea34797ac934a2fe64d4d49
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 21 KiB |
14
Unity/Assets/CrashSight/Scripts/CrashSight.Runtime.asmdef
Normal file
14
Unity/Assets/CrashSight/Scripts/CrashSight.Runtime.asmdef
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "CrashSight.Runtime",
|
||||
"rootNamespace": "",
|
||||
"references": [],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@ -1,8 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a60778dce43da574aa447ab3fcf5d9f7
|
||||
NativeFormatImporter:
|
||||
guid: e881f6f0f4a34fb08bfb4e80b77dcde2
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
36
Unity/Assets/Editor/TH1.Editor.asmdef
Normal file
36
Unity/Assets/Editor/TH1.Editor.asmdef
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "TH1.Editor",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"TH1.AOT",
|
||||
"TH1.Hotfix",
|
||||
"CrashSight.Runtime",
|
||||
"MemoryPack",
|
||||
"YooAsset",
|
||||
"Unity.TextMeshPro",
|
||||
"UnityEngine.UI",
|
||||
"UnityEditor.UI",
|
||||
"Unity.Collections",
|
||||
"Unity.VisualScripting.Core",
|
||||
"Unity.VisualScripting.Flow",
|
||||
"Unity.VisualScripting.State",
|
||||
"Unity.RenderPipelines.Core.Runtime",
|
||||
"Unity.RenderPipelines.Universal.Runtime",
|
||||
"OPS.Obfuscator",
|
||||
"Animancer",
|
||||
"ParadoxNotion",
|
||||
"NodeCanvas",
|
||||
"com.rlabrecque.steamworks.net"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
7
Unity/Assets/Editor/TH1.Editor.asmdef.meta
Normal file
7
Unity/Assets/Editor/TH1.Editor.asmdef.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4e5597817a3465e9cc5f147d6ad3b21
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
3
Unity/Assets/HybridCLRGenerate/TH1.AOT.asmref
Normal file
3
Unity/Assets/HybridCLRGenerate/TH1.AOT.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.AOT"
|
||||
}
|
||||
7
Unity/Assets/HybridCLRGenerate/TH1.AOT.asmref.meta
Normal file
7
Unity/Assets/HybridCLRGenerate/TH1.AOT.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 465375cfc7164330b161bfc68eb62555
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,24 +1,554 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<linker>
|
||||
<assembly fullname="Animancer">
|
||||
<type fullname="Animancer.AnimancerComponent" preserve="all" />
|
||||
<type fullname="Animancer.AnimancerEvent" preserve="all" />
|
||||
<type fullname="Animancer.AnimancerEvent/Sequence" preserve="all" />
|
||||
<type fullname="Animancer.AnimancerState" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="CrashSight.Runtime">
|
||||
<type fullname="CSLogSeverity" preserve="all" />
|
||||
<type fullname="CrashSightAgent" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="MemoryPack">
|
||||
<type fullname="MemoryPack.Formatters.ArrayFormatter`1" preserve="all" />
|
||||
<type fullname="MemoryPack.Formatters.DictionaryFormatter`2" preserve="all" />
|
||||
<type fullname="MemoryPack.Formatters.HashSetFormatter`1" preserve="all" />
|
||||
<type fullname="MemoryPack.Formatters.ListFormatter" preserve="all" />
|
||||
<type fullname="MemoryPack.Formatters.ListFormatter`1" preserve="all" />
|
||||
<type fullname="MemoryPack.Formatters.UnmanagedFormatter`1" preserve="all" />
|
||||
<type fullname="MemoryPack.GenerateType" preserve="all" />
|
||||
<type fullname="MemoryPack.IMemoryPackFormatterRegister" preserve="all" />
|
||||
<type fullname="MemoryPack.IMemoryPackable`1" preserve="all" />
|
||||
<type fullname="MemoryPack.Internal.PreserveAttribute" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackConstructorAttribute" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackFormatterProvider" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackFormatter`1" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackIgnoreAttribute" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackIncludeAttribute" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackOnDeserializedAttribute" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackReader" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackSerializationException" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackSerializer" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackSerializerOptions" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackUnionAttribute" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackWriter" preserve="all" />
|
||||
<type fullname="MemoryPack.MemoryPackableAttribute" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="Microsoft.ML.OnnxRuntime">
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.DisposableNamedOnnxValue" preserve="all" />
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.IDisposableReadOnlyCollection`1" preserve="all" />
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.InferenceSession" preserve="all" />
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.NamedOnnxValue" preserve="all" />
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.NodeMetadata" preserve="all" />
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.SessionOptions" preserve="all" />
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.Tensors.DenseTensor`1" preserve="all" />
|
||||
<type fullname="Microsoft.ML.OnnxRuntime.Tensors.Tensor`1" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="NodeCanvas">
|
||||
<type fullname="NodeCanvas.BehaviourTrees.BehaviourTreeOwner" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="OPS.Obfuscator">
|
||||
<type fullname="OPS.Obfuscator.Attribute.DoNotObfuscateClassAttribute" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="ParadoxNotion">
|
||||
<type fullname="NodeCanvas.Framework.ActionTask" preserve="all" />
|
||||
<type fullname="NodeCanvas.Framework.ConditionTask" preserve="all" />
|
||||
<type fullname="NodeCanvas.Framework.GraphOwner" preserve="all" />
|
||||
<type fullname="NodeCanvas.Framework.IBlackboard" preserve="all" />
|
||||
<type fullname="NodeCanvas.Framework.IBlackboardExtensions" preserve="all" />
|
||||
<type fullname="NodeCanvas.Framework.Task" preserve="all" />
|
||||
<type fullname="NodeCanvas.Framework.Variable`1" preserve="all" />
|
||||
<type fullname="ParadoxNotion.Design.CategoryAttribute" preserve="all" />
|
||||
<type fullname="ParadoxNotion.Design.NameAttribute" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="System">
|
||||
<type fullname="System.CodeDom.Compiler.GeneratedCodeAttribute" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.LinkedListNode`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.LinkedList`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.LinkedList`1/Enumerator" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Queue`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Queue`1/Enumerator" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.SortedDictionary`2" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Stack`1" preserve="all" />
|
||||
<type fullname="System.ComponentModel.CategoryAttribute" preserve="all" />
|
||||
<type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
|
||||
<type fullname="System.ComponentModel.EditorBrowsableState" preserve="all" />
|
||||
<type fullname="System.Diagnostics.Debug" preserve="all" />
|
||||
<type fullname="System.Diagnostics.Stopwatch" preserve="all" />
|
||||
<type fullname="System.IO.Compression.CompressionLevel" preserve="all" />
|
||||
<type fullname="System.IO.Compression.CompressionMode" preserve="all" />
|
||||
<type fullname="System.IO.Compression.DeflateStream" preserve="all" />
|
||||
<type fullname="System.IO.Compression.GZipStream" preserve="all" />
|
||||
<type fullname="System.IO.InvalidDataException" preserve="all" />
|
||||
<type fullname="System.Text.RegularExpressions.Capture" preserve="all" />
|
||||
<type fullname="System.Text.RegularExpressions.Group" preserve="all" />
|
||||
<type fullname="System.Text.RegularExpressions.GroupCollection" preserve="all" />
|
||||
<type fullname="System.Text.RegularExpressions.Match" preserve="all" />
|
||||
<type fullname="System.Text.RegularExpressions.MatchCollection" preserve="all" />
|
||||
<type fullname="System.Text.RegularExpressions.MatchEvaluator" preserve="all" />
|
||||
<type fullname="System.Text.RegularExpressions.Regex" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="System.Core">
|
||||
<type fullname="System.Collections.Generic.HashSet`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.HashSet`1/Enumerator" preserve="all" />
|
||||
<type fullname="System.Linq.Enumerable" preserve="all" />
|
||||
<type fullname="System.Linq.Expressions.Expression" preserve="all" />
|
||||
<type fullname="System.Linq.Expressions.Expression`1" preserve="all" />
|
||||
<type fullname="System.Linq.Expressions.NewExpression" preserve="all" />
|
||||
<type fullname="System.Linq.Expressions.ParameterExpression" preserve="all" />
|
||||
<type fullname="System.Linq.IOrderedEnumerable`1" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="System.IO.Compression">
|
||||
<type fullname="System.IO.Compression.ZipArchive" preserve="all" />
|
||||
<type fullname="System.IO.Compression.ZipArchiveEntry" preserve="all" />
|
||||
<type fullname="System.IO.Compression.ZipArchiveMode" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="System.Numerics">
|
||||
<type fullname="System.Numerics.Vector2" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="System.Runtime.CompilerServices.Unsafe">
|
||||
<type fullname="System.Runtime.CompilerServices.Unsafe" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="System.Xml">
|
||||
<type fullname="System.Xml.XmlDocument" preserve="all" />
|
||||
<type fullname="System.Xml.XmlElement" preserve="all" />
|
||||
<type fullname="System.Xml.XmlNode" preserve="all" />
|
||||
<type fullname="System.Xml.XmlNodeList" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="TH1.AOT">
|
||||
<type fullname="TH1Resource.ResourceLoader" preserve="all" />
|
||||
<type fullname="TH1Resource.ResourceManager" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="Unity.TextMeshPro">
|
||||
<type fullname="TMPro.TMP_Dropdown" preserve="all" />
|
||||
<type fullname="TMPro.TMP_Dropdown/DropdownEvent" preserve="all" />
|
||||
<type fullname="TMPro.TMP_FontAsset" preserve="all" />
|
||||
<type fullname="TMPro.TMP_InputField" preserve="all" />
|
||||
<type fullname="TMPro.TMP_InputField/OnChangeEvent" preserve="all" />
|
||||
<type fullname="TMPro.TMP_InputField/SubmitEvent" preserve="all" />
|
||||
<type fullname="TMPro.TMP_Text" preserve="all" />
|
||||
<type fullname="TMPro.TMP_TextInfo" preserve="all" />
|
||||
<type fullname="TMPro.TextAlignmentOptions" preserve="all" />
|
||||
<type fullname="TMPro.TextMeshPro" preserve="all" />
|
||||
<type fullname="TMPro.TextMeshProUGUI" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.AnimationModule">
|
||||
<type fullname="UnityEngine.Animation" preserve="all" />
|
||||
<type fullname="UnityEngine.AnimationClip" preserve="all" />
|
||||
<type fullname="UnityEngine.AnimationState" preserve="all" />
|
||||
<type fullname="UnityEngine.Animator" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.AudioModule">
|
||||
<type fullname="UnityEngine.AudioClip" preserve="all" />
|
||||
<type fullname="UnityEngine.AudioSource" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.CoreModule">
|
||||
<type fullname="AOT.MonoPInvokeCallbackAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.Application" preserve="all" />
|
||||
<type fullname="UnityEngine.AsyncOperation" preserve="all" />
|
||||
<type fullname="UnityEngine.Behaviour" preserve="all" />
|
||||
<type fullname="UnityEngine.Bounds" preserve="all" />
|
||||
<type fullname="UnityEngine.Camera" preserve="all" />
|
||||
<type fullname="UnityEngine.Color" preserve="all" />
|
||||
<type fullname="UnityEngine.Color32" preserve="all" />
|
||||
<type fullname="UnityEngine.ColorUsageAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.ColorUtility" preserve="all" />
|
||||
<type fullname="UnityEngine.Component" preserve="all" />
|
||||
<type fullname="UnityEngine.Coroutine" preserve="all" />
|
||||
<type fullname="UnityEngine.CreateAssetMenuAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.Debug" preserve="all" />
|
||||
<type fullname="UnityEngine.DisallowMultipleComponent" preserve="all" />
|
||||
<type fullname="UnityEngine.Events.UnityAction" preserve="all" />
|
||||
<type fullname="UnityEngine.Events.UnityAction`1" preserve="all" />
|
||||
<type fullname="UnityEngine.Events.UnityEvent" preserve="all" />
|
||||
<type fullname="UnityEngine.Events.UnityEventBase" preserve="all" />
|
||||
<type fullname="UnityEngine.Events.UnityEvent`1" preserve="all" />
|
||||
<type fullname="UnityEngine.ExecuteAlways" preserve="all" />
|
||||
<type fullname="UnityEngine.GameObject" preserve="all" />
|
||||
<type fullname="UnityEngine.Hash128" preserve="all" />
|
||||
<type fullname="UnityEngine.HeaderAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.HideInInspector" preserve="all" />
|
||||
<type fullname="UnityEngine.ISerializationCallbackReceiver" preserve="all" />
|
||||
<type fullname="UnityEngine.KeyCode" preserve="all" />
|
||||
<type fullname="UnityEngine.LayerMask" preserve="all" />
|
||||
<type fullname="UnityEngine.Light" preserve="all" />
|
||||
<type fullname="UnityEngine.Material" preserve="all" />
|
||||
<type fullname="UnityEngine.MaterialPropertyBlock" preserve="all" />
|
||||
<type fullname="UnityEngine.Mathf" preserve="all" />
|
||||
<type fullname="UnityEngine.Mesh" preserve="all" />
|
||||
<type fullname="UnityEngine.MeshFilter" preserve="all" />
|
||||
<type fullname="UnityEngine.MeshRenderer" preserve="all" />
|
||||
<type fullname="UnityEngine.MonoBehaviour" preserve="all" />
|
||||
<type fullname="UnityEngine.Object" preserve="all" />
|
||||
<type fullname="UnityEngine.PlayerPrefs" preserve="all" />
|
||||
<type fullname="UnityEngine.PropertyAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.Quaternion" preserve="all" />
|
||||
<type fullname="UnityEngine.Random" preserve="all" />
|
||||
<type fullname="UnityEngine.RangeAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.Ray" preserve="all" />
|
||||
<type fullname="UnityEngine.Rect" preserve="all" />
|
||||
<type fullname="UnityEngine.RectOffset" preserve="all" />
|
||||
<type fullname="UnityEngine.RectTransform" preserve="all" />
|
||||
<type fullname="UnityEngine.RectTransform/Axis" preserve="all" />
|
||||
<type fullname="UnityEngine.Renderer" preserve="all" />
|
||||
<type fullname="UnityEngine.Rendering.LightProbeUsage" preserve="all" />
|
||||
<type fullname="UnityEngine.Rendering.ShadowCastingMode" preserve="all" />
|
||||
<type fullname="UnityEngine.RequireComponent" preserve="all" />
|
||||
<type fullname="UnityEngine.Resources" preserve="all" />
|
||||
<type fullname="UnityEngine.RuntimeInitializeLoadType" preserve="all" />
|
||||
<type fullname="UnityEngine.RuntimeInitializeOnLoadMethodAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.RuntimePlatform" preserve="all" />
|
||||
<type fullname="UnityEngine.SceneManagement.Scene" preserve="all" />
|
||||
<type fullname="UnityEngine.SceneManagement.SceneManager" preserve="all" />
|
||||
<type fullname="UnityEngine.Screen" preserve="all" />
|
||||
<type fullname="UnityEngine.ScriptableObject" preserve="all" />
|
||||
<type fullname="UnityEngine.Serialization.FormerlySerializedAsAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.SerializeField" preserve="all" />
|
||||
<type fullname="UnityEngine.Shader" preserve="all" />
|
||||
<type fullname="UnityEngine.SkinnedMeshRenderer" preserve="all" />
|
||||
<type fullname="UnityEngine.Sprite" preserve="all" />
|
||||
<type fullname="UnityEngine.SpriteRenderer" preserve="all" />
|
||||
<type fullname="UnityEngine.StaticBatchingUtility" preserve="all" />
|
||||
<type fullname="UnityEngine.SystemInfo" preserve="all" />
|
||||
<type fullname="UnityEngine.SystemLanguage" preserve="all" />
|
||||
<type fullname="UnityEngine.TextAsset" preserve="all" />
|
||||
<type fullname="UnityEngine.Texture" preserve="all" />
|
||||
<type fullname="UnityEngine.Texture2D" preserve="all" />
|
||||
<type fullname="UnityEngine.TextureFormat" preserve="all" />
|
||||
<type fullname="UnityEngine.Time" preserve="all" />
|
||||
<type fullname="UnityEngine.TooltipAttribute" preserve="all" />
|
||||
<type fullname="UnityEngine.Transform" preserve="all" />
|
||||
<type fullname="UnityEngine.Vector2" preserve="all" />
|
||||
<type fullname="UnityEngine.Vector2Int" preserve="all" />
|
||||
<type fullname="UnityEngine.Vector3" preserve="all" />
|
||||
<type fullname="UnityEngine.Vector4" preserve="all" />
|
||||
<type fullname="UnityEngine.WaitForEndOfFrame" preserve="all" />
|
||||
<type fullname="UnityEngine.WaitForSeconds" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.IMGUIModule">
|
||||
<type fullname="UnityEngine.GUI" preserve="all" />
|
||||
<type fullname="UnityEngine.GUILayout" preserve="all" />
|
||||
<type fullname="UnityEngine.GUILayoutOption" preserve="all" />
|
||||
<type fullname="UnityEngine.GUISkin" preserve="all" />
|
||||
<type fullname="UnityEngine.GUIStyle" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.InputLegacyModule">
|
||||
<type fullname="UnityEngine.Input" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.JSONSerializeModule">
|
||||
<type fullname="UnityEngine.JsonUtility" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.ParticleSystemModule">
|
||||
<type fullname="UnityEngine.ParticleSystem" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.PhysicsModule">
|
||||
<type fullname="UnityEngine.Physics" preserve="all" />
|
||||
<type fullname="UnityEngine.RaycastHit" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.TextRenderingModule">
|
||||
<type fullname="UnityEngine.UIVertex" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.UI">
|
||||
<type fullname="UnityEngine.EventSystems.BaseEventData" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.EventSystem" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.ExecuteEvents" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.ExecuteEvents/EventFunction`1" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.IEndDragHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.IEventSystemHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.IPointerClickHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.IPointerDownHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.IPointerEnterHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.IPointerExitHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.IPointerUpHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.PointerEventData" preserve="all" />
|
||||
<type fullname="UnityEngine.EventSystems.PointerEventData/InputButton" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Button" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Button/ButtonClickedEvent" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.CanvasScaler" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.ColorBlock" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.ContentSizeFitter" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.ContentSizeFitter/FitMode" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Graphic" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.HorizontalOrVerticalLayoutGroup" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Image" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Image/Type" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.InputField" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.LayoutElement" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.LayoutGroup" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.LayoutRebuilder" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.RawImage" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.ScrollRect" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Selectable" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Selectable/Transition" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Slider" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Slider/SliderEvent" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Text" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Toggle" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.Toggle/ToggleEvent" preserve="all" />
|
||||
<type fullname="UnityEngine.UI.VerticalLayoutGroup" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.UIModule">
|
||||
<type fullname="UnityEngine.Canvas" preserve="all" />
|
||||
<type fullname="UnityEngine.CanvasGroup" preserve="all" />
|
||||
<type fullname="UnityEngine.CanvasRenderer" preserve="all" />
|
||||
<type fullname="UnityEngine.RectTransformUtility" preserve="all" />
|
||||
<type fullname="UnityEngine.RenderMode" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.UnityWebRequestModule">
|
||||
<type fullname="UnityEngine.Networking.DownloadHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.Networking.DownloadHandlerBuffer" preserve="all" />
|
||||
<type fullname="UnityEngine.Networking.UnityWebRequest" preserve="all" />
|
||||
<type fullname="UnityEngine.Networking.UnityWebRequest/Result" preserve="all" />
|
||||
<type fullname="UnityEngine.Networking.UnityWebRequestAsyncOperation" preserve="all" />
|
||||
<type fullname="UnityEngine.Networking.UploadHandler" preserve="all" />
|
||||
<type fullname="UnityEngine.Networking.UploadHandlerRaw" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="com.rlabrecque.steamworks.net">
|
||||
<type fullname="Steamworks.AccountID_t" preserve="all" />
|
||||
<type fullname="Steamworks.AppId_t" preserve="all" />
|
||||
<type fullname="Steamworks.CSteamID" preserve="all" />
|
||||
<type fullname="Steamworks.CallResult`1" preserve="all" />
|
||||
<type fullname="Steamworks.CallResult`1/APIDispatchDelegate" preserve="all" />
|
||||
<type fullname="Steamworks.CallbackDispatcher" preserve="all" />
|
||||
<type fullname="Steamworks.Callback`1" preserve="all" />
|
||||
<type fullname="Steamworks.Callback`1/DispatchDelegate" preserve="all" />
|
||||
<type fullname="Steamworks.CreateItemResult_t" preserve="all" />
|
||||
<type fullname="Steamworks.DllCheck" preserve="all" />
|
||||
<type fullname="Steamworks.EChatMemberStateChange" preserve="all" />
|
||||
<type fullname="Steamworks.EChatRoomEnterResponse" preserve="all" />
|
||||
<type fullname="Steamworks.EFriendFlags" preserve="all" />
|
||||
<type fullname="Steamworks.EFriendRelationship" preserve="all" />
|
||||
<type fullname="Steamworks.EItemState" preserve="all" />
|
||||
<type fullname="Steamworks.EItemUpdateStatus" preserve="all" />
|
||||
<type fullname="Steamworks.ELobbyComparison" preserve="all" />
|
||||
<type fullname="Steamworks.ELobbyDistanceFilter" preserve="all" />
|
||||
<type fullname="Steamworks.ELobbyType" preserve="all" />
|
||||
<type fullname="Steamworks.EPersonaState" preserve="all" />
|
||||
<type fullname="Steamworks.ERemoteStoragePublishedFileVisibility" preserve="all" />
|
||||
<type fullname="Steamworks.EResult" preserve="all" />
|
||||
<type fullname="Steamworks.ESteamAPIInitResult" preserve="all" />
|
||||
<type fullname="Steamworks.ESteamNetworkingAvailability" preserve="all" />
|
||||
<type fullname="Steamworks.ESteamNetworkingConfigDataType" preserve="all" />
|
||||
<type fullname="Steamworks.ESteamNetworkingConfigValue" preserve="all" />
|
||||
<type fullname="Steamworks.ESteamNetworkingConnectionState" preserve="all" />
|
||||
<type fullname="Steamworks.ETextFilteringContext" preserve="all" />
|
||||
<type fullname="Steamworks.EUGCMatchingUGCType" preserve="all" />
|
||||
<type fullname="Steamworks.EUGCQuery" preserve="all" />
|
||||
<type fullname="Steamworks.EUserUGCList" preserve="all" />
|
||||
<type fullname="Steamworks.EUserUGCListSortOrder" preserve="all" />
|
||||
<type fullname="Steamworks.EWorkshopFileType" preserve="all" />
|
||||
<type fullname="Steamworks.GameLobbyJoinRequested_t" preserve="all" />
|
||||
<type fullname="Steamworks.HAuthTicket" preserve="all" />
|
||||
<type fullname="Steamworks.HSteamListenSocket" preserve="all" />
|
||||
<type fullname="Steamworks.HSteamNetConnection" preserve="all" />
|
||||
<type fullname="Steamworks.LobbyChatUpdate_t" preserve="all" />
|
||||
<type fullname="Steamworks.LobbyCreated_t" preserve="all" />
|
||||
<type fullname="Steamworks.LobbyDataUpdate_t" preserve="all" />
|
||||
<type fullname="Steamworks.LobbyEnter_t" preserve="all" />
|
||||
<type fullname="Steamworks.LobbyMatchList_t" preserve="all" />
|
||||
<type fullname="Steamworks.Packsize" preserve="all" />
|
||||
<type fullname="Steamworks.PublishedFileId_t" preserve="all" />
|
||||
<type fullname="Steamworks.RemoteStorageSubscribePublishedFileResult_t" preserve="all" />
|
||||
<type fullname="Steamworks.RemoteStorageUnsubscribePublishedFileResult_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamAPI" preserve="all" />
|
||||
<type fullname="Steamworks.SteamAPICall_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamAPIWarningMessageHook_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamApps" preserve="all" />
|
||||
<type fullname="Steamworks.SteamClient" preserve="all" />
|
||||
<type fullname="Steamworks.SteamFriends" preserve="all" />
|
||||
<type fullname="Steamworks.SteamMatchmaking" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetConnectionInfo_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetConnectionStatusChangedCallback_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingConfigValue_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingConfigValue_t/OptionValue" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingIPAddr" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingIdentity" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingMessage_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingMessages" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingMessagesSessionRequest_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingSockets" preserve="all" />
|
||||
<type fullname="Steamworks.SteamNetworkingUtils" preserve="all" />
|
||||
<type fullname="Steamworks.SteamRelayNetworkStatus_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamServerConnectFailure_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamServersConnected_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamServersDisconnected_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamShutdown_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamUGC" preserve="all" />
|
||||
<type fullname="Steamworks.SteamUGCDetails_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamUGCQueryCompleted_t" preserve="all" />
|
||||
<type fullname="Steamworks.SteamUser" preserve="all" />
|
||||
<type fullname="Steamworks.SteamUtils" preserve="all" />
|
||||
<type fullname="Steamworks.SubmitItemUpdateResult_t" preserve="all" />
|
||||
<type fullname="Steamworks.UGCQueryHandle_t" preserve="all" />
|
||||
<type fullname="Steamworks.UGCUpdateHandle_t" 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.Activator" preserve="all" />
|
||||
<type fullname="System.AppDomain" preserve="all" />
|
||||
<type fullname="System.ArgumentNullException" preserve="all" />
|
||||
<type fullname="System.Array" preserve="all" />
|
||||
<type fullname="System.ArraySegment`1" preserve="all" />
|
||||
<type fullname="System.AsyncCallback" preserve="all" />
|
||||
<type fullname="System.Attribute" preserve="all" />
|
||||
<type fullname="System.AttributeTargets" preserve="all" />
|
||||
<type fullname="System.AttributeUsageAttribute" preserve="all" />
|
||||
<type fullname="System.BitConverter" preserve="all" />
|
||||
<type fullname="System.Boolean" preserve="all" />
|
||||
<type fullname="System.Buffer" preserve="all" />
|
||||
<type fullname="System.Buffers.ArrayBufferWriter`1" preserve="all" />
|
||||
<type fullname="System.Buffers.ArrayPool`1" preserve="all" />
|
||||
<type fullname="System.Buffers.Binary.BinaryPrimitives" preserve="all" />
|
||||
<type fullname="System.Buffers.IBufferWriter`1" preserve="all" />
|
||||
<type fullname="System.Byte" preserve="all" />
|
||||
<type fullname="System.Char" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.CollectionExtensions" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Dictionary`2" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Dictionary`2/Enumerator" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Dictionary`2/KeyCollection" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Dictionary`2/ValueCollection" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.EqualityComparer`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IDictionary`2" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IEnumerable`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IEnumerator`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IEqualityComparer`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IList`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IReadOnlyCollection`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IReadOnlyDictionary`2" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.IReadOnlyList`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.KeyValuePair`2" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.List`1" preserve="all" />
|
||||
<type fullname="System.Collections.Generic.List`1/Enumerator" preserve="all" />
|
||||
<type fullname="System.Collections.IDictionary" preserve="all" />
|
||||
<type fullname="System.Collections.IEnumerable" preserve="all" />
|
||||
<type fullname="System.Collections.IEnumerator" preserve="all" />
|
||||
<type fullname="System.Collections.IList" preserve="all" />
|
||||
<type fullname="System.Comparison`1" preserve="all" />
|
||||
<type fullname="System.Console" preserve="all" />
|
||||
<type fullname="System.Convert" preserve="all" />
|
||||
<type fullname="System.Converter`2" preserve="all" />
|
||||
<type fullname="System.DateTime" preserve="all" />
|
||||
<type fullname="System.DateTimeOffset" preserve="all" />
|
||||
<type fullname="System.Decimal" preserve="all" />
|
||||
<type fullname="System.Delegate" preserve="all" />
|
||||
<type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
|
||||
<type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
|
||||
<type fullname="System.Diagnostics.DebuggerBrowsableAttribute" preserve="all" />
|
||||
<type fullname="System.Diagnostics.DebuggerBrowsableState" preserve="all" />
|
||||
<type fullname="System.Diagnostics.DebuggerHiddenAttribute" preserve="all" />
|
||||
<type fullname="System.Diagnostics.DebuggerStepThroughAttribute" preserve="all" />
|
||||
<type fullname="System.DivideByZeroException" preserve="all" />
|
||||
<type fullname="System.DllNotFoundException" preserve="all" />
|
||||
<type fullname="System.Double" preserve="all" />
|
||||
<type fullname="System.EntryPointNotFoundException" preserve="all" />
|
||||
<type fullname="System.Enum" preserve="all" />
|
||||
<type fullname="System.Environment" preserve="all" />
|
||||
<type fullname="System.Exception" preserve="all" />
|
||||
<type fullname="System.FlagsAttribute" preserve="all" />
|
||||
<type fullname="System.Func`1" preserve="all" />
|
||||
<type fullname="System.Func`2" preserve="all" />
|
||||
<type fullname="System.Func`3" preserve="all" />
|
||||
<type fullname="System.GC" preserve="all" />
|
||||
<type fullname="System.Guid" preserve="all" />
|
||||
<type fullname="System.HashCode" preserve="all" />
|
||||
<type fullname="System.IAsyncResult" preserve="all" />
|
||||
<type fullname="System.IDisposable" preserve="all" />
|
||||
<type fullname="System.IEquatable`1" preserve="all" />
|
||||
<type fullname="System.IO.Directory" preserve="all" />
|
||||
<type fullname="System.IO.DirectoryInfo" preserve="all" />
|
||||
<type fullname="System.IO.EndOfStreamException" preserve="all" />
|
||||
<type fullname="System.IO.File" preserve="all" />
|
||||
<type fullname="System.IO.FileAccess" preserve="all" />
|
||||
<type fullname="System.IO.FileInfo" preserve="all" />
|
||||
<type fullname="System.IO.FileMode" preserve="all" />
|
||||
<type fullname="System.IO.FileShare" preserve="all" />
|
||||
<type fullname="System.IO.FileStream" preserve="all" />
|
||||
<type fullname="System.IO.FileSystemInfo" preserve="all" />
|
||||
<type fullname="System.IO.IOException" preserve="all" />
|
||||
<type fullname="System.IO.MemoryStream" preserve="all" />
|
||||
<type fullname="System.IO.Path" preserve="all" />
|
||||
<type fullname="System.IO.SearchOption" preserve="all" />
|
||||
<type fullname="System.IO.SeekOrigin" preserve="all" />
|
||||
<type fullname="System.IO.Stream" preserve="all" />
|
||||
<type fullname="System.Int16" preserve="all" />
|
||||
<type fullname="System.Int32" preserve="all" />
|
||||
<type fullname="System.Int64" preserve="all" />
|
||||
<type fullname="System.IntPtr" preserve="all" />
|
||||
<type fullname="System.InvalidOperationException" preserve="all" />
|
||||
<type fullname="System.Math" preserve="all" />
|
||||
<type fullname="System.MemoryExtensions" preserve="all" />
|
||||
<type fullname="System.MulticastDelegate" preserve="all" />
|
||||
<type fullname="System.NotSupportedException" preserve="all" />
|
||||
<type fullname="System.Nullable`1" preserve="all" />
|
||||
<type fullname="System.Object" preserve="all" />
|
||||
<type fullname="System.ParamArrayAttribute" preserve="all" />
|
||||
<type fullname="System.Predicate`1" preserve="all" />
|
||||
<type fullname="System.Random" preserve="all" />
|
||||
<type fullname="System.ReadOnlyMemory`1" preserve="all" />
|
||||
<type fullname="System.ReadOnlySpan`1" preserve="all" />
|
||||
<type fullname="System.Reflection.Assembly" preserve="all" />
|
||||
<type fullname="System.Reflection.Binder" preserve="all" />
|
||||
<type fullname="System.Reflection.BindingFlags" preserve="all" />
|
||||
<type fullname="System.Reflection.ConstructorInfo" preserve="all" />
|
||||
<type fullname="System.Reflection.CustomAttributeExtensions" preserve="all" />
|
||||
<type fullname="System.Reflection.DefaultMemberAttribute" preserve="all" />
|
||||
<type fullname="System.Reflection.FieldInfo" preserve="all" />
|
||||
<type fullname="System.Reflection.MemberInfo" preserve="all" />
|
||||
<type fullname="System.Reflection.MethodBase" preserve="all" />
|
||||
<type fullname="System.Reflection.MethodInfo" preserve="all" />
|
||||
<type fullname="System.Reflection.ParameterModifier" preserve="all" />
|
||||
<type fullname="System.Reflection.PropertyInfo" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.AsyncStateMachineAttribute" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.AsyncTaskMethodBuilder" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1" 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.IsReadOnlyAttribute" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.IteratorStateMachineAttribute" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.RuntimeHelpers" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.TaskAwaiter`1" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.TupleElementNamesAttribute" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.YieldAwaitable" preserve="all" />
|
||||
<type fullname="System.Runtime.CompilerServices.YieldAwaitable/YieldAwaiter" preserve="all" />
|
||||
<type fullname="System.Runtime.InteropServices.Marshal" preserve="all" />
|
||||
<type fullname="System.Runtime.InteropServices.MemoryMarshal" preserve="all" />
|
||||
<type fullname="System.RuntimeFieldHandle" preserve="all" />
|
||||
<type fullname="System.RuntimeTypeHandle" preserve="all" />
|
||||
<type fullname="System.SByte" preserve="all" />
|
||||
<type fullname="System.Security.Cryptography.HashAlgorithm" preserve="all" />
|
||||
<type fullname="System.Security.Cryptography.MD5" preserve="all" />
|
||||
<type fullname="System.Security.Cryptography.MD5CryptoServiceProvider" preserve="all" />
|
||||
<type fullname="System.Single" preserve="all" />
|
||||
<type fullname="System.Span`1" preserve="all" />
|
||||
<type fullname="System.String" preserve="all" />
|
||||
<type fullname="System.StringComparer" preserve="all" />
|
||||
<type fullname="System.StringComparison" preserve="all" />
|
||||
<type fullname="System.StringSplitOptions" preserve="all" />
|
||||
<type fullname="System.Text.Encoding" preserve="all" />
|
||||
<type fullname="System.Text.StringBuilder" preserve="all" />
|
||||
<type fullname="System.Text.UTF8Encoding" preserve="all" />
|
||||
<type fullname="System.Threading.Interlocked" preserve="all" />
|
||||
<type fullname="System.Threading.Monitor" preserve="all" />
|
||||
<type fullname="System.Threading.Tasks.Task" preserve="all" />
|
||||
<type fullname="System.Threading.Tasks.Task`1" preserve="all" />
|
||||
<type fullname="System.TimeSpan" preserve="all" />
|
||||
<type fullname="System.TimeZoneInfo" preserve="all" />
|
||||
<type fullname="System.Type" preserve="all" />
|
||||
<type fullname="System.UInt16" preserve="all" />
|
||||
<type fullname="System.UInt32" preserve="all" />
|
||||
<type fullname="System.UInt64" preserve="all" />
|
||||
<type fullname="System.ValueTuple`2" preserve="all" />
|
||||
<type fullname="System.ValueTuple`3" preserve="all" />
|
||||
<type fullname="System.ValueTuple`5" preserve="all" />
|
||||
<type fullname="System.ValueTuple`6" preserve="all" />
|
||||
<type fullname="System.ValueType" preserve="all" />
|
||||
</assembly>
|
||||
</linker>
|
||||
File diff suppressed because it is too large
Load Diff
3
Unity/Assets/Plugins/Assisstant/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Plugins/Assisstant/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Plugins/Assisstant/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Plugins/Assisstant/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: afdf198462be42a4a08dbf1b22b49225
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -71,7 +71,15 @@ namespace ParadoxNotion
|
||||
///----------------------------------------------------------------------------------------------
|
||||
|
||||
private static Assembly[] loadedAssemblies {
|
||||
get { return _loadedAssemblies != null ? _loadedAssemblies : _loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); }
|
||||
get
|
||||
{
|
||||
var currentAssemblies = AppDomain.CurrentDomain.GetAssemblies();
|
||||
if ( _loadedAssemblies == null || _loadedAssemblies.Length != currentAssemblies.Length ) {
|
||||
_loadedAssemblies = currentAssemblies;
|
||||
_allTypes = null;
|
||||
}
|
||||
return _loadedAssemblies;
|
||||
}
|
||||
}
|
||||
|
||||
//Alternative to Type.GetType to work with FullName instead of AssemblyQualifiedName when looking up a type by string
|
||||
@ -85,7 +93,7 @@ namespace ParadoxNotion
|
||||
}
|
||||
|
||||
Type type = null;
|
||||
if ( _typesMap.TryGetValue(typeFullName, out type) ) {
|
||||
if ( _typesMap.TryGetValue(typeFullName, out type) && type != null ) {
|
||||
return type;
|
||||
}
|
||||
|
||||
@ -119,7 +127,7 @@ namespace ParadoxNotion
|
||||
}
|
||||
|
||||
Logger.LogError(string.Format("Type with name '{0}' could not be resolved.", typeFullName), "Type Request");
|
||||
return _typesMap[typeFullName] = null;
|
||||
return null;
|
||||
}
|
||||
|
||||
//direct type look up with it's FullName
|
||||
@ -1375,4 +1383,4 @@ namespace ParadoxNotion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
3
Unity/Assets/Plugins/UnityComponent/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Plugins/UnityComponent/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8df3842dd57b4dd3a9f8f1344c9a39fc
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Plugins/ViSDK/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Plugins/ViSDK/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Plugins/ViSDK/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Plugins/ViSDK/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f5d11a733fa4671893a1f2d7bdd83c3
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -104,7 +104,7 @@ NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
@ -117,13 +117,13 @@ NavMeshSettings:
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &251107983
|
||||
--- !u!1 &598459107
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -131,779 +131,60 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 251107984}
|
||||
- component: {fileID: 251107987}
|
||||
- component: {fileID: 251107986}
|
||||
- component: {fileID: 251107985}
|
||||
- component: {fileID: 598459108}
|
||||
- component: {fileID: 598459109}
|
||||
m_Layer: 0
|
||||
m_Name: Low
|
||||
m_Name: TH1Boot
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &251107984
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251107983}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1784017108}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!114 &251107985
|
||||
--- !u!114 &598459109
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251107983}
|
||||
m_GameObject: {fileID: 598459107}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Script: {fileID: 11500000, guid: 4c0a91e9c554c694791fbd5691165798, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &251107986
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251107983}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!223 &251107987
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251107983}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 1
|
||||
m_Camera: {fileID: 1245951406}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!1 &429867060
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 429867063}
|
||||
- component: {fileID: 429867062}
|
||||
- component: {fileID: 429867061}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &429867061
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 429867060}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_SendPointerHoverToParent: 1
|
||||
m_HorizontalAxis: Horizontal
|
||||
m_VerticalAxis: Vertical
|
||||
m_SubmitButton: Submit
|
||||
m_CancelButton: Cancel
|
||||
m_InputActionsPerSecond: 10
|
||||
m_RepeatDelay: 0.5
|
||||
m_ForceModuleActive: 0
|
||||
--- !u!114 &429867062
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 429867060}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 5
|
||||
--- !u!4 &429867063
|
||||
GameSceneLocation: Scenes/SampleScene.unity
|
||||
LoadGameSceneFromYooAsset: 1
|
||||
NoAI: 0
|
||||
FullSight: 0
|
||||
AIActionTime: 0.5
|
||||
AIAllTech: 0
|
||||
AIMoreMoney: 0
|
||||
LandThreshold: -1
|
||||
AnimationSpeed: 1
|
||||
DebugMode: 0
|
||||
DebugHideCenterMessage: 0
|
||||
cityCount: 30
|
||||
unitCount: 0
|
||||
turn: 0
|
||||
renko: 0
|
||||
IsNetActionExecuting: 0
|
||||
ROMapRenderer: {fileID: 0}
|
||||
URPDefaultMat: {fileID: 0}
|
||||
--- !u!4 &598459108
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 429867060}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 575235020}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &493985069
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 493985070}
|
||||
- component: {fileID: 493985073}
|
||||
- component: {fileID: 493985072}
|
||||
- component: {fileID: 493985071}
|
||||
m_Layer: 0
|
||||
m_Name: Mid
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &493985070
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 493985069}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1784017108}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!114 &493985071
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 493985069}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &493985072
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 493985069}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!223 &493985073
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 493985069}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 1
|
||||
m_Camera: {fileID: 1245951406}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 10
|
||||
m_TargetDisplay: 0
|
||||
--- !u!1 &575235018
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 575235020}
|
||||
- component: {fileID: 575235022}
|
||||
- component: {fileID: 575235023}
|
||||
m_Layer: 0
|
||||
m_Name: Global
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &575235020
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 575235018}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 429867063}
|
||||
- {fileID: 1984349697}
|
||||
- {fileID: 1245951402}
|
||||
- {fileID: 1784017108}
|
||||
- {fileID: 630054496}
|
||||
- {fileID: 590194895}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &575235022
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 575235018}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 502d8cafd6a5a0447ab1db9a24cdcb10, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
data:
|
||||
- key: Unit
|
||||
gameObject: {fileID: 1610378981859644, guid: cfaf4529ce2243c4c85126e9d008897b,
|
||||
type: 3}
|
||||
--- !u!114 &575235023
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 575235018}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3b3cb9b07d7917f4cbf5bc2be18e8585, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &590194894
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 590194895}
|
||||
m_Layer: 0
|
||||
m_Name: Scenes
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &590194895
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 590194894}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 575235020}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &630054495
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 630054496}
|
||||
m_Layer: 0
|
||||
m_Name: Unit
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &630054496
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 630054495}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 575235020}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &872594939
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 872594940}
|
||||
- component: {fileID: 872594943}
|
||||
- component: {fileID: 872594942}
|
||||
- component: {fileID: 872594941}
|
||||
m_Layer: 0
|
||||
m_Name: Hidden
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &872594940
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 872594939}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1784017108}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!114 &872594941
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 872594939}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &872594942
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 872594939}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!223 &872594943
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 872594939}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 1
|
||||
m_Camera: {fileID: 1245951406}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!1 &1245951401
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1245951402}
|
||||
- component: {fileID: 1245951406}
|
||||
- component: {fileID: 1245951405}
|
||||
- component: {fileID: 1245951403}
|
||||
- component: {fileID: 1245951404}
|
||||
m_Layer: 0
|
||||
m_Name: UICamera
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1245951402
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1245951401}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 575235020}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!81 &1245951403
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1245951401}
|
||||
m_Enabled: 0
|
||||
--- !u!114 &1245951404
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1245951401}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_RenderShadows: 1
|
||||
m_RequiresDepthTextureOption: 2
|
||||
m_RequiresOpaqueTextureOption: 2
|
||||
m_CameraType: 1
|
||||
m_Cameras: []
|
||||
m_RendererIndex: -1
|
||||
m_VolumeLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
m_VolumeTrigger: {fileID: 0}
|
||||
m_VolumeFrameworkUpdateModeOption: 2
|
||||
m_RenderPostProcessing: 0
|
||||
m_Antialiasing: 0
|
||||
m_AntialiasingQuality: 2
|
||||
m_StopNaN: 0
|
||||
m_Dithering: 0
|
||||
m_ClearDepth: 1
|
||||
m_AllowXRRendering: 1
|
||||
m_RequiresDepthTexture: 0
|
||||
m_RequiresColorTexture: 0
|
||||
m_Version: 2
|
||||
--- !u!124 &1245951405
|
||||
Behaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1245951401}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &1245951406
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1245951401}
|
||||
m_Enabled: 1
|
||||
m_GameObject: {fileID: 598459107}
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 3
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 32
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 0
|
||||
m_AllowMSAA: 0
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!1 &1439952248
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1439952249}
|
||||
- component: {fileID: 1439952252}
|
||||
- component: {fileID: 1439952251}
|
||||
- component: {fileID: 1439952250}
|
||||
m_Layer: 0
|
||||
m_Name: High
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1439952249
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1439952248}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1784017108}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!114 &1439952250
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1439952248}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &1439952251
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1439952248}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!223 &1439952252
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1439952248}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 1
|
||||
m_Camera: {fileID: 1245951406}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 20
|
||||
m_TargetDisplay: 0
|
||||
--- !u!1 &1784017107
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1784017108}
|
||||
- component: {fileID: 1784017109}
|
||||
m_Layer: 0
|
||||
m_Name: UI
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1784017108
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1784017107}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalPosition: {x: 4.5230885, y: 50.832413, z: 1.7386185}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 872594940}
|
||||
- {fileID: 251107984}
|
||||
- {fileID: 493985070}
|
||||
- {fileID: 1439952249}
|
||||
m_Father: {fileID: 575235020}
|
||||
m_RootOrder: 3
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1784017109
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1784017107}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 502d8cafd6a5a0447ab1db9a24cdcb10, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
data:
|
||||
- key: Hidden
|
||||
gameObject: {fileID: 872594939}
|
||||
- key: Low
|
||||
gameObject: {fileID: 251107983}
|
||||
- key: Mid
|
||||
gameObject: {fileID: 493985069}
|
||||
- key: High
|
||||
gameObject: {fileID: 1439952248}
|
||||
--- !u!850595691 &1972482029
|
||||
LightingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -911,7 +192,7 @@ LightingSettings:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Settings.lighting
|
||||
serializedVersion: 4
|
||||
serializedVersion: 6
|
||||
m_GIWorkflowMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 1
|
||||
@ -920,7 +201,7 @@ LightingSettings:
|
||||
m_AlbedoBoost: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_UsingShadowmask: 0
|
||||
m_BakeBackend: 0
|
||||
m_BakeBackend: 1
|
||||
m_LightmapMaxSize: 1024
|
||||
m_BakeResolution: 40
|
||||
m_Padding: 2
|
||||
@ -945,13 +226,13 @@ LightingSettings:
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 500
|
||||
m_PVREnvironmentSampleCount: 500
|
||||
m_PVRSampleCount: 512
|
||||
m_PVREnvironmentSampleCount: 512
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_PVRBounces: 2
|
||||
m_PVRMinBounces: 2
|
||||
m_PVREnvironmentMIS: 0
|
||||
m_PVREnvironmentImportanceSampling: 0
|
||||
m_PVRFilteringMode: 2
|
||||
m_PVRDenoiserTypeDirect: 0
|
||||
m_PVRDenoiserTypeIndirect: 0
|
||||
@ -966,122 +247,10 @@ LightingSettings:
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_PVRTiledBaking: 0
|
||||
--- !u!1 &1984349696
|
||||
GameObject:
|
||||
m_NumRaysToShootPerTexel: -1
|
||||
m_RespectSceneVisibilityWhenBakingGI: 0
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1984349697}
|
||||
- component: {fileID: 1984349700}
|
||||
- component: {fileID: 1984349699}
|
||||
- component: {fileID: 1984349698}
|
||||
m_Layer: 0
|
||||
m_Name: MainCamera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1984349697
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1984349696}
|
||||
m_LocalRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254}
|
||||
m_LocalPosition: {x: 2.1579952, y: 35.460117, z: -32.150215}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 575235020}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 60, y: 0, z: 0}
|
||||
--- !u!114 &1984349698
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1984349696}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_RenderShadows: 1
|
||||
m_RequiresDepthTextureOption: 2
|
||||
m_RequiresOpaqueTextureOption: 2
|
||||
m_CameraType: 0
|
||||
m_Cameras:
|
||||
- {fileID: 1245951406}
|
||||
m_RendererIndex: -1
|
||||
m_VolumeLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
m_VolumeTrigger: {fileID: 0}
|
||||
m_VolumeFrameworkUpdateModeOption: 2
|
||||
m_RenderPostProcessing: 0
|
||||
m_Antialiasing: 0
|
||||
m_AntialiasingQuality: 2
|
||||
m_StopNaN: 0
|
||||
m_Dithering: 0
|
||||
m_ClearDepth: 1
|
||||
m_AllowXRRendering: 1
|
||||
m_RequiresDepthTexture: 0
|
||||
m_RequiresColorTexture: 0
|
||||
m_Version: 2
|
||||
--- !u!81 &1984349699
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1984349696}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &1984349700
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1984349696}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 279
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
m_Roots:
|
||||
- {fileID: 598459108}
|
||||
|
||||
@ -10,7 +10,6 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using Logic.AI;
|
||||
using NodeCanvas.Framework;
|
||||
using NUnit.Framework;
|
||||
using ParadoxNotion.Design;
|
||||
using RuntimeData;
|
||||
|
||||
|
||||
3
Unity/Assets/Scripts/BTNodeCanvas/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/BTNodeCanvas/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/BTNodeCanvas/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/BTNodeCanvas/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5796c12a6054444b1c157a18f479d40
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/Effect/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/Effect/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/Effect/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/Effect/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de1896b82d5f45d3add5b61542a94179
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/Steamworks.NET/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/Steamworks.NET/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 65948080d0d44455b3c29c0f5aa5de1c
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,5 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76014dabbf7df4d4b98dc8cbbae75ead
|
||||
guid: b2c1e0a1d6ab4efbb0d4b25c0e3d9a10
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
42
Unity/Assets/Scripts/TH1_AOT/AotHotfixPreloader.cs
Normal file
42
Unity/Assets/Scripts/TH1_AOT/AotHotfixPreloader.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using TH1_Logic.Hotfix;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TH1_AOT
|
||||
{
|
||||
public static class AotHotfixPreloader
|
||||
{
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)]
|
||||
private static void LoadHotfixAfterAssembliesLoaded()
|
||||
{
|
||||
TryPreload("after assemblies loaded", false);
|
||||
}
|
||||
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
|
||||
private static void LoadHotfixBeforeScene()
|
||||
{
|
||||
TryPreload("before first scene", true);
|
||||
}
|
||||
|
||||
private static void TryPreload(string phase, bool warnIfUnavailable)
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
HotfixBootstrap.RefreshRuntimeTypeCaches();
|
||||
#else
|
||||
if (HotfixBootstrap.IsLoaded)
|
||||
{
|
||||
HotfixBootstrap.RefreshRuntimeTypeCaches();
|
||||
return;
|
||||
}
|
||||
|
||||
if (HotfixBootstrap.InitializeFromStreamingAssets(false, false))
|
||||
{
|
||||
Debug.Log($"[TH1.AOT] Hotfix preloaded {phase}.");
|
||||
}
|
||||
else if (warnIfUnavailable)
|
||||
{
|
||||
Debug.LogWarning("[TH1.AOT] Hotfix preload did not finish before scene load; bootstrap will retry from the scene entry.");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Unity/Assets/Scripts/TH1_AOT/AotHotfixPreloader.cs.meta
Normal file
11
Unity/Assets/Scripts/TH1_AOT/AotHotfixPreloader.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8f2e265894874e5da1f0c7297bdb321d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
256
Unity/Assets/Scripts/TH1_AOT/AotMainBootstrap.cs
Normal file
256
Unity/Assets/Scripts/TH1_AOT/AotMainBootstrap.cs
Normal file
@ -0,0 +1,256 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using TH1_Logic.Hotfix;
|
||||
using TH1Resource;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using YooAsset;
|
||||
|
||||
namespace TH1_AOT
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public sealed class AotMainBootstrap : MonoBehaviour
|
||||
{
|
||||
private const string GameSceneAssetRoot = "Assets/BundleResources/";
|
||||
|
||||
[Header("Game Scene")]
|
||||
public string GameSceneLocation = "Scenes/SampleScene.unity";
|
||||
public bool LoadGameSceneFromYooAsset = true;
|
||||
|
||||
[Header("Debug Param")]
|
||||
public bool NoAI = false;
|
||||
public bool FullSight = true;
|
||||
public float AIActionTime = 0.2f;
|
||||
public bool AIAllTech = true;
|
||||
public bool AIMoreMoney = true;
|
||||
public float LandThreshold = -1f;
|
||||
public float AnimationSpeed = 1f;
|
||||
public bool DebugMode = false;
|
||||
public bool DebugHideCenterMessage = false;
|
||||
|
||||
[Header("Play Settings")]
|
||||
public int cityCount;
|
||||
public int unitCount;
|
||||
public int turn;
|
||||
public int renko;
|
||||
public bool IsNetActionExecuting;
|
||||
|
||||
[Header("RenderObject")]
|
||||
public GameObject ROMapRenderer;
|
||||
|
||||
[Header("SuperBank")]
|
||||
public Material URPDefaultMat;
|
||||
|
||||
private bool _started;
|
||||
private static bool _runtimeStarted;
|
||||
private static SceneHandle _gameSceneHandle;
|
||||
|
||||
private static readonly string[] ForwardedFieldNames =
|
||||
{
|
||||
nameof(GameSceneLocation),
|
||||
nameof(LoadGameSceneFromYooAsset),
|
||||
nameof(NoAI),
|
||||
nameof(FullSight),
|
||||
nameof(AIActionTime),
|
||||
nameof(AIAllTech),
|
||||
nameof(AIMoreMoney),
|
||||
nameof(LandThreshold),
|
||||
nameof(AnimationSpeed),
|
||||
nameof(DebugMode),
|
||||
nameof(DebugHideCenterMessage),
|
||||
nameof(cityCount),
|
||||
nameof(unitCount),
|
||||
nameof(turn),
|
||||
nameof(renko),
|
||||
nameof(IsNetActionExecuting),
|
||||
nameof(ROMapRenderer),
|
||||
nameof(URPDefaultMat),
|
||||
};
|
||||
|
||||
private IEnumerator Start()
|
||||
{
|
||||
if (_started) yield break;
|
||||
_started = true;
|
||||
|
||||
if (_runtimeStarted)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
_runtimeStarted = true;
|
||||
|
||||
Application.runInBackground = true;
|
||||
DontDestroyOnLoad(gameObject);
|
||||
|
||||
Debug.Log("[TH1.AOT] Bootstrap start.");
|
||||
|
||||
var hotfixAssembly = ResolveHotfixAssembly();
|
||||
if (hotfixAssembly == null)
|
||||
{
|
||||
Debug.LogError("[TH1.AOT] Hotfix assembly is not available.");
|
||||
yield break;
|
||||
}
|
||||
|
||||
HotfixBootstrap.EnsureAotMetadataLoaded();
|
||||
HotfixBootstrap.InvokeHotfixEntry(hotfixAssembly);
|
||||
HotfixBootstrap.RefreshRuntimeTypeCaches();
|
||||
Debug.Log($"[TH1.AOT] Hotfix assembly ready: {hotfixAssembly.GetName().Name}");
|
||||
|
||||
yield return ResourceManager.InitializeCoroutine();
|
||||
|
||||
var sceneBootstrap = this;
|
||||
if (LoadGameSceneFromYooAsset && !IsGameSceneLoaded(GameSceneLocation))
|
||||
{
|
||||
var sceneHandle = ResourceManager.LoadSceneAsync(GameSceneLocation, LoadSceneMode.Single);
|
||||
yield return sceneHandle;
|
||||
|
||||
if (sceneHandle.Status != EOperationStatus.Succeed)
|
||||
{
|
||||
Debug.LogError($"[TH1.AOT] Load game scene failed: {GameSceneLocation}, {sceneHandle.LastError}");
|
||||
_runtimeStarted = false;
|
||||
yield break;
|
||||
}
|
||||
|
||||
_gameSceneHandle = sceneHandle;
|
||||
sceneHandle.ActivateScene();
|
||||
sceneBootstrap = FindBootstrapInScene(sceneHandle.SceneObject) ?? this;
|
||||
if (sceneBootstrap != this)
|
||||
{
|
||||
sceneBootstrap.enabled = false;
|
||||
}
|
||||
|
||||
Debug.Log($"[TH1.AOT] Loaded game scene from YooAsset: {GameSceneLocation}");
|
||||
}
|
||||
|
||||
var hotfixMainType = hotfixAssembly.GetType(HotfixManifest.RuntimeMainTypeName, false);
|
||||
if (hotfixMainType == null)
|
||||
{
|
||||
Debug.LogError($"[TH1.AOT] Hotfix Main type not found: {HotfixManifest.RuntimeMainTypeName}");
|
||||
yield break;
|
||||
}
|
||||
|
||||
if (!typeof(MonoBehaviour).IsAssignableFrom(hotfixMainType))
|
||||
{
|
||||
Debug.LogError($"[TH1.AOT] Hotfix Main type is not a MonoBehaviour: {hotfixMainType.FullName}");
|
||||
yield break;
|
||||
}
|
||||
|
||||
var mainHost = sceneBootstrap != null ? sceneBootstrap.gameObject : gameObject;
|
||||
var hotfixMain = mainHost.GetComponent(hotfixMainType);
|
||||
if (hotfixMain == null)
|
||||
{
|
||||
hotfixMain = mainHost.AddComponent(hotfixMainType);
|
||||
}
|
||||
|
||||
ForwardSceneFields(sceneBootstrap, hotfixMain);
|
||||
|
||||
Debug.Log($"[TH1.AOT] Started hotfix Main from {hotfixAssembly.GetName().Name}.");
|
||||
}
|
||||
|
||||
private static Assembly ResolveHotfixAssembly()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
var editorAssembly = FindLoadedAssembly(HotfixManifest.HotfixAssemblyName);
|
||||
if (editorAssembly != null)
|
||||
{
|
||||
return editorAssembly;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (HotfixBootstrap.LoadedAssembly != null)
|
||||
{
|
||||
return HotfixBootstrap.LoadedAssembly;
|
||||
}
|
||||
|
||||
if (HotfixBootstrap.InitializeFromStreamingAssets(true))
|
||||
{
|
||||
return HotfixBootstrap.LoadedAssembly;
|
||||
}
|
||||
|
||||
return FindLoadedAssembly(HotfixManifest.HotfixAssemblyName);
|
||||
}
|
||||
|
||||
private static Assembly FindLoadedAssembly(string assemblyName)
|
||||
{
|
||||
return AppDomain.CurrentDomain.GetAssemblies()
|
||||
.FirstOrDefault(assembly => assembly.GetName().Name == assemblyName);
|
||||
}
|
||||
|
||||
private bool IsGameSceneLoaded(string location)
|
||||
{
|
||||
var expectedPath = NormalizeGameSceneAssetPath(location);
|
||||
for (var i = 0; i < SceneManager.sceneCount; i++)
|
||||
{
|
||||
var scene = SceneManager.GetSceneAt(i);
|
||||
if (!scene.isLoaded) continue;
|
||||
|
||||
var scenePath = scene.path.Replace('\\', '/');
|
||||
if (scenePath.Equals(expectedPath, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private static string NormalizeGameSceneAssetPath(string location)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(location))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
var normalized = location.Replace('\\', '/').TrimStart('/');
|
||||
return normalized.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)
|
||||
? normalized
|
||||
: GameSceneAssetRoot + normalized;
|
||||
}
|
||||
|
||||
private AotMainBootstrap FindBootstrapInScene(Scene scene)
|
||||
{
|
||||
if (scene.IsValid() && scene.isLoaded)
|
||||
{
|
||||
foreach (var root in scene.GetRootGameObjects())
|
||||
{
|
||||
var bootstrap = root.GetComponentsInChildren<AotMainBootstrap>(true)
|
||||
.FirstOrDefault(item => item != null && item != this);
|
||||
if (bootstrap != null)
|
||||
{
|
||||
return bootstrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return FindObjectsOfType<AotMainBootstrap>(true)
|
||||
.FirstOrDefault(item => item != null && item != this);
|
||||
}
|
||||
|
||||
private static void ForwardSceneFields(AotMainBootstrap source, Component hotfixMain)
|
||||
{
|
||||
if (source == null || hotfixMain == null) return;
|
||||
|
||||
var sourceType = source.GetType();
|
||||
var targetType = hotfixMain.GetType();
|
||||
const BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
|
||||
|
||||
foreach (var fieldName in ForwardedFieldNames)
|
||||
{
|
||||
var sourceField = sourceType.GetField(fieldName, flags);
|
||||
var targetField = targetType.GetField(fieldName, flags);
|
||||
if (sourceField == null || targetField == null) continue;
|
||||
|
||||
try
|
||||
{
|
||||
targetField.SetValue(hotfixMain, sourceField.GetValue(source));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogWarning($"[TH1.AOT] Forward field failed: {fieldName}, {e.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Unity/Assets/Scripts/TH1_AOT/AotMainBootstrap.cs.meta
Normal file
11
Unity/Assets/Scripts/TH1_AOT/AotMainBootstrap.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c0a91e9c554c694791fbd5691165798
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
@ -9,25 +10,22 @@ namespace TH1_Logic.Hotfix
|
||||
public static class HotfixBootstrap
|
||||
{
|
||||
private static bool _initialized;
|
||||
private static bool _aotMetadataLoaded;
|
||||
private static readonly HashSet<string> InvokedEntryAssemblies = new HashSet<string>();
|
||||
|
||||
public static bool IsLoaded { get; private set; }
|
||||
public static Assembly LoadedAssembly { get; private set; }
|
||||
public static string LoadedAssemblyFullName { get; private set; }
|
||||
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
|
||||
private static void AutoInitialize()
|
||||
public static bool InitializeFromStreamingAssets(bool requireHotfix, bool invokeEntry = true)
|
||||
{
|
||||
InitializeFromStreamingAssets(false);
|
||||
}
|
||||
|
||||
public static bool InitializeFromStreamingAssets(bool requireHotfix)
|
||||
{
|
||||
if (_initialized) return IsLoaded;
|
||||
|
||||
try
|
||||
{
|
||||
var root = Path.Combine(Application.streamingAssetsPath, HotfixManifest.RootFolderName);
|
||||
LoadAotMetadata(root);
|
||||
|
||||
if (_initialized) return IsLoaded;
|
||||
|
||||
var hotfixPath = Path.Combine(root, HotfixManifest.HotfixDllFolderName, HotfixManifest.HotfixAssemblyFileName);
|
||||
if (!File.Exists(hotfixPath))
|
||||
{
|
||||
@ -40,8 +38,14 @@ namespace TH1_Logic.Hotfix
|
||||
}
|
||||
|
||||
var assembly = Assembly.Load(File.ReadAllBytes(hotfixPath));
|
||||
LoadedAssembly = assembly;
|
||||
LoadedAssemblyFullName = assembly.FullName;
|
||||
InvokeHotfixEntry(assembly);
|
||||
RefreshRuntimeTypeCaches();
|
||||
if (invokeEntry)
|
||||
{
|
||||
InvokeHotfixEntry(assembly);
|
||||
}
|
||||
|
||||
_initialized = true;
|
||||
IsLoaded = true;
|
||||
Debug.Log($"[TH1.Hotfix] Loaded {LoadedAssemblyFullName}");
|
||||
@ -54,8 +58,33 @@ namespace TH1_Logic.Hotfix
|
||||
}
|
||||
}
|
||||
|
||||
public static void EnsureAotMetadataLoaded()
|
||||
{
|
||||
try
|
||||
{
|
||||
var root = Path.Combine(Application.streamingAssetsPath, HotfixManifest.RootFolderName);
|
||||
LoadAotMetadata(root);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogWarning($"[TH1.Hotfix] Ensure AOT metadata failed: {e.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public static void InvokeHotfixEntry(Assembly assembly)
|
||||
{
|
||||
if (assembly == null) return;
|
||||
|
||||
var assemblyKey = assembly.FullName ?? assembly.GetName().Name;
|
||||
if (!InvokedEntryAssemblies.Add(assemblyKey)) return;
|
||||
|
||||
InvokeHotfixEntryInternal(assembly);
|
||||
}
|
||||
|
||||
private static void LoadAotMetadata(string root)
|
||||
{
|
||||
if (_aotMetadataLoaded) return;
|
||||
|
||||
var runtimeApiType = FindType("HybridCLR.RuntimeApi");
|
||||
var modeType = FindType("HybridCLR.HomologousImageMode");
|
||||
if (runtimeApiType == null || modeType == null)
|
||||
@ -77,18 +106,26 @@ namespace TH1_Logic.Hotfix
|
||||
|
||||
var mode = Enum.Parse(modeType, "SuperSet");
|
||||
var aotDir = Path.Combine(root, HotfixManifest.AotMetadataFolderName);
|
||||
var allLoaded = true;
|
||||
|
||||
foreach (var fileName in HotfixManifest.AotMetadataAssemblyFileNames)
|
||||
{
|
||||
var path = Path.Combine(aotDir, fileName);
|
||||
if (!File.Exists(path)) continue;
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
allLoaded = false;
|
||||
Debug.LogWarning($"[TH1.Hotfix] AOT metadata missing: {path}");
|
||||
continue;
|
||||
}
|
||||
|
||||
var result = method.Invoke(null, new object[] { File.ReadAllBytes(path), mode });
|
||||
Debug.Log($"[TH1.Hotfix] Load AOT metadata {fileName}: {result}");
|
||||
}
|
||||
|
||||
_aotMetadataLoaded = allLoaded;
|
||||
}
|
||||
|
||||
private static void InvokeHotfixEntry(Assembly assembly)
|
||||
private static void InvokeHotfixEntryInternal(Assembly assembly)
|
||||
{
|
||||
var entryType = assembly.GetType(HotfixManifest.EntryTypeName);
|
||||
if (entryType == null)
|
||||
@ -113,5 +150,18 @@ namespace TH1_Logic.Hotfix
|
||||
.Select(assembly => assembly.GetType(fullName, false))
|
||||
.FirstOrDefault(type => type != null);
|
||||
}
|
||||
|
||||
public static void RefreshRuntimeTypeCaches()
|
||||
{
|
||||
InvokeStaticNoArg("ParadoxNotion.ReflectionTools", "FlushMem");
|
||||
InvokeStaticNoArg("ParadoxNotion.Serialization.JSONSerializer", "FlushMem");
|
||||
}
|
||||
|
||||
private static void InvokeStaticNoArg(string typeName, string methodName)
|
||||
{
|
||||
var type = FindType(typeName);
|
||||
var method = type?.GetMethod(methodName, BindingFlags.Public | BindingFlags.Static);
|
||||
method?.Invoke(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -14,12 +14,15 @@ namespace TH1_Logic.Hotfix
|
||||
public const string HotfixAssemblyFileName = HotfixAssemblyName + ".dll.bytes";
|
||||
public const string EntryTypeName = "TH1_Hotfix.HotfixEntry";
|
||||
public const string EntryMethodName = "Initialize";
|
||||
public const string RuntimeMainTypeName = "TH1_Logic.Core.Main";
|
||||
|
||||
public static readonly string[] AotMetadataAssemblyFileNames =
|
||||
{
|
||||
"mscorlib.dll.bytes",
|
||||
"System.dll.bytes",
|
||||
"System.Core.dll.bytes",
|
||||
"MemoryPack.dll.bytes",
|
||||
"System.Runtime.CompilerServices.Unsafe.dll.bytes",
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using YooAsset;
|
||||
|
||||
namespace TH1Resource
|
||||
@ -15,6 +16,17 @@ namespace TH1Resource
|
||||
public static bool IsInitialized => _initialized;
|
||||
public static ResourcePackage Package => _package;
|
||||
|
||||
public static SceneHandle LoadSceneAsync(string location, LoadSceneMode sceneMode)
|
||||
{
|
||||
if (!_initialized)
|
||||
{
|
||||
Debug.LogError($"[TH1.YooAsset] Resource package is not initialized. scene={location}");
|
||||
return null;
|
||||
}
|
||||
|
||||
return _package.LoadSceneAsync(location, sceneMode);
|
||||
}
|
||||
|
||||
public static IEnumerator InitializeCoroutine()
|
||||
{
|
||||
if (_initialized) yield break;
|
||||
17
Unity/Assets/Scripts/TH1_AOT/TH1.AOT.asmdef
Normal file
17
Unity/Assets/Scripts/TH1_AOT/TH1.AOT.asmdef
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "TH1.AOT",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"YooAsset",
|
||||
"HybridCLR.Runtime"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_AOT/TH1.AOT.asmdef.meta
Normal file
7
Unity/Assets/Scripts/TH1_AOT/TH1.AOT.asmdef.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab4e4de0ed124cf0aee8db4071c92f10
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Anim/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Anim/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_Anim/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/TH1_Anim/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b70422ed892f4b189769782820281a14
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Audio/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Audio/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_Audio/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/TH1_Audio/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 964fa597a4614fff93a17eaf44a996f2
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Config/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Config/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_Config/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/TH1_Config/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 30639365a9894917af7045b45f08a64c
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Core/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Core/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_Core/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/TH1_Core/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3efba60740ce4bb4bf3219655dd4f31a
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -13,7 +13,6 @@ using Logic.AI;
|
||||
using Logic.Audio;
|
||||
using Logic.Pool;
|
||||
using MemoryPack;
|
||||
using NUnit.Framework;
|
||||
using TH1_Core.Events;
|
||||
using TH1_Core.Managers;
|
||||
using TH1_Logic.Core;
|
||||
|
||||
3
Unity/Assets/Scripts/TH1_Data/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Data/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_Data/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/TH1_Data/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5bcd83c5b2774365af55ea2b2d94cb92
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00e597564a5842bb8c2ede1f7db2187d
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Unity/Assets/Scripts/TH1_Hotfix/Legacy.meta
Normal file
8
Unity/Assets/Scripts/TH1_Hotfix/Legacy.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc07a967c6a04f89a516b84fd378845d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,7 +1,25 @@
|
||||
{
|
||||
"name": "TH1.Hotfix",
|
||||
"rootNamespace": "TH1_Hotfix",
|
||||
"references": [],
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"TH1.AOT",
|
||||
"CrashSight.Runtime",
|
||||
"MemoryPack",
|
||||
"YooAsset",
|
||||
"Unity.TextMeshPro",
|
||||
"UnityEngine.UI",
|
||||
"Unity.Collections",
|
||||
"Unity.VisualScripting.Core",
|
||||
"Unity.VisualScripting.Flow",
|
||||
"Unity.VisualScripting.State",
|
||||
"Unity.RenderPipelines.Core.Runtime",
|
||||
"Unity.RenderPipelines.Universal.Runtime",
|
||||
"OPS.Obfuscator",
|
||||
"Animancer",
|
||||
"ParadoxNotion",
|
||||
"NodeCanvas",
|
||||
"com.rlabrecque.steamworks.net"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
|
||||
3
Unity/Assets/Scripts/TH1_Instance/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Instance/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_Instance/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/TH1_Instance/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6e400a8e09604d5fa428f785359291f7
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,16 +1,11 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Logic.Achievement;
|
||||
using Logic.Action;
|
||||
using NUnit.Framework.Constraints;
|
||||
using NUnit.Framework.Internal.Commands;
|
||||
using UnityEngine;
|
||||
using RuntimeData;
|
||||
using TH1_DataAssetsScript;
|
||||
using TH1_Logic.MatchConfig;
|
||||
using UnityEditor;
|
||||
|
||||
|
||||
public enum TerrainType { None,Land, ShallowSea, DeepSea } // 海陆层
|
||||
public enum TerrainFeature { None, Mountain,Road } // 地形层
|
||||
public enum Vegetation { None, Trees } // 植被层
|
||||
|
||||
3
Unity/Assets/Scripts/TH1_Logic/AI/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/AI/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
7
Unity/Assets/Scripts/TH1_Logic/AI/TH1.Hotfix.asmref.meta
Normal file
7
Unity/Assets/Scripts/TH1_Logic/AI/TH1.Hotfix.asmref.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34d97537cb1541f8ae27d255c5d3ecbc
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Logic/AITrain/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/AITrain/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d2ae4cde6abf41d5afd19d21acf5b44f
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -191,7 +191,7 @@ namespace Logic.Achievement
|
||||
_jsonData.Clear();
|
||||
foreach (var skill in Conditions)
|
||||
{
|
||||
_typeNames.Add(skill.GetType().AssemblyQualifiedName);
|
||||
_typeNames.Add(skill.GetType().AssemblyQualifiedName ?? skill.GetType().FullName);
|
||||
_jsonData.Add(JsonUtility.ToJson(skill));
|
||||
}
|
||||
}
|
||||
@ -200,12 +200,60 @@ namespace Logic.Achievement
|
||||
{
|
||||
Conditions ??= new List<AchievementConditionBase>();
|
||||
Conditions.Clear();
|
||||
for (int i = 0; i < _typeNames.Count; i++)
|
||||
if (_typeNames == null || _jsonData == null) return;
|
||||
|
||||
int count = Mathf.Min(_typeNames.Count, _jsonData.Count);
|
||||
if (_typeNames.Count != _jsonData.Count)
|
||||
{
|
||||
var type = Type.GetType(_typeNames[i]);
|
||||
var condition = (AchievementConditionBase) JsonUtility.FromJson(_jsonData[i], type);
|
||||
Debug.LogWarning($"[Achievement] Condition serialize data mismatch: typeCount={_typeNames.Count}, jsonCount={_jsonData.Count}");
|
||||
}
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
var type = ResolveConditionType(_typeNames[i]);
|
||||
if (type == null)
|
||||
{
|
||||
Debug.LogWarning($"[Achievement] Condition type not found: {_typeNames[i]}");
|
||||
continue;
|
||||
}
|
||||
|
||||
var condition = JsonUtility.FromJson(_jsonData[i], type) as AchievementConditionBase;
|
||||
if (condition == null)
|
||||
{
|
||||
Debug.LogWarning($"[Achievement] Condition deserialize failed: {_typeNames[i]}");
|
||||
continue;
|
||||
}
|
||||
|
||||
Conditions.Add(condition);
|
||||
}
|
||||
}
|
||||
|
||||
private static Type ResolveConditionType(string typeName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(typeName)) return null;
|
||||
|
||||
var type = Type.GetType(typeName);
|
||||
if (IsConditionType(type)) return type;
|
||||
|
||||
var commaIndex = typeName.IndexOf(',');
|
||||
var fullName = commaIndex >= 0 ? typeName.Substring(0, commaIndex).Trim() : typeName.Trim();
|
||||
if (string.IsNullOrEmpty(fullName)) return null;
|
||||
|
||||
type = typeof(AchievementConditionBase).Assembly.GetType(fullName);
|
||||
if (IsConditionType(type)) return type;
|
||||
|
||||
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
type = assembly.GetType(fullName);
|
||||
if (IsConditionType(type)) return type;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static bool IsConditionType(Type type)
|
||||
{
|
||||
return type != null && typeof(AchievementConditionBase).IsAssignableFrom(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f308aaecbee4cbaad35b6855ec73b22
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Logic/Action/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/Action/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72829ea0c1ae4bb491319cb79c4f2341
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -18,10 +18,6 @@ using TH1_Logic.Core;
|
||||
using UnityEngine;
|
||||
using TH1Renderer;
|
||||
using TH1Resource;
|
||||
using UnityEditor;
|
||||
using UnityEngineInternal;
|
||||
|
||||
|
||||
//这里是所有BuildAction派生子类的实现模块
|
||||
namespace Logic.Action
|
||||
{
|
||||
|
||||
3
Unity/Assets/Scripts/TH1_Logic/Chat/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/Chat/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 61750128795646a2959ca1fba7285ba2
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Logic/City/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/City/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d42ec8f556a04c1f8a9d1eec99cfa248
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Logic/Collect/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/Collect/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba0f4b5e19fe4b3492515ceb2237c0b8
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Logic/Comic/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/Comic/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8d86463838b4ec2a8fb8a48cc8f16d8
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Logic/Common/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/Common/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab413b584032463da16c10b4715b6107
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Unity/Assets/Scripts/TH1_Logic/Config/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/Config/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d6fdc205d074a949c20cfa4adde8140
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -36,6 +36,7 @@ using ConfigManager = TH1_Logic.Config.ConfigManager;
|
||||
|
||||
namespace TH1_Logic.Core
|
||||
{
|
||||
// Runtime entry loaded by the AOT bootstrap after TH1.Hotfix is available.
|
||||
public class Main : MonoBehaviour
|
||||
{
|
||||
public static Main Instance { get; private set; }
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c0a91e9c554c694791fbd5691165798
|
||||
guid: 15954ca405a64a7686069330ae6a5ead
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
3
Unity/Assets/Scripts/TH1_Logic/Core/TH1.Hotfix.asmref
Normal file
3
Unity/Assets/Scripts/TH1_Logic/Core/TH1.Hotfix.asmref
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c3af3e4457e4bf28cef75c98421e01f
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 833b8b95716946b5b40dfd9095cebc25
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"reference": "TH1.Hotfix"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a4fd02479fb64b53818bff9c317f67b5
|
||||
AssemblyDefinitionReferenceImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 成就 编辑器
|
||||
* @Date: 2025年04月22日 星期二 15:04:14
|
||||
@ -10,7 +10,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Logic.Achievement;
|
||||
using Logic.Multilingual;
|
||||
using NUnit.Framework;
|
||||
using RuntimeData;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* @Author: 白哉
|
||||
* @Description: 成就 编辑器
|
||||
* @Date: 2025年04月22日 星期二 15:04:14
|
||||
@ -11,7 +11,6 @@ using System.IO;
|
||||
using Logic.Achievement;
|
||||
using Logic.HeroTask;
|
||||
using Logic.Multilingual;
|
||||
using NUnit.Framework;
|
||||
using RuntimeData;
|
||||
using TH1_Logic.HeroTask;
|
||||
using UnityEditor;
|
||||
|
||||
@ -12,7 +12,7 @@ namespace TH1_Logic.Editor.HybridCLR
|
||||
{
|
||||
private const string HybridClrInstallerMenu = "HybridCLR/Installer...";
|
||||
private const string HybridClrGenerateAllMenu = "HybridCLR/Generate/All";
|
||||
private const string HybridClrCompileDllMenu = "HybridCLR/CompileDll/ActiveBuildTarget";
|
||||
public const long MinimumHotfixDllSize = 64 * 1024;
|
||||
|
||||
[MenuItem("Tools/TH1/iOS Migration/HybridCLR/1. Run HybridCLR Installer")]
|
||||
public static void RunHybridClrInstaller()
|
||||
@ -42,6 +42,8 @@ namespace TH1_Logic.Editor.HybridCLR
|
||||
AddStringToArrayField(settingsType, instance, "patchAOTAssemblies", "mscorlib");
|
||||
AddStringToArrayField(settingsType, instance, "patchAOTAssemblies", "System");
|
||||
AddStringToArrayField(settingsType, instance, "patchAOTAssemblies", "System.Core");
|
||||
AddStringToArrayField(settingsType, instance, "patchAOTAssemblies", "MemoryPack");
|
||||
AddStringToArrayField(settingsType, instance, "patchAOTAssemblies", "System.Runtime.CompilerServices.Unsafe");
|
||||
|
||||
settingsType.GetMethod("Save", BindingFlags.Public | BindingFlags.Static)?.Invoke(null, null);
|
||||
Debug.Log("[TH1.HybridCLR] Configured HybridCLRSettings for TH1.Hotfix.");
|
||||
@ -50,24 +52,36 @@ namespace TH1_Logic.Editor.HybridCLR
|
||||
[MenuItem("Tools/TH1/iOS Migration/HybridCLR/3. Generate All")]
|
||||
public static void GenerateAll()
|
||||
{
|
||||
ExecuteHybridClrMenu(HybridClrGenerateAllMenu);
|
||||
using (TH1MigrationBuildValidationGate.Suppress())
|
||||
{
|
||||
ExecuteHybridClrMenu(HybridClrGenerateAllMenu);
|
||||
}
|
||||
}
|
||||
|
||||
[MenuItem("Tools/TH1/iOS Migration/HybridCLR/4. Compile Hotfix Dll")]
|
||||
public static void CompileHotfixDll()
|
||||
{
|
||||
if (!ExecuteHybridClrMenu(HybridClrCompileDllMenu))
|
||||
{
|
||||
Debug.LogWarning("[TH1.HybridCLR] Compile menu was not found. Run HybridCLR/Generate/All or use the package CompileDll menu manually.");
|
||||
}
|
||||
TryCompileHotfixDll(EditorUserBuildSettings.development);
|
||||
}
|
||||
|
||||
[MenuItem("Tools/TH1/iOS Migration/HybridCLR/5. Copy Hotfix Artifacts To StreamingAssets")]
|
||||
public static void CopyHotfixArtifactsToStreamingAssets()
|
||||
{
|
||||
CopyHotfixDll();
|
||||
BuildAndCopyHotfixArtifacts(EditorUserBuildSettings.development);
|
||||
}
|
||||
|
||||
public static bool BuildAndCopyHotfixArtifacts(bool developmentBuild)
|
||||
{
|
||||
if (!TryCompileHotfixDll(developmentBuild))
|
||||
{
|
||||
Debug.LogError("[TH1.HybridCLR] Compile hotfix dll failed. Skip copying hotfix artifacts.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var copiedHotfixDll = CopyHotfixDll();
|
||||
CopyAotMetadataDlls();
|
||||
AssetDatabase.Refresh();
|
||||
return copiedHotfixDll;
|
||||
}
|
||||
|
||||
[MenuItem("Tools/TH1/iOS Migration/HybridCLR/6. Test Load StreamingAssets Hotfix In Editor")]
|
||||
@ -77,29 +91,67 @@ namespace TH1_Logic.Editor.HybridCLR
|
||||
Debug.Log($"[TH1.HybridCLR] Test load result: {loaded}, assembly: {HotfixBootstrap.LoadedAssemblyFullName}");
|
||||
}
|
||||
|
||||
private static void CopyHotfixDll()
|
||||
public static string GetHotfixDllSourcePath(BuildTarget buildTarget)
|
||||
{
|
||||
var buildTarget = EditorUserBuildSettings.activeBuildTarget.ToString();
|
||||
var source = Path.Combine("HybridCLRData", "HotUpdateDlls", buildTarget, HotfixManifest.HotfixAssemblyName + ".dll");
|
||||
if (!File.Exists(source))
|
||||
{
|
||||
source = Path.Combine("Library", "ScriptAssemblies", HotfixManifest.HotfixAssemblyName + ".dll");
|
||||
}
|
||||
return Path.Combine("HybridCLRData", "HotUpdateDlls", buildTarget.ToString(), HotfixManifest.HotfixAssemblyName + ".dll");
|
||||
}
|
||||
|
||||
var destination = Path.Combine(
|
||||
public static string GetStreamingHotfixDllPath()
|
||||
{
|
||||
return Path.Combine(
|
||||
Application.streamingAssetsPath,
|
||||
HotfixManifest.RootFolderName,
|
||||
HotfixManifest.HotfixDllFolderName,
|
||||
HotfixManifest.HotfixAssemblyFileName);
|
||||
}
|
||||
|
||||
CopyFile(source, destination, "hotfix dll");
|
||||
public static string GetAotMetadataSourceDir(BuildTarget buildTarget)
|
||||
{
|
||||
return Path.Combine("HybridCLRData", "AssembliesPostIl2CppStrip", buildTarget.ToString());
|
||||
}
|
||||
|
||||
public static string GetStreamingAotMetadataDir()
|
||||
{
|
||||
return Path.Combine(Application.streamingAssetsPath, HotfixManifest.RootFolderName, HotfixManifest.AotMetadataFolderName);
|
||||
}
|
||||
|
||||
public static bool IsUsableHotfixDll(string path, out string message)
|
||||
{
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
message = $"缺失: {path}";
|
||||
return false;
|
||||
}
|
||||
|
||||
var file = new FileInfo(path);
|
||||
if (file.Length < MinimumHotfixDllSize)
|
||||
{
|
||||
message = $"文件过小,通常表示还是旧的空壳 DLL({FormatBytes(file.Length)}): {path}";
|
||||
return false;
|
||||
}
|
||||
|
||||
message = $"OK({FormatBytes(file.Length)},{file.LastWriteTime:yyyy-MM-dd HH:mm:ss})";
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool CopyHotfixDll()
|
||||
{
|
||||
var source = GetHotfixDllSourcePath(EditorUserBuildSettings.activeBuildTarget);
|
||||
if (File.Exists(source) && new FileInfo(source).Length < MinimumHotfixDllSize)
|
||||
{
|
||||
Debug.LogError($"[TH1.HybridCLR] hotfix dll is too small and looks stale: {source}");
|
||||
return false;
|
||||
}
|
||||
|
||||
var destination = GetStreamingHotfixDllPath();
|
||||
|
||||
return CopyFile(source, destination, "hotfix dll");
|
||||
}
|
||||
|
||||
private static void CopyAotMetadataDlls()
|
||||
{
|
||||
var buildTarget = EditorUserBuildSettings.activeBuildTarget.ToString();
|
||||
var sourceDir = Path.Combine("HybridCLRData", "AssembliesPostIl2CppStrip", buildTarget);
|
||||
var destinationDir = Path.Combine(Application.streamingAssetsPath, HotfixManifest.RootFolderName, HotfixManifest.AotMetadataFolderName);
|
||||
var sourceDir = GetAotMetadataSourceDir(EditorUserBuildSettings.activeBuildTarget);
|
||||
var destinationDir = GetStreamingAotMetadataDir();
|
||||
|
||||
if (!Directory.Exists(sourceDir))
|
||||
{
|
||||
@ -134,17 +186,59 @@ namespace TH1_Logic.Editor.HybridCLR
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void CopyFile(string source, string destination, string label)
|
||||
private static bool CopyFile(string source, string destination, string label)
|
||||
{
|
||||
if (!File.Exists(source))
|
||||
{
|
||||
Debug.LogWarning($"[TH1.HybridCLR] {label} source missing: {source}");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(destination));
|
||||
File.Copy(source, destination, true);
|
||||
Debug.Log($"[TH1.HybridCLR] Copied {label}: {destination}");
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool TryCompileHotfixDll(bool developmentBuild)
|
||||
{
|
||||
var compileCommandType = FindType("HybridCLR.Editor.Commands.CompileDllCommand");
|
||||
if (compileCommandType == null)
|
||||
{
|
||||
Debug.LogWarning("[TH1.HybridCLR] CompileDllCommand was not found. Make sure the HybridCLR package has been resolved.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var compileMethod = compileCommandType.GetMethod(
|
||||
"CompileDll",
|
||||
BindingFlags.Public | BindingFlags.Static,
|
||||
null,
|
||||
new[] { typeof(BuildTarget), typeof(bool) },
|
||||
null);
|
||||
if (compileMethod == null)
|
||||
{
|
||||
Debug.LogWarning("[TH1.HybridCLR] CompileDll(BuildTarget, bool) was not found.");
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
compileMethod.Invoke(null, new object[] { EditorUserBuildSettings.activeBuildTarget, developmentBuild });
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
var root = e is TargetInvocationException && e.InnerException != null ? e.InnerException : e;
|
||||
Debug.LogError($"[TH1.HybridCLR] Compile hotfix dll failed:\n{root}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static string FormatBytes(long length)
|
||||
{
|
||||
if (length >= 1024 * 1024) return $"{length / 1024f / 1024f:F2} MB";
|
||||
if (length >= 1024) return $"{length / 1024f:F1} KB";
|
||||
return $"{length} B";
|
||||
}
|
||||
|
||||
private static Type FindType(string fullName)
|
||||
|
||||
@ -11,7 +11,6 @@ using System.IO;
|
||||
using Logic.Achievement;
|
||||
using Logic.HeroTask;
|
||||
using Logic.Multilingual;
|
||||
using NUnit.Framework;
|
||||
using RuntimeData;
|
||||
using TH1_Logic.HeroTask;
|
||||
using UnityEditor;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user