From 4ada0d2a13f97d8965a0f7d25947784799c62c77 Mon Sep 17 00:00:00 2001 From: Kochoyume <78918084+kochounoyume@users.noreply.github.com> Date: Wed, 18 Sep 2024 00:35:35 +0900 Subject: [PATCH] Add SafeAreaElement --- .../Runtime/{UI.meta => UGUI.meta} | 0 .../Runtime/{UI => UGUI}/EmptyGraphic.cs | 0 .../Runtime/{UI => UGUI}/EmptyGraphic.cs.meta | 0 .../{UI => UGUI}/MinimalUtility.UGUI.asmdef | 0 .../MinimalUtility.UGUI.asmdef.meta | 0 .../{UI => UGUI}/SelectablesGraphic.cs | 0 .../{UI => UGUI}/SelectablesGraphic.cs.meta | 0 .../Runtime/{UI => UGUI}/SimpleGauge.cs | 0 .../Runtime/{UI => UGUI}/SimpleGauge.cs.meta | 0 .../MinimalUtility/Runtime/UIToolkit.meta | 3 ++ .../UIToolkit/MinimalUtility.UIToolkit.asmdef | 22 ++++++++ .../MinimalUtility.UIToolkit.asmdef.meta | 7 +++ .../Runtime/UIToolkit/SafeAreaElement.cs | 53 +++++++++++++++++++ .../Runtime/UIToolkit/SafeAreaElement.cs.meta | 3 ++ 14 files changed, 88 insertions(+) rename Packages/MinimalUtility/Runtime/{UI.meta => UGUI.meta} (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/EmptyGraphic.cs (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/EmptyGraphic.cs.meta (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/MinimalUtility.UGUI.asmdef (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/MinimalUtility.UGUI.asmdef.meta (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/SelectablesGraphic.cs (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/SelectablesGraphic.cs.meta (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/SimpleGauge.cs (100%) rename Packages/MinimalUtility/Runtime/{UI => UGUI}/SimpleGauge.cs.meta (100%) create mode 100644 Packages/MinimalUtility/Runtime/UIToolkit.meta create mode 100644 Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef create mode 100644 Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef.meta create mode 100644 Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs create mode 100644 Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs.meta diff --git a/Packages/MinimalUtility/Runtime/UI.meta b/Packages/MinimalUtility/Runtime/UGUI.meta similarity index 100% rename from Packages/MinimalUtility/Runtime/UI.meta rename to Packages/MinimalUtility/Runtime/UGUI.meta diff --git a/Packages/MinimalUtility/Runtime/UI/EmptyGraphic.cs b/Packages/MinimalUtility/Runtime/UGUI/EmptyGraphic.cs similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/EmptyGraphic.cs rename to Packages/MinimalUtility/Runtime/UGUI/EmptyGraphic.cs diff --git a/Packages/MinimalUtility/Runtime/UI/EmptyGraphic.cs.meta b/Packages/MinimalUtility/Runtime/UGUI/EmptyGraphic.cs.meta similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/EmptyGraphic.cs.meta rename to Packages/MinimalUtility/Runtime/UGUI/EmptyGraphic.cs.meta diff --git a/Packages/MinimalUtility/Runtime/UI/MinimalUtility.UGUI.asmdef b/Packages/MinimalUtility/Runtime/UGUI/MinimalUtility.UGUI.asmdef similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/MinimalUtility.UGUI.asmdef rename to Packages/MinimalUtility/Runtime/UGUI/MinimalUtility.UGUI.asmdef diff --git a/Packages/MinimalUtility/Runtime/UI/MinimalUtility.UGUI.asmdef.meta b/Packages/MinimalUtility/Runtime/UGUI/MinimalUtility.UGUI.asmdef.meta similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/MinimalUtility.UGUI.asmdef.meta rename to Packages/MinimalUtility/Runtime/UGUI/MinimalUtility.UGUI.asmdef.meta diff --git a/Packages/MinimalUtility/Runtime/UI/SelectablesGraphic.cs b/Packages/MinimalUtility/Runtime/UGUI/SelectablesGraphic.cs similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/SelectablesGraphic.cs rename to Packages/MinimalUtility/Runtime/UGUI/SelectablesGraphic.cs diff --git a/Packages/MinimalUtility/Runtime/UI/SelectablesGraphic.cs.meta b/Packages/MinimalUtility/Runtime/UGUI/SelectablesGraphic.cs.meta similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/SelectablesGraphic.cs.meta rename to Packages/MinimalUtility/Runtime/UGUI/SelectablesGraphic.cs.meta diff --git a/Packages/MinimalUtility/Runtime/UI/SimpleGauge.cs b/Packages/MinimalUtility/Runtime/UGUI/SimpleGauge.cs similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/SimpleGauge.cs rename to Packages/MinimalUtility/Runtime/UGUI/SimpleGauge.cs diff --git a/Packages/MinimalUtility/Runtime/UI/SimpleGauge.cs.meta b/Packages/MinimalUtility/Runtime/UGUI/SimpleGauge.cs.meta similarity index 100% rename from Packages/MinimalUtility/Runtime/UI/SimpleGauge.cs.meta rename to Packages/MinimalUtility/Runtime/UGUI/SimpleGauge.cs.meta diff --git a/Packages/MinimalUtility/Runtime/UIToolkit.meta b/Packages/MinimalUtility/Runtime/UIToolkit.meta new file mode 100644 index 0000000..625f8b6 --- /dev/null +++ b/Packages/MinimalUtility/Runtime/UIToolkit.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 43f91ed6e0c94ee08ca804778bd71ee9 +timeCreated: 1726584153 \ No newline at end of file diff --git a/Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef b/Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef new file mode 100644 index 0000000..4c0f9ed --- /dev/null +++ b/Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef @@ -0,0 +1,22 @@ +{ + "name": "MinimalUtility.UIToolkit", + "rootNamespace": "MinimalUtility.UIToolkit", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [ + "ENABLE_UITOOLKIT" + ], + "versionDefines": [ + { + "name": "com.unity.modules.uielements", + "expression": "", + "define": "ENABLE_UITOOLKIT" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef.meta b/Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef.meta new file mode 100644 index 0000000..59e133e --- /dev/null +++ b/Packages/MinimalUtility/Runtime/UIToolkit/MinimalUtility.UIToolkit.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: edfcb83fd91890f44ac6e363c3b244e9 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs b/Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs new file mode 100644 index 0000000..376cedc --- /dev/null +++ b/Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs @@ -0,0 +1,53 @@ +using UnityEngine; +using UnityEngine.UIElements; +#if UNITY_EDITOR +using Screen = UnityEngine.Device.Screen; +#else +using Screen = UnityEngine.Screen; +#endif + +namespace MinimalUtility.UIToolkit +{ + /// + /// セーフエリアを考慮した. + /// + public class SafeAreaElement : VisualElement + { + /// + /// UIBuilderのLibraryに登録するためのUXML要素のファクトリクラス. + /// + public class SafeAreaFactory : UxmlFactory + { + } + + /// + /// Initializes a new instance of the class. + /// + public SafeAreaElement() + { + style.flexGrow = 1; + style.flexShrink = 1; + + RegisterCallback(OnGeometryChanged); + +#pragma warning disable SA1313 + void OnGeometryChanged(GeometryChangedEvent _) +#pragma warning restore SA1313 + { +#if UNITY_EDITOR + if (panel.GetType().Name == "EditorPanel") return; +#endif + Rect safeArea = Screen.safeArea; + Vector2 leftTop + = RuntimePanelUtils.ScreenToPanel(panel, new (safeArea.xMin, Screen.height - safeArea.yMax)); + Vector2 rightBottom + = RuntimePanelUtils.ScreenToPanel(panel, new (Screen.width - safeArea.xMax, safeArea.yMin)); + + style.marginLeft = leftTop.x; + style.marginTop = leftTop.y; + style.marginRight = rightBottom.x; + style.marginBottom = rightBottom.y; + } + } + } +} \ No newline at end of file diff --git a/Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs.meta b/Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs.meta new file mode 100644 index 0000000..c6f4fc1 --- /dev/null +++ b/Packages/MinimalUtility/Runtime/UIToolkit/SafeAreaElement.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 148d5557949c4902bfbd5e6b1330c5df +timeCreated: 1726584218 \ No newline at end of file