Commit a4e1c2ca authored by hex's avatar hex

Adjust UI

parent 6798e693
......@@ -117,59 +117,11 @@ public class CardDescription : Servant
public override void applyShowArrangement()
{
// if (gameObject != null)
// {
// underSprite.height = Screen.height + 4;
// int offset = 0;
// // 暴力适配 ios 刘海屏
// if (Screen.safeArea.x > 0)
// {
// offset = (global::System.Object)Screen.width switch
// {
// 1366 => 52,
// 1600 => 63,
// 1920 => 70,
// 2560 => 110,
// _ => 66,
// };
// }
// // 计算目标世界坐标
// Vector3 showPosition = Program.camera_main_2d.ScreenToWorldPoint(
// new Vector3(offset, Screen.height / 2, 0)
// );
// // 执行显示动画
// gameObject.transform.DOMove(showPosition, 1.2f).SetEase(Ease.OutCubic);
// resizer.gameObject.GetComponent<BoxCollider>().enabled = true;
// }
if (gameObject == null)
if (gameObject != null)
{
return;
}
// --- 1. 获取安全区域 ---
Rect safeArea = Screen.safeArea;
// --- 2. 核心逻辑:根据屏幕边缘进行对称布局 ---
// 步骤 A: 计算面板的【最终高度】。
// 高度 = (屏幕总高度 - 顶部要求的间距 - 底部要求的间距)
// 两个间距都等于 safeArea.y
float newHeight = Screen.height - (safeArea.y * 2);
// 增加一个健壮性保护,防止在极端屏幕比例下高度过小或为负。
// 这里的最小值可以根据您的UI设计微调。
newHeight = Mathf.Max(300, newHeight);
// 步骤 B: 将计算出的新高度应用到背景 Sprite 上。
underSprite.height = (int)newHeight;
// --- 3. 定位这个尺寸调整好的面板 ---
// 步骤 C: 【保留】原有的X轴偏移逻辑,以适配刘海屏
underSprite.height = Screen.height + 4;
int offset = 0;
// 暴力适配 ios 刘海屏
if (Screen.safeArea.x > 0)
{
offset = (global::System.Object)Screen.width switch
......@@ -181,24 +133,72 @@ public class CardDescription : Servant
_ => 66,
};
}
float targetScreenX = offset; // 目标X坐标使用原有的offset
// 步骤 D: 计算【最终的中心点Y坐标】。
// 目标:让面板的【底部】正好落在 safeArea.y 上。
// 因此,中心点Y = 底部Y位置 + (高度的一半)
// 注意:这里使用 underSprite.height,因为它已经是整数,可以避免浮点误差。
float targetScreenY = safeArea.y + (underSprite.height / 2f);
// --- 4. 执行动画 ---
// 使用计算出的新坐标来确定最终的世界坐标
// 计算目标世界坐标
Vector3 showPosition = Program.camera_main_2d.ScreenToWorldPoint(
new Vector3(targetScreenX, targetScreenY, 0)
new Vector3(offset, Screen.height / 2, 0)
);
// 执行显示动画
gameObject.transform.DOMove(showPosition, 1.2f).SetEase(Ease.OutCubic);
// 启用碰撞器
resizer.gameObject.GetComponent<BoxCollider>().enabled = true;
}
// if (gameObject == null)
// {
// return;
// }
// // --- 1. 获取安全区域 ---
// Rect safeArea = Screen.safeArea;
// // --- 2. 核心逻辑:根据屏幕边缘进行对称布局 ---
// // 步骤 A: 计算面板的【最终高度】。
// // 高度 = (屏幕总高度 - 顶部要求的间距 - 底部要求的间距)
// // 两个间距都等于 safeArea.y
// float newHeight = Screen.height - (safeArea.y * 2);
// // 增加一个健壮性保护,防止在极端屏幕比例下高度过小或为负。
// // 这里的最小值可以根据您的UI设计微调。
// newHeight = Mathf.Max(300, newHeight);
// // 步骤 B: 将计算出的新高度应用到背景 Sprite 上。
// underSprite.height = (int)newHeight;
// // --- 3. 定位这个尺寸调整好的面板 ---
// // 步骤 C: 【保留】原有的X轴偏移逻辑,以适配刘海屏
// int offset = 0;
// if (Screen.safeArea.x > 0)
// {
// offset = (global::System.Object)Screen.width switch
// {
// 1366 => 52,
// 1600 => 63,
// 1920 => 70,
// 2560 => 110,
// _ => 66,
// };
// }
// float targetScreenX = offset; // 目标X坐标使用原有的offset
// // 步骤 D: 计算【最终的中心点Y坐标】。
// // 目标:让面板的【底部】正好落在 safeArea.y 上。
// // 因此,中心点Y = 底部Y位置 + (高度的一半)
// // 注意:这里使用 underSprite.height,因为它已经是整数,可以避免浮点误差。
// float targetScreenY = safeArea.y + (underSprite.height / 2f);
// // --- 4. 执行动画 ---
// // 使用计算出的新坐标来确定最终的世界坐标
// Vector3 showPosition = Program.camera_main_2d.ScreenToWorldPoint(
// new Vector3(targetScreenX, targetScreenY, 0)
// );
// gameObject.transform.DOMove(showPosition, 1.2f).SetEase(Ease.OutCubic);
// // 启用碰撞器
// resizer.gameObject.GetComponent<BoxCollider>().enabled = true;
}
public void read()
{
......
......@@ -1032,13 +1032,15 @@ public class Program : MonoBehaviour
// 4. 计算视图的起始X坐标 (像素单位)
// 视图的左边缘 = 目标中心点 - 视图宽度的一半
float viewX_pixels = targetCenterX_pixels - (viewWidth_pixels / 2f);
// 基于安全区域计算目标屏幕坐标,让 finalViewport 往下移一点
float verticalOffset = safeArea.height * 0.02f;
// 5. 将计算出的像素坐标转换为标准化的 Rect(0-1范围)
Rect finalViewport = new Rect(
viewX_pixels / Screen.width + fixedRightOffset, // 整理向右偏移一点点
safeArea.y / Screen.height, // Y和Height直接使用安全区的值,往上一点点给 toolbar 位置
(safeArea.y - verticalOffset) / Screen.height, // Y和Height直接使用安全区的值
viewWidth_pixels / Screen.width,
safeArea.height / Screen.height
(safeArea.height + verticalOffset) / Screen.height
);
// 6. 应用到所有相关的3D相机
......
......@@ -106,9 +106,8 @@ public class Servant
// 1. 获取安全区域
Rect safeArea = Screen.safeArea;
// 2. 基于安全区域计算目标屏幕坐标
// float verticalOffset = safeArea.height * 0.03f;
float verticalOffset = safeArea.height * 0.01f;
// 2. 基于安全区域计算目标屏幕坐标,让 toolbar 往下移一点
float verticalOffset = safeArea.height * 0.02f;
float targetScreenX = Screen.width - RightToScreen;
float targetScreenY = safeArea.y + buttomToScreen - verticalOffset;
......
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 52
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: 12004, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: 0
y: 66
width: 1107
height: 601
m_ShowMode: 0
m_Title: Build Settings
m_RootView: {fileID: 4}
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
m_Maximized: 0
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -43,62 +19,12 @@ MonoBehaviour:
width: 1512
height: 916
m_ShowMode: 4
m_Title: Simulator
m_RootView: {fileID: 5}
m_Title: Project
m_RootView: {fileID: 2}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_Maximized: 1
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
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: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: BuildPlayerWindow
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1107
height: 601
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 15}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
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: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1107
height: 601
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
vertical: 0
controlID: 5149
--- !u!114 &5
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -111,9 +37,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 6}
- {fileID: 8}
- {fileID: 7}
- {fileID: 3}
- {fileID: 5}
- {fileID: 4}
m_Position:
serializedVersion: 2
x: 0
......@@ -126,7 +52,7 @@ MonoBehaviour:
m_TopViewHeight: 30
m_UseBottomView: 1
m_BottomViewHeight: 20
--- !u!114 &6
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -148,7 +74,7 @@ MonoBehaviour:
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
m_LastLoadedLayoutName:
--- !u!114 &7
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -169,7 +95,7 @@ MonoBehaviour:
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
--- !u!114 &8
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -182,8 +108,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 9}
- {fileID: 14}
- {fileID: 6}
- {fileID: 11}
m_Position:
serializedVersion: 2
x: 0
......@@ -193,8 +119,8 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 200}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 19
--- !u!114 &9
controlID: 90
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -207,8 +133,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 7}
- {fileID: 10}
- {fileID: 13}
m_Position:
serializedVersion: 2
x: 0
......@@ -218,8 +144,8 @@ MonoBehaviour:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 20
--- !u!114 &10
controlID: 91
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -232,8 +158,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 11}
- {fileID: 12}
- {fileID: 8}
- {fileID: 9}
m_Position:
serializedVersion: 2
x: 0
......@@ -243,8 +169,8 @@ MonoBehaviour:
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 21
--- !u!114 &11
controlID: 92
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -265,12 +191,12 @@ MonoBehaviour:
height: 444
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 17}
m_ActualView: {fileID: 13}
m_Panes:
- {fileID: 17}
- {fileID: 13}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &12
--- !u!114 &9
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -289,15 +215,15 @@ MonoBehaviour:
y: 0
width: 864.5
height: 444
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 18}
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 14}
m_Panes:
- {fileID: 16}
- {fileID: 18}
- {fileID: 12}
- {fileID: 14}
m_Selected: 1
m_LastSelected: 0
--- !u!114 &13
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -318,13 +244,13 @@ MonoBehaviour:
height: 422
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
m_ActualView: {fileID: 19}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 19}
- {fileID: 20}
- {fileID: 15}
- {fileID: 16}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &14
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -345,63 +271,12 @@ MonoBehaviour:
height: 866
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 21}
m_ActualView: {fileID: 17}
m_Panes:
- {fileID: 21}
- {fileID: 17}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
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: 12043, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 640, y: 580}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Build Settings
m_Image: {fileID: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 0
y: 66
width: 1107
height: 580
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs:
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 0}
m_SearchString:
--- !u!114 &16
--- !u!114 &12
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -457,7 +332,7 @@ MonoBehaviour:
floating: 0
collapsed: 0
displayed: 1
snapOffset: {x: 0, y: 0}
snapOffset: {x: 0, y: 25}
snapOffsetDelta: {x: 0, y: 0}
snapCorner: 0
id: unity-scene-view-toolbar
......@@ -763,7 +638,7 @@ MonoBehaviour:
m_SceneVisActive: 1
m_LastLockedObject: {fileID: 0}
m_ViewIsLockedToObject: 0
--- !u!114 &17
--- !u!114 &13
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -796,25 +671,25 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: 7426fcff
m_LastClickedID: -252300
m_ExpandedIDs: 7a26fcff0c3dfcff1e3dfcff303dfcff543dfcff963efcffe43efcfff83efcff1e40fcff7240fcff1845fcff6a0ffdff980ffdffd025fdff8cd6fdffbad6fdfff2ecfdff4cf0fdffc2f0fdffa6f1feffd4f1feffae08fffff6faffffb2c10000
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 10b4fcff3eb4fcff18cbfcff1abafdff2abafdff4ebafdff52bafdff42e7fdff40e9fdff88eafdff8eeafdffd0ecfdfffa9cfefffe9cfeffeec9feff92cbffffb6cbffffbacbffffaaf8ffff06fbffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_Name: Input Highlight
m_OriginalName: Input Highlight
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_UserData: -205446
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_OriginalEventType: 0
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 11}
m_ClientGUIView: {fileID: 8}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
......@@ -822,7 +697,7 @@ MonoBehaviour:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &18
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -883,7 +758,7 @@ MonoBehaviour:
friendlyName: Apple iPhone 13 Pro Max
networkReachability: 1
systemLanguage: 10
--- !u!114 &19
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -914,7 +789,7 @@ MonoBehaviour:
m_SaveData: []
m_OverlaysVisible: 1
m_SearchFilter:
m_NameFilter:
m_NameFilter: search
m_ClassNames: []
m_AssetLabels: []
m_AssetBundleNames: []
......@@ -924,23 +799,23 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/SibylSystem/deckManager
- Assets/ArtSystem/gameInfo
m_Globs: []
m_OriginalText:
m_OriginalText: search
m_FilterByTypeIntersection: 0
m_ViewMode: 1
m_StartGridSize: 64
m_LastFolders:
- Assets/SibylSystem/deckManager
- Assets/ArtSystem/gameInfo
m_LastFoldersGridSize: -1
m_LastProjectPath: /Users/hexzhou/Workplace/ygopro2_unity2021
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 179}
m_SelectedIDs: 62ba0000
m_LastClickedID: 47714
m_ExpandedIDs: 00000000b8ae0000baae0000bcae0000beae0000c0ae0000c2ae0000c4ae000000ca9a3bffffff7f
m_SelectedIDs: caaf0000
m_LastClickedID: 45002
m_ExpandedIDs: 00000000b2ae0000b4ae0000b6ae0000b8ae0000baae0000bcae0000beae0000c6ae000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -956,7 +831,7 @@ MonoBehaviour:
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 13}
m_ClientGUIView: {fileID: 10}
m_SearchString:
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
......@@ -968,7 +843,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000b8ae0000baae0000bcae0000beae0000c0ae0000c2ae0000c4ae0000
m_ExpandedIDs: 00000000b2ae0000b4ae0000b6ae0000b8ae0000baae0000bcae0000beae0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -1012,7 +887,7 @@ MonoBehaviour:
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 13}
m_ClientGUIView: {fileID: 10}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
......@@ -1024,7 +899,7 @@ MonoBehaviour:
m_GridSize: 64
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 207
--- !u!114 &20
--- !u!114 &16
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -1054,7 +929,7 @@ MonoBehaviour:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
--- !u!114 &21
--- !u!114 &17
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment