unity 父节点的背景图如何比下载的视频RawImage 大一圈代码实现
时间: 2023-11-25 22:05:28 浏览: 69
可以通过以下代码实现:
```csharp
using UnityEngine;
using UnityEngine.UI;
public class ResizeParentBackground : MonoBehaviour
{
private RectTransform parentRect;
private RawImage rawImage;
private float padding = 20f; // 设置背景图比原图多留出的像素值
void Start()
{
parentRect = transform.parent.GetComponent<RectTransform>();
rawImage = GetComponent<RawImage>();
// 获取原始图片大小并计算出新的背景图大小
float width = rawImage.texture.width + padding * 2;
float height = rawImage.texture.height + padding * 2;
// 宽度和高度设置给父节点的RectTransform组件,把背景图的锚点设置为中心点,使其居中显示
parentRect.sizeDelta = new Vector2(width, height);
parentRect.anchorMin = new Vector2(0.5f, 0.5f);
parentRect.anchorMax = new Vector2(0.5f, 0.5f);
// 设置背景图的大小和位置,使其填满父节点
rawImage.rectTransform.sizeDelta = new Vector2(width, height);
rawImage.rectTransform.anchorMin = new Vector2(0f, 0f);
rawImage.rectTransform.anchorMax = new Vector2(1f, 1f);
rawImage.rectTransform.offsetMin = Vector2.zero;
rawImage.rectTransform.offsetMax = Vector2.zero;
}
}
```
这段代码会获取父节点的 RectTransform 组件和 RawImage 组件,计算出新的背景图大小,然后设置给父节点。同时,还会设置背景图的大小和位置,使其填满父节点。其中 padding 可以根据需要调整,表示背景图比原图多留出的像素值。
阅读全文