diff --git a/meng_yao/Assets/communal/ugui.meta b/meng_yao/Assets/communal/ugui.meta new file mode 100644 index 00000000..ad1530ad --- /dev/null +++ b/meng_yao/Assets/communal/ugui.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b10b14aef60efe4097684860488530f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/meng_yao/Assets/communal/ugui/adaptive_ui.cs b/meng_yao/Assets/communal/ugui/adaptive_ui.cs new file mode 100644 index 00000000..8e2bf427 --- /dev/null +++ b/meng_yao/Assets/communal/ugui/adaptive_ui.cs @@ -0,0 +1,38 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class adaptive_ui : MonoBehaviour +{ + public RawImage rawImage; // 使用RawImage组件展示纹理 + public RectTransform boundaryRect; // 代表边界矩形的RectTransform + + void Start() + { + ScaleAndCropTexture(); + } + + void ScaleAndCropTexture() + { + Texture texture = rawImage.texture; + float textureWidth = texture.width; + float textureHeight = texture.height; + + float boundaryWidth = boundaryRect.rect.width; + float boundaryHeight = boundaryRect.rect.height; + + // 计算缩放比例,确保较短的一边适应边界矩形 + float scaleFactor = Mathf.Max(boundaryWidth / textureWidth, boundaryHeight / textureHeight); + + // 设置缩放后的尺寸 + float newWidth = textureWidth * scaleFactor; + float newHeight = textureHeight * scaleFactor; + + // 设置RawImage的RectTransform尺寸,使其居中并覆盖边界矩形 + rawImage.rectTransform.sizeDelta = new Vector2(newWidth, newHeight); + + // 裁剪超出的部分 + rawImage.rectTransform.anchoredPosition = Vector2.zero; // 确保居中 + } +} diff --git a/meng_yao/Assets/communal/ugui/adaptive_ui.cs.meta b/meng_yao/Assets/communal/ugui/adaptive_ui.cs.meta new file mode 100644 index 00000000..d071c8e3 --- /dev/null +++ b/meng_yao/Assets/communal/ugui/adaptive_ui.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8014c4cd1f84d6f4c9ed8324201ffcf7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: