news 2026/6/11 16:26:46

Unity ReferenceFinder插件 窗口中选择资源时 同步选择Assets下的资源

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unity ReferenceFinder插件 窗口中选择资源时 同步选择Assets下的资源

GitHub地址


当在 窗口中选中资源时,实现 同步选中Assets下的资源对象的功能:

修改AssetTreeView脚本为:

usingUnityEngine;usingUnityEditor;usingUnityEditor.IMGUI.Controls;usingSystem.Collections.Generic;// 带数据的 TreeViewItempublicclassAssetViewItem:TreeViewItem{publicReferenceFinderData.AssetDescriptiondata;}// 资源引用树publicclassAssetTreeView:TreeView{constfloatkIconWidth=18f;constfloatkRowHeights=20f;publicAssetViewItemassetRoot;privateGUIStylestateGUIStyle=newGUIStyle{richText=true,alignment=TextAnchor.MiddleCenter};enumMyColumns{Name,Path,State,}publicAssetTreeView(TreeViewStatestate,MultiColumnHeadermulticolumnHeader):base(state,multicolumnHeader){rowHeight=kRowHeights;columnIndexForTreeFoldouts=0;showAlternatingRowBackgrounds=true;showBorder=false;customFoldoutYOffset=(kRowHeights-EditorGUIUtility.singleLineHeight)*0.5f;extraSpaceBeforeIconAndLabel=kIconWidth;}// ================== 新增:选中同步到 Project ==================protectedoverridevoidSelectionChanged(IList<int>selectedIds){if(selectedIds==null||selectedIds.Count==0)return;List<Object>objects=newList<Object>();foreach(varidinselectedIds){varitem=FindItem(id,rootItem)asAssetViewItem;if(item==null||item.data==null)continue;stringpath=item.data.path;if(string.IsNullOrEmpty(path))continue;varobj=AssetDatabase.LoadAssetAtPath<Object>(path);if(obj!=null)objects.Add(obj);}if(objects.Count>0){Selection.objects=objects.ToArray();EditorGUIUtility.PingObject(objects[0]);}}// =============================================================protectedoverridevoidContextClickedItem(intid){SetExpanded(id,!IsExpanded(id));}protectedoverridevoidDoubleClickedItem(intid){varitem=FindItem(id,rootItem)asAssetViewItem;if(item!=null&&item.data!=null){varassetObject=AssetDatabase.LoadAssetAtPath<Object>(item.data.path);if(assetObject!=null){EditorUtility.FocusProjectWindow();Selection.activeObject=assetObject;EditorGUIUtility.PingObject(assetObject);}}}publicstaticMultiColumnHeaderStateCreateDefaultMultiColumnHeaderState(floattreeViewWidth){varcolumns=new[]{newMultiColumnHeaderState.Column{headerContent=newGUIContent("Name"),headerTextAlignment=TextAlignment.Center,width=200,minWidth=60,autoResize=false,allowToggleVisibility=false,canSort=false},newMultiColumnHeaderState.Column{headerContent=newGUIContent("Path"),headerTextAlignment=TextAlignment.Center,width=360,minWidth=60,autoResize=false,allowToggleVisibility=false,canSort=false},newMultiColumnHeaderState.Column{headerContent=newGUIContent("State"),headerTextAlignment=TextAlignment.Center,width=60,minWidth=60,autoResize=false,allowToggleVisibility=true,canSort=false},};returnnewMultiColumnHeaderState(columns);}protectedoverrideTreeViewItemBuildRoot(){returnassetRoot;}protectedoverridevoidRowGUI(RowGUIArgsargs){varitem=(AssetViewItem)args.item;for(inti=0;i<args.GetNumVisibleColumns();++i){CellGUI(args.GetCellRect(i),item,(MyColumns)args.GetColumn(i),refargs);}}voidCellGUI(RectcellRect,AssetViewItemitem,MyColumnscolumn,refRowGUIArgsargs){CenterRectUsingSingleLineHeight(refcellRect);switch(column){caseMyColumns.Name:variconRect=cellRect;iconRect.x+=GetContentIndent(item);iconRect.width=kIconWidth;if(iconRect.x<cellRect.xMax){varicon=GetIcon(item.data.path);if(icon!=null)GUI.DrawTexture(iconRect,icon,ScaleMode.ScaleToFit);}args.rowRect=cellRect;base.RowGUI(args);break;caseMyColumns.Path:GUI.Label(cellRect,item.data.path);break;caseMyColumns.State:GUI.Label(cellRect,ReferenceFinderData.GetInfoByState(item.data.state),stateGUIStyle);break;}}privateTexture2DGetIcon(stringpath){Objectobj=AssetDatabase.LoadAssetAtPath<Object>(path);if(obj!=null){Texture2Dicon=AssetPreview.GetMiniThumbnail(obj);if(icon==null)icon=AssetPreview.GetMiniTypeThumbnail(obj.GetType());returnicon;}returnnull;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 8:23:23

探索图像滤波去噪:MATLAB GUI的奇妙之旅

图像滤波去噪 MATLAB GUI【带报告】 本链接包含 MATLAB代码&#xff0c;代码&#xff0c;【带word 大报告】。 对图像添加高斯 噪声、椒盐噪声&#xff0c;可进行 均值滤波、中值滤波、同态滤波、小波阈值去噪等多种处理。在图像处理领域&#xff0c;噪声就像是讨人厌的小恶魔&…

作者头像 李华
网站建设 2026/6/10 16:45:39

vue基于Spring Boot的军事论坛军迷交流平台_6c496w86

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/6/9 19:47:11

vue基于Spring Boot的灌区取用水量调配信息管理系统的应用和研究_2dw80bw4

目录 具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring…

作者头像 李华
网站建设 2026/6/10 21:58:30

vue基于Spring Boot的检察院企业单位会议记录系统的应用和研究_44l22b02

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/6/10 18:00:36

嵌入式周记1

Duration&#xff1a;12月8日&#xff08;周一&#xff09;----10月14日&#xff08;周日&#xff09; 文章目录Duration&#xff1a;12月8日&#xff08;周一&#xff09;----10月14日&#xff08;周日&#xff09;总结&#xff1a;例程1、timg_32bit_timer_mode_periodic_sle…

作者头像 李华