Unity 将 Monobehavior 显示在屏幕中心并标出大小
要将一个 Monobehavior 显示在屏幕中心,并用一个 2D 框标出其大小,你可以按照以下步骤进行操作:
-
首先,你需要将你的 Monobehavior 添加到一个 Canvas 对象上。创建一个 Canvas 对象,或者在场景中已有的 Canvas 上添加一个空的 GameObject 作为子对象,并将你的 Monobehavior 组件添加到该 GameObject 上。
-
接下来,你需要将 Canvas 的 Render Mode 设置为 Screen Space - Camera。这样可以确保 Canvas 对象在屏幕中心显示,而不是根据其父对象的位置。
-
在 Canvas 上添加一个 RectTransform 组件,并将其大小调整为你想要的大小。你可以手动调整 RectTransform 的宽度和高度,或者使用 RectTransform 的锚点和偏移量属性来调整。
-
在 Canvas 上创建一个 Image 或 RawImage 对象作为子对象,并将其大小设置为与 RectTransform 相同。这个对象将用于绘制 2D 框。
-
编写一个脚本来管理 Monobehavior 的位置和大小。在脚本中,你可以使用 RectTransform 来设置 Monobehavior 的位置和大小。
下面是一个示例脚本的代码,用于将一个 Monobehavior 显示在屏幕中心,并用一个 2D 框标出其大小:
using UnityEngine;
public class CenterAndDrawBox : MonoBehaviour
{
public RectTransform targetRect; // 目标 Monobehavior 的 RectTransform 组件
public RectTransform boxRect; // 用于绘制 2D 框的 RectTransform 组件
private void Start()
{
// 将目标 Monobehavior 移动到屏幕中心
targetRect.anchoredPosition = Vector2.zero;
// 获取目标 Monobehavior 的大小
Vector2 targetSize = targetRect.sizeDelta;
// 设置 2D 框的大小与目标 Monobehavior 相同
boxRect.sizeDelta = targetSize;
// 将 2D 框的位置设置为目标 Monobehavior 的位置
boxRect.anchoredPosition = targetRect.anchoredPosition;
}
}
在 Unity 编辑器中,将这个脚本添加到 Canvas 对象上,并将目标 Monobehavior 的 RectTransform 组件和用于绘制 2D 框的 RectTransform 组件分配给相应的变量。
这样,当你运行游戏时,目标 Monobehavior 将显示在屏幕中心,并且有一个 2D 框标记其大小。
原文地址: https://www.cveoy.top/t/topic/o72R 著作权归作者所有。请勿转载和采集!