You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity层级面板中区分对象类型?Panel与Image类UI对象识别方法

Unity对象类型判断及Panel、Image区分方案

编辑器离线判断方法

  • 查看Inspector组件标识:选中目标对象后,直接查看Inspector面板顶部的组件列表,Panel对象会显示Panel组件标识,Image对象会显示Image组件标识,这是最直接的区分方式,不受外观设置影响。哪怕两者都设置为纯色填充、无额外子元素,组件本身的类型标识不会改变,可直接确认mainMenu是Panel、blankWindow是Image。
  • 查看默认属性差异:如果组件名被折叠也可以通过属性判断,默认Panel的Image Type属性为Sliced,使用Unity内置的圆角半透Sprite;默认Image的Image Type属性为Simple,初始Sprite为空。即使做了外观修改,也可以通过组件的独有参数做辅助区分。

代码运行时判断方法

  • 通用类型校验:可以通过GetComponent接口结合类型匹配判断,示例如下:
// 校验是否为Panel类型
bool isPanel = mainMenu.GetComponent<UnityEngine.UI.Panel>() != null;
// 校验是否为Image类型
bool isImage = blankWindow.GetComponent<UnityEngine.UI.Image>() != null;
  • 精确类型区分:因为Panel本身继承自Image类,上述方法判断Image时会把Panel也识别为匹配项,如果需要严格区分两者,用GetType做精确匹配:
var targetGraphic = targetObj.GetComponent<UnityEngine.UI.Graphic>();
if (targetGraphic.GetType() == typeof(UnityEngine.UI.Panel))
{
    Debug.Log("对象为Panel类型");
}
else if (targetGraphic.GetType() == typeof(UnityEngine.UI.Image))
{
    Debug.Log("对象为Image类型");
}

内容的提问来源于stack exchange,提问作者Alexander Tukanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:09:04