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: