This commit is contained in:
2026-10-14 19:39:24 +08:00
parent 4fd5a3bd45
commit 8498afd5cf
202 changed files with 12624 additions and 236 deletions
@@ -1,211 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Linq;
using System.IO;
using System.Threading.Tasks;
/// <summary>
/// 保存需要烘焙的动画的相关数据
/// </summary>
public struct AnimData
{
#region 字段
public int vertexCount;
public int mapWidth;
public List<AnimationState> animClips;
public string name;
private Animation animation;
private SkinnedMeshRenderer skin;
#endregion
public AnimData(Animation anim, SkinnedMeshRenderer smr, string goName)
{
vertexCount = smr.sharedMesh.vertexCount;
mapWidth = Mathf.NextPowerOfTwo(vertexCount);
animClips = new List<AnimationState>(anim.Cast<AnimationState>());
animation = anim;
skin = smr;
name = goName;
}
#region 方法
public void AnimationPlay(string animName)
{
this.animation.Play(animName);
}
public void SampleAnimAndBakeMesh(ref Mesh m)
{
this.SampleAnim();
this.BakeMesh(ref m);
}
private void SampleAnim()
{
if (this.animation == null)
{
Debug.LogError("animation is null!!");
return;
}
this.animation.Sample();
}
private void BakeMesh(ref Mesh m)
{
if (this.skin == null)
{
Debug.LogError("skin is null!!");
return;
}
this.skin.BakeMesh(m);
}
#endregion
}
/// <summary>
/// 烘焙后的数据
/// </summary>
public struct BakedData
{
#region 字段
public string name;
public float animLen;
public byte[] rawAnimMap;
public int animMapWidth;
public int animMapHeight;
#endregion
public BakedData(string name, float animLen, Texture2D animMap)
{
this.name = name;
this.animLen = animLen;
this.animMapHeight = animMap.height;
this.animMapWidth = animMap.width;
this.rawAnimMap = animMap.GetRawTextureData();
}
}
/// <summary>
/// 烘焙器
/// </summary>
public class AnimMapBaker{
#region 字段
private AnimData? animData = null;
private List<Vector3> vertices = new List<Vector3>();
private Mesh bakedMesh;
private List<BakedData> bakedDataList = new List<BakedData>();
#endregion
#region 方法
public void SetAnimData(GameObject go)
{
if(go == null)
{
Debug.LogError("go is null!!");
return;
}
Animation anim = go.GetComponent<Animation>();
SkinnedMeshRenderer smr = go.GetComponentInChildren<SkinnedMeshRenderer>();
if(anim == null || smr == null)
{
Debug.LogError("anim or smr is null!!");
return;
}
this.bakedMesh = new Mesh();
this.animData = new AnimData(anim, smr, go.name);
}
int animNum;
public List<BakedData> Bake()
{
if(this.animData == null)
{
Debug.LogError("bake data is null!!");
return this.bakedDataList;
}
//每一个动作都生成一个动作图
for(int i = 0; i < this.animData.Value.animClips.Count; i++)
{
animNum = i;
if (!this.animData.Value.animClips[i].clip.legacy)
{
Debug.LogError(string.Format("{0} is not legacy!!", this.animData.Value.animClips[i].clip.name));
continue;
}
BakePerAnimClip(this.animData.Value.animClips[i]);
}
return this.bakedDataList;
}
private void BakePerAnimClip(AnimationState curAnim)
{
int curClipFrame = 0;
float sampleTime = 0;
float perFrameTime = 0;
curClipFrame = Mathf.ClosestPowerOfTwo((int)(curAnim.clip.frameRate * curAnim.length));
perFrameTime = curAnim.length / curClipFrame; ;
Texture2D animMap = new Texture2D(this.animData.Value.mapWidth, curClipFrame, TextureFormat.RGBAHalf, false);
animMap.name = string.Format("{0}_{1}.animMap", this.animData.Value.name, curAnim.name);
this.animData.Value.AnimationPlay(curAnim.name);
for (int i = 0; i < curClipFrame; i++)
{
//EditorUtility.DisplayCancelableProgressBar("转换进度", $"正在处理第 {i}/{curClipFrame} 步", (float)i / curClipFrame);
curAnim.time = sampleTime;
this.animData.Value.SampleAnimAndBakeMesh(ref this.bakedMesh);
for(int j = 0; j < this.bakedMesh.vertexCount; j++)
{
//EditorUtility.DisplayCancelableProgressBar("转换进度", $"正在处理第 {i}/{curClipFrame} 步 {j}/{bakedMesh.vertexCount}点", (float)i / curClipFrame);
Vector3 vertex = this.bakedMesh.vertices[j];
animMap.SetPixel(j, i, new Color(vertex.x, vertex.y, vertex.z));
}
sampleTime += perFrameTime;
}
//EditorUtility.ClearProgressBar();
animMap.Apply();
Debug.Log($"{animNum}/{animData.Value.animClips.Count-1}");
if (animNum== animData.Value.animClips.Count - 1)
{
Debug.Log("转换完成");
}
this.bakedDataList.Add(new BakedData(animMap.name, curAnim.clip.length, animMap));
}
#endregion
#region 属性
#endregion
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5a520c4e76d2b814486e83f26b6b7b30
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 27e65cf569bb5db478bbd584339f4230
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: e9893f638b60a9149a7acc8142615fce
timeCreated: 1501134718
licenseType: Free
guid: bc99c8d1831cf6d48a23fc9aaf665c8c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
+498
View File
@@ -0,0 +1,498 @@
<?xml version="1.0" encoding="utf-8"?>
<linker>
<assembly fullname="CameraShake">
<type fullname="CameraShake.CameraShakePresets" preserve="all" />
<type fullname="CameraShake.CameraShaker" preserve="all" />
</assembly>
<assembly fullname="DOTween">
<type fullname="DG.Tweening.AxisConstraint" preserve="all" />
<type fullname="DG.Tweening.Core.DOGetter`1" preserve="all" />
<type fullname="DG.Tweening.Core.DOSetter`1" preserve="all" />
<type fullname="DG.Tweening.Core.DOTweenExternalCommand" preserve="all" />
<type fullname="DG.Tweening.Core.Debugger" preserve="all" />
<type fullname="DG.Tweening.Core.Enums.SpecialStartupMode" preserve="all" />
<type fullname="DG.Tweening.Core.Extensions" preserve="all" />
<type fullname="DG.Tweening.Core.TweenerCore`3" preserve="all" />
<type fullname="DG.Tweening.DOTween" preserve="all" />
<type fullname="DG.Tweening.DOVirtual" preserve="all" />
<type fullname="DG.Tweening.Ease" preserve="all" />
<type fullname="DG.Tweening.LoopType" preserve="all" />
<type fullname="DG.Tweening.PathMode" preserve="all" />
<type fullname="DG.Tweening.PathType" preserve="all" />
<type fullname="DG.Tweening.Plugins.CircleOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.CirclePlugin" preserve="all" />
<type fullname="DG.Tweening.Plugins.Core.ABSTweenPlugin`3" preserve="all" />
<type fullname="DG.Tweening.Plugins.Core.PathCore.Path" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.ColorOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.FloatOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.NoOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.PathOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.QuaternionOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.StringOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.Vector3ArrayOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.Options.VectorOptions" preserve="all" />
<type fullname="DG.Tweening.Plugins.PathPlugin" preserve="all" />
<type fullname="DG.Tweening.RotateMode" preserve="all" />
<type fullname="DG.Tweening.ScrambleMode" preserve="all" />
<type fullname="DG.Tweening.Sequence" preserve="all" />
<type fullname="DG.Tweening.ShakeRandomnessMode" preserve="all" />
<type fullname="DG.Tweening.ShortcutExtensions" preserve="all" />
<type fullname="DG.Tweening.Tween" preserve="all" />
<type fullname="DG.Tweening.TweenCallback" preserve="all" />
<type fullname="DG.Tweening.TweenExtensions" preserve="all" />
<type fullname="DG.Tweening.TweenSettingsExtensions" preserve="all" />
<type fullname="DG.Tweening.Tweener" preserve="all" />
<type fullname="DG.Tweening.UpdateType" preserve="all" />
</assembly>
<assembly fullname="ImageCropper.Runtime">
<type fullname="ImageCropper" preserve="all" />
<type fullname="ImageCropper/CropResult" preserve="all" />
<type fullname="ImageCropper/ImageResizePolicy" preserve="all" />
<type fullname="ImageCropper/Settings" preserve="all" />
</assembly>
<assembly fullname="NativeCamera.Runtime">
<type fullname="NativeCamera" preserve="all" />
<type fullname="NativeCamera/CameraCallback" preserve="all" />
<type fullname="NativeCamera/PreferredCamera" preserve="all" />
</assembly>
<assembly fullname="NativeGallery.Runtime">
<type fullname="NativeGallery" preserve="all" />
<type fullname="NativeGallery/MediaPickCallback" preserve="all" />
</assembly>
<assembly fullname="Newtonsoft.Json">
<type fullname="Newtonsoft.Json.Formatting" preserve="all" />
<type fullname="Newtonsoft.Json.JsonConvert" preserve="all" />
<type fullname="Newtonsoft.Json.JsonConverter" preserve="all" />
<type fullname="Newtonsoft.Json.JsonReader" preserve="all" />
<type fullname="Newtonsoft.Json.JsonTextReader" preserve="all" />
<type fullname="Newtonsoft.Json.JsonToken" preserve="all" />
<type fullname="Newtonsoft.Json.Linq.Extensions" preserve="all" />
<type fullname="Newtonsoft.Json.Linq.JArray" preserve="all" />
<type fullname="Newtonsoft.Json.Linq.JObject" preserve="all" />
<type fullname="Newtonsoft.Json.Linq.JToken" preserve="all" />
<type fullname="Newtonsoft.Json.Linq.JTokenType" preserve="all" />
</assembly>
<assembly fullname="Unity.Addressables">
<type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
<type fullname="UnityEngine.AddressableAssets.Addressables/MergeMode" preserve="all" />
</assembly>
<assembly fullname="Unity.Burst">
<type fullname="Unity.Burst.BurstCompileAttribute" preserve="all" />
</assembly>
<assembly fullname="Unity.InputSystem">
<type fullname="UnityEngine.InputSystem.Controls.AnyKeyControl" preserve="all" />
<type fullname="UnityEngine.InputSystem.Controls.ButtonControl" preserve="all" />
<type fullname="UnityEngine.InputSystem.Controls.DeltaControl" preserve="all" />
<type fullname="UnityEngine.InputSystem.Controls.KeyControl" preserve="all" />
<type fullname="UnityEngine.InputSystem.Controls.TouchControl" preserve="all" />
<type fullname="UnityEngine.InputSystem.Controls.TouchPressControl" preserve="all" />
<type fullname="UnityEngine.InputSystem.Controls.Vector2Control" preserve="all" />
<type fullname="UnityEngine.InputSystem.InputControl`1" preserve="all" />
<type fullname="UnityEngine.InputSystem.Keyboard" preserve="all" />
<type fullname="UnityEngine.InputSystem.Mouse" preserve="all" />
<type fullname="UnityEngine.InputSystem.Pointer" preserve="all" />
<type fullname="UnityEngine.InputSystem.Touchscreen" preserve="all" />
</assembly>
<assembly fullname="Unity.RenderPipelines.Universal.Runtime">
<type fullname="UnityEngine.Rendering.Universal.CameraExtensions" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.UniversalAdditionalCameraData" preserve="all" />
</assembly>
<assembly fullname="Unity.ResourceManager">
<type fullname="UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationStatus" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceLocations.IResourceLocation" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneInstance" preserve="all" />
</assembly>
<assembly fullname="Unity.TextMeshPro">
<type fullname="TMPro.FontStyles" preserve="all" />
<type fullname="TMPro.TMP_Dropdown" preserve="all" />
<type fullname="TMPro.TMP_Dropdown/DropdownEvent" preserve="all" />
<type fullname="TMPro.TMP_Dropdown/OptionData" preserve="all" />
<type fullname="TMPro.TMP_FontAsset" preserve="all" />
<type fullname="TMPro.TMP_InputField" preserve="all" />
<type fullname="TMPro.TMP_InputField/ContentType" preserve="all" />
<type fullname="TMPro.TMP_InputField/OnChangeEvent" preserve="all" />
<type fullname="TMPro.TMP_Settings" preserve="all" />
<type fullname="TMPro.TMP_SpriteAsset" preserve="all" />
<type fullname="TMPro.TMP_Text" preserve="all" />
<type fullname="TMPro.TextAlignmentOptions" preserve="all" />
<type fullname="TMPro.TextMeshProUGUI" preserve="all" />
</assembly>
<assembly fullname="Unity.Timeline">
<type fullname="UnityEngine.Timeline.TimelineAsset" preserve="all" />
<type fullname="UnityEngine.Timeline.TimelineAsset/EditorSettings" 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" />
<type fullname="UnityEngine.AnimatorControllerParameter" preserve="all" />
<type fullname="UnityEngine.AnimatorControllerParameterType" preserve="all" />
<type fullname="UnityEngine.AnimatorStateInfo" preserve="all" />
<type fullname="UnityEngine.RuntimeAnimatorController" preserve="all" />
<type fullname="UnityEngine.StateMachineBehaviour" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.AssetBundleModule">
<type fullname="UnityEngine.AssetBundle" preserve="all" />
<type fullname="UnityEngine.AssetBundleManifest" preserve="all" />
<type fullname="UnityEngine.AssetBundleRequest" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.AudioModule">
<type fullname="UnityEngine.Audio.AudioMixer" preserve="all" />
<type fullname="UnityEngine.Audio.AudioMixerGroup" preserve="all" />
<type fullname="UnityEngine.AudioClip" preserve="all" />
<type fullname="UnityEngine.AudioSource" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.CoreModule">
<type fullname="Unity.Collections.Allocator" preserve="all" />
<type fullname="Unity.Collections.NativeArrayOptions" preserve="all" />
<type fullname="Unity.Collections.NativeArray`1" preserve="all" />
<type fullname="Unity.Collections.ReadOnlyAttribute" preserve="all" />
<type fullname="Unity.Jobs.IJob" preserve="all" />
<type fullname="UnityEngine.AddComponentMenu" preserve="all" />
<type fullname="UnityEngine.Application" preserve="all" />
<type fullname="UnityEngine.Application/LogCallback" 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.ColorUtility" preserve="all" />
<type fullname="UnityEngine.Component" preserve="all" />
<type fullname="UnityEngine.Coroutine" preserve="all" />
<type fullname="UnityEngine.CreateAssetMenuAttribute" preserve="all" />
<type fullname="UnityEngine.CustomYieldInstruction" 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.FilterMode" preserve="all" />
<type fullname="UnityEngine.GL" preserve="all" />
<type fullname="UnityEngine.GameObject" preserve="all" />
<type fullname="UnityEngine.Gradient" preserve="all" />
<type fullname="UnityEngine.GradientColorKey" preserve="all" />
<type fullname="UnityEngine.Graphics" preserve="all" />
<type fullname="UnityEngine.HeaderAttribute" preserve="all" />
<type fullname="UnityEngine.HideInInspector" preserve="all" />
<type fullname="UnityEngine.Internal.DefaultValueAttribute" preserve="all" />
<type fullname="UnityEngine.KeyCode" preserve="all" />
<type fullname="UnityEngine.LayerMask" preserve="all" />
<type fullname="UnityEngine.LineRenderer" preserve="all" />
<type fullname="UnityEngine.LogType" preserve="all" />
<type fullname="UnityEngine.Material" preserve="all" />
<type fullname="UnityEngine.Mathf" preserve="all" />
<type fullname="UnityEngine.MeshRenderer" preserve="all" />
<type fullname="UnityEngine.MonoBehaviour" preserve="all" />
<type fullname="UnityEngine.Object" preserve="all" />
<type fullname="UnityEngine.Playables.Playable" preserve="all" />
<type fullname="UnityEngine.Playables.PlayableAsset" preserve="all" />
<type fullname="UnityEngine.Playables.PlayableExtensions" preserve="all" />
<type fullname="UnityEngine.Playables.PlayableGraph" preserve="all" />
<type fullname="UnityEngine.PlayerPrefs" preserve="all" />
<type fullname="UnityEngine.Profiling.Profiler" preserve="all" />
<type fullname="UnityEngine.QualitySettings" preserve="all" />
<type fullname="UnityEngine.Quaternion" preserve="all" />
<type fullname="UnityEngine.Random" preserve="all" />
<type fullname="UnityEngine.RangeAttribute" 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.RenderTexture" preserve="all" />
<type fullname="UnityEngine.RenderTextureFormat" preserve="all" />
<type fullname="UnityEngine.Renderer" preserve="all" />
<type fullname="UnityEngine.RequireComponent" preserve="all" />
<type fullname="UnityEngine.ResourceRequest" preserve="all" />
<type fullname="UnityEngine.Resources" preserve="all" />
<type fullname="UnityEngine.RuntimeInitializeLoadType" preserve="all" />
<type fullname="UnityEngine.RuntimeInitializeOnLoadMethodAttribute" preserve="all" />
<type fullname="UnityEngine.SceneManagement.LoadSceneMode" 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.ScreenOrientation" preserve="all" />
<type fullname="UnityEngine.ScriptableObject" preserve="all" />
<type fullname="UnityEngine.Scripting.PreserveAttribute" preserve="all" />
<type fullname="UnityEngine.Serialization.FormerlySerializedAsAttribute" preserve="all" />
<type fullname="UnityEngine.SerializeField" preserve="all" />
<type fullname="UnityEngine.Shader" preserve="all" />
<type fullname="UnityEngine.Space" preserve="all" />
<type fullname="UnityEngine.SpaceAttribute" preserve="all" />
<type fullname="UnityEngine.Sprite" preserve="all" />
<type fullname="UnityEngine.SpriteRenderer" preserve="all" />
<type fullname="UnityEngine.TextAreaAttribute" 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.TextureWrapMode" preserve="all" />
<type fullname="UnityEngine.Time" preserve="all" />
<type fullname="UnityEngine.TooltipAttribute" preserve="all" />
<type fullname="UnityEngine.Transform" preserve="all" />
<type fullname="UnityEngine.U2D.SpriteAtlas" 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.WaitForSeconds" preserve="all" />
<type fullname="UnityEngine.WaitForSecondsRealtime" preserve="all" />
<type fullname="UnityEngine.WaitUntil" preserve="all" />
<type fullname="UnityEngine.YieldInstruction" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.DirectorModule">
<type fullname="UnityEngine.Playables.PlayableDirector" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.IMGUIModule">
<type fullname="UnityEngine.GUI" preserve="all" />
<type fullname="UnityEngine.GUISkin" preserve="all" />
<type fullname="UnityEngine.GUIStyle" preserve="all" />
<type fullname="UnityEngine.GUIStyleState" preserve="all" />
<type fullname="UnityEngine.GUIUtility" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.InputLegacyModule">
<type fullname="UnityEngine.Input" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.ParticleSystemModule">
<type fullname="UnityEngine.ParticleSystem" preserve="all" />
<type fullname="UnityEngine.ParticleSystem/MainModule" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.Physics2DModule">
<type fullname="UnityEngine.CircleCollider2D" preserve="all" />
<type fullname="UnityEngine.Collider2D" preserve="all" />
<type fullname="UnityEngine.Collision2D" preserve="all" />
<type fullname="UnityEngine.Physics2D" preserve="all" />
<type fullname="UnityEngine.RaycastHit2D" preserve="all" />
<type fullname="UnityEngine.Rigidbody2D" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.PhysicsModule">
<type fullname="UnityEngine.Rigidbody" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.TextRenderingModule">
<type fullname="UnityEngine.FontStyle" preserve="all" />
<type fullname="UnityEngine.TextAnchor" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.UI">
<type fullname="UnityEngine.EventSystems.EventSystem" preserve="all" />
<type fullname="UnityEngine.EventSystems.IDragHandler" 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.IPointerUpHandler" preserve="all" />
<type fullname="UnityEngine.EventSystems.PointerEventData" preserve="all" />
<type fullname="UnityEngine.EventSystems.PointerEventData/InputButton" preserve="all" />
<type fullname="UnityEngine.EventSystems.RaycastResult" preserve="all" />
<type fullname="UnityEngine.UI.Button" preserve="all" />
<type fullname="UnityEngine.UI.Button/ButtonClickedEvent" preserve="all" />
<type fullname="UnityEngine.UI.Graphic" preserve="all" />
<type fullname="UnityEngine.UI.GridLayoutGroup" preserve="all" />
<type fullname="UnityEngine.UI.Image" preserve="all" />
<type fullname="UnityEngine.UI.Image/Type" 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.Mask" preserve="all" />
<type fullname="UnityEngine.UI.Outline" preserve="all" />
<type fullname="UnityEngine.UI.RawImage" preserve="all" />
<type fullname="UnityEngine.UI.ScrollRect" preserve="all" />
<type fullname="UnityEngine.UI.ScrollRect/ScrollRectEvent" preserve="all" />
<type fullname="UnityEngine.UI.Selectable" preserve="all" />
<type fullname="UnityEngine.UI.Selectable/Transition" preserve="all" />
<type fullname="UnityEngine.UI.Shadow" 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.ToggleGroup" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.UIModule">
<type fullname="UnityEngine.Canvas" preserve="all" />
<type fullname="UnityEngine.CanvasGroup" 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="UnityEngine.UnityWebRequestTextureModule">
<type fullname="UnityEngine.Networking.DownloadHandlerTexture" preserve="all" />
<type fullname="UnityEngine.Networking.UnityWebRequestTexture" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.VideoModule">
<type fullname="UnityEngine.Video.VideoClip" preserve="all" />
<type fullname="UnityEngine.Video.VideoPlayer" preserve="all" />
<type fullname="UnityEngine.Video.VideoPlayer/EventHandler" preserve="all" />
</assembly>
<assembly fullname="com.Tivadar.Best.HTTP">
<type fullname="Best.HTTP.HTTPRequest" preserve="all" />
<type fullname="Best.HTTP.Request.Settings.RedirectSettings" preserve="all" />
</assembly>
<assembly fullname="com.Tivadar.Best.WebSockets">
<type fullname="Best.WebSockets.Implementations.OnWebSocketClosedDelegate" preserve="all" />
<type fullname="Best.WebSockets.Implementations.OnWebSocketMessageDelegate" preserve="all" />
<type fullname="Best.WebSockets.Implementations.OnWebSocketOpenDelegate" preserve="all" />
<type fullname="Best.WebSockets.WebSocket" preserve="all" />
<type fullname="Best.WebSockets.WebSocketStatusCodes" preserve="all" />
</assembly>
<assembly fullname="netstandard">
<type fullname="System.Action" preserve="all" />
<type fullname="System.Action`1" preserve="all" />
<type fullname="System.Action`2" preserve="all" />
<type fullname="System.Action`3" preserve="all" />
<type fullname="System.Action`4" preserve="all" />
<type fullname="System.Activator" preserve="all" />
<type fullname="System.AppDomain" preserve="all" />
<type fullname="System.Array" preserve="all" />
<type fullname="System.AsyncCallback" preserve="all" />
<type fullname="System.Boolean" preserve="all" />
<type fullname="System.Byte" preserve="all" />
<type fullname="System.Char" preserve="all" />
<type fullname="System.CodeDom.Compiler.GeneratedCodeAttribute" 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.HashSet`1" preserve="all" />
<type fullname="System.Collections.Generic.HashSet`1/Enumerator" preserve="all" />
<type fullname="System.Collections.Generic.ICollection`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.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.Generic.Queue`1" preserve="all" />
<type fullname="System.Collections.IEnumerable" preserve="all" />
<type fullname="System.Collections.IEnumerator" preserve="all" />
<type fullname="System.Comparison`1" preserve="all" />
<type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
<type fullname="System.ComponentModel.EditorBrowsableState" 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.Delegate" preserve="all" />
<type fullname="System.Diagnostics.ConditionalAttribute" preserve="all" />
<type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
<type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
<type fullname="System.Diagnostics.DebuggerHiddenAttribute" preserve="all" />
<type fullname="System.Diagnostics.StackTrace" preserve="all" />
<type fullname="System.Diagnostics.Stopwatch" preserve="all" />
<type fullname="System.Double" preserve="all" />
<type fullname="System.Enum" preserve="all" />
<type fullname="System.Environment" preserve="all" />
<type fullname="System.Exception" preserve="all" />
<type fullname="System.Func`1" preserve="all" />
<type fullname="System.Func`2" preserve="all" />
<type fullname="System.GC" preserve="all" />
<type fullname="System.Globalization.CultureInfo" preserve="all" />
<type fullname="System.Globalization.DateTimeStyles" preserve="all" />
<type fullname="System.Globalization.NumberStyles" preserve="all" />
<type fullname="System.Guid" preserve="all" />
<type fullname="System.IAsyncResult" preserve="all" />
<type fullname="System.IDisposable" preserve="all" />
<type fullname="System.IFormatProvider" preserve="all" />
<type fullname="System.IO.Directory" preserve="all" />
<type fullname="System.IO.DirectoryInfo" preserve="all" />
<type fullname="System.IO.File" preserve="all" />
<type fullname="System.IO.FileInfo" preserve="all" />
<type fullname="System.IO.FileSystemInfo" preserve="all" />
<type fullname="System.IO.Path" preserve="all" />
<type fullname="System.IO.StreamWriter" preserve="all" />
<type fullname="System.IO.StringReader" preserve="all" />
<type fullname="System.IO.TextReader" preserve="all" />
<type fullname="System.IO.TextWriter" preserve="all" />
<type fullname="System.Int32" preserve="all" />
<type fullname="System.Int64" preserve="all" />
<type fullname="System.Linq.Enumerable" preserve="all" />
<type fullname="System.Linq.IOrderedEnumerable`1" preserve="all" />
<type fullname="System.Math" 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.Reflection.Assembly" preserve="all" />
<type fullname="System.Reflection.BindingFlags" 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.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.AsyncVoidMethodBuilder" preserve="all" />
<type fullname="System.Runtime.CompilerServices.CompilationRelaxationsAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.CompilerGeneratedAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.ExtensionAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.IAsyncStateMachine" preserve="all" />
<type fullname="System.Runtime.CompilerServices.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" 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.RuntimeFieldHandle" preserve="all" />
<type fullname="System.RuntimeTypeHandle" preserve="all" />
<type fullname="System.Security.Cryptography.HashAlgorithm" preserve="all" />
<type fullname="System.Security.Cryptography.MD5" preserve="all" />
<type fullname="System.Security.Permissions.SecurityAction" preserve="all" />
<type fullname="System.Security.Permissions.SecurityPermissionAttribute" preserve="all" />
<type fullname="System.Security.UnverifiableCodeAttribute" preserve="all" />
<type fullname="System.Single" 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.RegularExpressions.Regex" preserve="all" />
<type fullname="System.Text.StringBuilder" preserve="all" />
<type fullname="System.ThreadStaticAttribute" preserve="all" />
<type fullname="System.Threading.Interlocked" preserve="all" />
<type fullname="System.Threading.Tasks.Task" preserve="all" />
<type fullname="System.Threading.Tasks.TaskCompletionSource`1" preserve="all" />
<type fullname="System.Threading.Tasks.Task`1" preserve="all" />
<type fullname="System.TimeSpan" preserve="all" />
<type fullname="System.Type" preserve="all" />
<type fullname="System.Uri" preserve="all" />
<type fullname="System.ValueTuple`2" preserve="all" />
<type fullname="System.ValueTuple`3" preserve="all" />
<type fullname="System.ValueTuple`4" preserve="all" />
<type fullname="System.ValueType" preserve="all" />
</assembly>
<assembly fullname="spine-unity">
<type fullname="Spine.Animation" preserve="all" />
<type fullname="Spine.AnimationState" preserve="all" />
<type fullname="Spine.AnimationState/TrackEntryDelegate" preserve="all" />
<type fullname="Spine.ExposedList`1" preserve="all" />
<type fullname="Spine.ExposedList`1/Enumerator" preserve="all" />
<type fullname="Spine.Skeleton" preserve="all" />
<type fullname="Spine.SkeletonData" preserve="all" />
<type fullname="Spine.TrackEntry" preserve="all" />
<type fullname="Spine.Unity.SkeletonAnimation" preserve="all" />
<type fullname="Spine.Unity.SkeletonDataAsset" preserve="all" />
<type fullname="Spine.Unity.SkeletonGraphic" preserve="all" />
<type fullname="Spine.Unity.SkeletonRenderer" preserve="all" />
</assembly>
</linker>
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0f2cf985383b7f94589c4db60b3bc706
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 19ba47a8176de8848b82c3da8df85e8e
guid: 9b5a024b5076b4e48bf76a9036590c0b
folderAsset: yes
DefaultImporter:
externalObjects: {}
@@ -17,24 +17,26 @@ public static class AAResourceManager
/// </summary>
/// <typeparam name="T">资源类型 (例如 GameObject, AudioClip, Sprite, SkeletonDataAsset)</typeparam>
/// <param name="label">Addressables 标签,用于筛选资源</param>
/// <param name="gameTypeLabel">玩法标签(由调用方/游戏侧传入,框架层不反向依赖游戏层)</param>
/// <param name="mappingDic">映射字典 (资源名 → ID),用于将资源绑定到唯一 ID</param>
/// <param name="targetDic">目标字典 (ID → 资源),存放加载后的资源</param>
/// <param name="onLoaded">可选回调,在资源加载完成时执行 (例如绑定对象池)</param>
/// <remarks>
/// - 使用 Addressables.LoadAssetsAsync 按标签和游戏类型加载资源
/// - 使用 Addressables.LoadAssetsAsync 按标签和玩法标签加载资源
/// - 将资源存入 targetDic,键为映射字典中的 ID
/// - 可选执行 onLoaded 回调,例如 Prefab 加入对象池
/// - 最后释放 handle,避免内存泄漏
/// </remarks>
public static async Task LoadAssets<T>(
string label,
string gameTypeLabel,
Dictionary<string, int> mappingDic,
Dictionary<int, T> targetDic,
Action<T, int> onLoaded = null)
where T : UnityEngine.Object
{
// 构建 keys:标签 + 当前游戏类型
var keys = new List<string> { label, GameManager.Instance.gameData.currGameType.ToString() };
// 构建 keys:标签 + 玩法标签
var keys = new List<string> { label, gameTypeLabel };
// 异步加载资源
var handle = Addressables.LoadAssetsAsync<T>(keys, asset =>
@@ -58,6 +60,7 @@ public static class AAResourceManager
/// </summary>
/// <typeparam name="T">资源类型 (例如 GameObject, AudioClip, Sprite, SkeletonDataAsset)</typeparam>
/// <param name="label">Addressables 标签,用于筛选资源</param>
/// <param name="gameTypeLabel">玩法标签(由调用方/游戏侧传入,框架层不反向依赖游戏层)</param>
/// <param name="mappingDic">映射字典 (资源名 → ID),用于查找对应 ID</param>
/// <param name="targetDic">目标字典 (ID → 资源),存放已加载的资源</param>
/// <remarks>
@@ -67,12 +70,13 @@ public static class AAResourceManager
/// </remarks>
public static async Task UnloadAssets<T>(
string label,
string gameTypeLabel,
Dictionary<string, int> mappingDic,
Dictionary<int, T> targetDic)
where T : UnityEngine.Object
{
// 构建 keys:标签 + 当前游戏类型
var keys = new List<string> { label, GameManager.Instance.gameData.currGameType.ToString() };
// 构建 keys:标签 + 玩法标签
var keys = new List<string> { label, gameTypeLabel };
// 异步加载资源列表(仅用于获取引用)
var handle = Addressables.LoadAssetsAsync<T>(keys, null, MergeMode.Intersection);
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4f7ac6af63e83c94fbc2268aaafb8658
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,27 @@
{
"name": "Game.Hotfix.Editor.StaticTool",
"rootNamespace": "",
"references": [
"Game.Hotfix",
"CameraShake",
"spine-unity",
"Coffee.UIParticle",
"Unity.Addressables",
"Unity.ResourceManager",
"Unity.TextMeshPro",
"UnityEngine.UI",
"Unity.InputSystem",
"Unity.VisualScripting.Core"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": true,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": false,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: eb2d3645caea19c4e90cbf31b9c8afa0
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,27 @@
{
"name": "Game.Hotfix.Editor.AnimMapBaker",
"rootNamespace": "",
"references": [
"Game.Hotfix",
"CameraShake",
"spine-unity",
"Coffee.UIParticle",
"Unity.Addressables",
"Unity.ResourceManager",
"Unity.TextMeshPro",
"UnityEngine.UI",
"Unity.InputSystem",
"Unity.VisualScripting.Core"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": true,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": false,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9dc34cc9588f7c04d887b97a4747f393
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More