news 2026/4/16 12:16:41

unity3d scene窗口选中物体, 在 hierarchy高光显示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
unity3d scene窗口选中物体, 在 hierarchy高光显示

在 Unity 中实现 “Scene 窗口选中物体时 Hierarchy 面板高光显示”,核心思路是监听 Scene 窗口的选择事件,并通过 Unity 的EditorGUIUtilityEditorWindow相关 API 主动高亮 Hierarchy 面板中对应的物体条目。以下是完整的实现方案:

using UnityEditor; using UnityEngine; using System.Reflection; /// <summary> /// Scene选中物体时,Hierarchy面板自动高光显示该物体 /// </summary> [InitializeOnLoad] public class HierarchyHighlightOnSceneSelect { // 静态构造函数,Editor启动时初始化 static HierarchyHighlightOnSceneSelect() { // 监听选择变更事件 Selection.selectionChanged += OnSelectionChanged; } private static void OnSelectionChanged() { // 仅处理选中单个GameObject的情况(可根据需求修改为多物体) if (Selection.activeGameObject != null) { // 核心API:让Hierarchy高亮并滚动到目标物体 EditorGUIUtility.PingObject(Selection.activeGameObject); // 【可选】强制刷新Hierarchy窗口(解决部分版本高亮不生效问题) RefreshHierarchyWindow(); } } /// <summary> /// 强制刷新Hierarchy窗口(通过反射调用私有方法) /// </summary> private static void RefreshHierarchyWindow() { try { // 获取Hierarchy窗口实例 EditorWindow hierarchyWindow = EditorWindow.GetWindow(Type.GetType("UnityEditor.SceneHierarchyWindow, UnityEditor")); if (hierarchyWindow == null) return; // 通过反射调用Hierarchy窗口的刷新方法 MethodInfo refreshMethod = hierarchyWindow.GetType().GetMethod("Refresh", BindingFlags.NonPublic | BindingFlags.Instance); refreshMethod?.Invoke(hierarchyWindow, null); } catch (System.Exception e) { Debug.LogWarning("刷新Hierarchy失败:" + e.Message); } } // 【可选】防止内存泄漏,编辑器关闭时移除事件监听 [InitializeOnLoadMethod] private static void Cleanup() { AssemblyReloadEvents.beforeAssemblyReload += () => { Selection.selectionChanged -= OnSelectionChanged; }; } } /* * 1. 支持多物体选中高亮 * 修改OnSelectionChanged方法,遍历所有选中物体: * private static void OnSelectionChanged() { if (Selection.gameObjects.Length > 0) { // 高亮最后一个选中的物体(Unity默认选中逻辑) GameObject target = Selection.gameObjects[Selection.gameObjects.Length - 1]; EditorGUIUtility.PingObject(target); RefreshHierarchyWindow(); } } */ /* * 2. 自定义高亮样式(进阶) * 如果需要自定义高亮颜色 / 效果(如边框、背景色),需重写 Hierarchy 的绘制逻辑: // 在原有类中添加以下代码 static HierarchyHighlightOnSceneSelect() { Selection.selectionChanged += OnSelectionChanged; // 注册Hierarchy绘制回调 EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyItemGUI; } private static void OnHierarchyItemGUI(int instanceID, Rect selectionRect) { // 获取当前绘制的物体 GameObject go = EditorUtility.InstanceIDToObject(instanceID) as GameObject; if (go == null) return; // 如果是选中的物体,绘制自定义高亮 if (Selection.Contains(go)) { // 绘制高亮背景 EditorGUI.DrawRect(selectionRect, new Color(0.2f, 0.5f, 1f, 0.3f)); // 绘制边框 Rect borderRect = selectionRect; borderRect.width = 2; EditorGUI.DrawRect(borderRect, Color.cyan); } } */

使用说明

  1. 将脚本放在 Unity 项目的Editor文件夹下(若无则新建);
  2. 无需附加到任何物体,Editor 启动时自动生效;
  3. 在 Scene 窗口点击选中物体,Hierarchy 面板会自动定位并高亮该物体。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:22:14

mysql中的索引页是什么?

1.索引页是存储b树索引结构的页&#xff0c;存储索引数据&#xff0c;默认大小为16kb 2.叶子节点&#xff0c;如果是主键索引(聚簇索引)&#xff0c;存储完整行数据&#xff0c;如果是二级索引,存储索引键值主键值 3.叶子节点通过双向链表连接&#xff0c;支持范围查询 4.非叶子…

作者头像 李华
网站建设 2026/4/16 10:43:58

第14章:项目沟通管理【章节重点】

信息系统项目管理师第14章&#xff1a;项目沟通管理【章节重点】。重点章节&#xff1a;不论是单选、案例分析都有考点&#xff0c;论文考的并不多&#xff0c;从&#xff1a;沟通概念、沟通模型(P421&#xff09;、沟通分类、沟通技巧、项目沟通管理&#xff0c;本视频由科科过…

作者头像 李华
网站建设 2026/4/16 11:04:10

接口最大并发量测试工具对比与最佳实践方案

核心观点摘要 接口最大并发量测试是保障系统稳定性与性能的关键环节&#xff0c;常见于高并发、大流量业务场景。 当前主流测试工具分为SaaS化平台、开源工具和私有化部署方案&#xff0c;各有适用边界与技术权衡。工具选型需结合业务规模、团队技术能力与长期运维成本&#xf…

作者头像 李华
网站建设 2026/4/15 20:32:06

EGSTalker踩坑日记第一弹

本文只针对25.4.30版本的EGSTalker仓库 一、环境配置 因为一直习惯于把项目zip拉下来上传服务器所以遇到了第一个问题&#xff0c;在服务器上没有办法执行这条指令&#xff08;本地执行了也没效果不知道为啥&#xff09; git submodule update --init --recursive解决方法&…

作者头像 李华
网站建设 2026/4/16 10:46:57

房地产公司组织结构图在线设计 项目开发团队层级

良功绘图网站 (https://www.lghuitu.com ) 在房地产行业高速发展与市场竞争日益激烈的当下&#xff0c;企业的运营效率、协同能力与决策速度成为核心竞争力的关键要素。房地产项目开发具有周期长、涉及环节多、跨部门协作频繁、资源投入巨大等特点&#xff0c;从土地获取、规划…

作者头像 李华
网站建设 2026/4/16 12:17:57

Spring框架架构详解:从设计理念到企业级应用

1 Spring框架简介Spring框架是一个开源的Java平台&#xff0c;旨在简化企业级应用程序开发。由Rod Johnson于2003年创建&#xff0c;Spring的初衷是为了解决当时Java EE开发中的复杂性问题&#xff0c;特别是EJB&#xff08;Enterprise JavaBeans&#xff09;架构的臃肿和配置繁…

作者头像 李华