From 8ede4c7faa4428736b491b114233a097d672c98d Mon Sep 17 00:00:00 2001 From: Alex-Rachel <574809918@qq.com> Date: Mon, 17 Mar 2025 18:28:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0DisStripCode=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E8=A3=81=E5=89=AA=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Launcher/Scripts/DisStripCode.cs | 55 +++++++++++++++++++ .../Launcher/Scripts/DisStripCode.cs.meta | 11 ++++ .../TEngine/Settings/Prefab/GameEntry.prefab | 45 +++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 UnityProject/Assets/Launcher/Scripts/DisStripCode.cs create mode 100644 UnityProject/Assets/Launcher/Scripts/DisStripCode.cs.meta diff --git a/UnityProject/Assets/Launcher/Scripts/DisStripCode.cs b/UnityProject/Assets/Launcher/Scripts/DisStripCode.cs new file mode 100644 index 00000000..fa69229c --- /dev/null +++ b/UnityProject/Assets/Launcher/Scripts/DisStripCode.cs @@ -0,0 +1,55 @@ +using UnityEngine; +using UnityEngine.Scripting; + +/// +/// 防止裁剪引用。 +/// 如果在主工程无引用,link.xml的防裁剪也无效。 +/// 最好是AOT显示保留引用,Preserve有可能还会裁成员变量。 +/// +[Preserve] +public class DisStripCode : MonoBehaviour +{ + private void Awake() + { + //UnityEngine.Physics + RegisterType(); + RegisterType(); + RegisterType(); + RegisterType(); + RegisterType(); + + RegisterType(); + RegisterType(); + + RegisterType(); + RegisterType(); + + //UnityEngine.Graphics + RegisterType(); + RegisterType(); + + //UnityEngine.Animation + RegisterType(); + RegisterType(); + RegisterType(); + RegisterType(); + RegisterType(); + RegisterType(); + +#if UNITY_IOS || PLATFORM_IOS + /* + // IOSCamera ios下相机权限的问题,用这种方法就可以解决了 问题防裁剪。 + foreach (var _ in WebCamTexture.devices) + { + } + */ +#endif + } + + private void RegisterType() + { +#if UNITY_EDITOR && false + Debug.Log($"DisStripCode RegisterType :{typeof(T)}"); +#endif + } +} \ No newline at end of file diff --git a/UnityProject/Assets/Launcher/Scripts/DisStripCode.cs.meta b/UnityProject/Assets/Launcher/Scripts/DisStripCode.cs.meta new file mode 100644 index 00000000..061c555c --- /dev/null +++ b/UnityProject/Assets/Launcher/Scripts/DisStripCode.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e66799967838b84f8fb02750fb5ad27 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/TEngine/Settings/Prefab/GameEntry.prefab b/UnityProject/Assets/TEngine/Settings/Prefab/GameEntry.prefab index 19a52cc1..a9071164 100644 --- a/UnityProject/Assets/TEngine/Settings/Prefab/GameEntry.prefab +++ b/UnityProject/Assets/TEngine/Settings/Prefab/GameEntry.prefab @@ -265,6 +265,7 @@ Transform: - {fileID: 7696541955418391618} - {fileID: 7696541955235861479} - {fileID: 404609667950854598} + - {fileID: 5550035055454355162} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -347,3 +348,47 @@ MonoBehaviour: audioSetting: {fileID: 11400000, guid: 397bf671e3302424185ecb93a1b6db02, type: 2} procedureSetting: {fileID: 11400000, guid: ae1b500b4382ce84db5dd66e8c01c0f2, type: 2} updateSetting: {fileID: 11400000, guid: 767d6f38f7fa4b34bb2ae1fc07f58a7f, type: 2} +--- !u!1 &8578946418358997677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5550035055454355162} + - component: {fileID: 4615381382982951676} + m_Layer: 0 + m_Name: DisStripCode + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5550035055454355162 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8578946418358997677} + 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: 7696541955266276700} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4615381382982951676 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8578946418358997677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6e66799967838b84f8fb02750fb5ad27, type: 3} + m_Name: + m_EditorClassIdentifier: