当前位置: 首页 > news >正文

济南市住建局官网/武汉网站seo公司

济南市住建局官网,武汉网站seo公司,什么网站可以做直播,网页游戏排行榜前十名评论目录 1.功能概述 2.完整代码 3. 实现原理 4. 使用预览 5.新增优化版本 在Unity项目开发过程中,管理和维护资源之间的引用关系是至关重要的。当然我们项目也是需要这个功能 毕竟项目大了之后查找资源引用还是交给 资源引用查找器 比较好。 1.功能概述 资源引用…

目录

1.功能概述

2.完整代码

3. 实现原理

4. 使用预览

5.新增优化版本


在Unity项目开发过程中,管理和维护资源之间的引用关系是至关重要的。当然我们项目也是需要这个功能 毕竟项目大了之后查找资源引用还是交给 资源引用查找器 比较好。

1.功能概述

资源引用查找器允许开发者选择一个目标资源,并在整个项目中查找引用了该资源的其他资源。其主要功能包括:

  • 在Unity编辑器菜单栏下添加一个名为"Resource Reference Finder"的菜单项。
  • 提供一个可调整大小的窗口,用于选择目标资源和显示引用结果。
  • 通过点击"Search"按钮来触发搜索过程,查找所有引用了目标资源的Prefab文件,并将结果展示在窗口中。

2.完整代码

using UnityEditor;
using UnityEngine;
using System.Collections.Generic;
using System.IO;public class ResourceReferenceFinder : EditorWindow
{[MenuItem("Assets/Resource Reference Finder")]static void SearchReference(){GetWindow<ResourceReferenceFinder>("Resource Reference Finder");}private static Object targetResource;private List<Object> referencingAssets = new List<Object>();private Vector2 scrollPosition;private void OnGUI(){// 显示资源选择字段和搜索按钮EditorGUILayout.BeginHorizontal();GUILayout.Label("Select Target Resource:", GUILayout.Width(150));targetResource = EditorGUILayout.ObjectField(targetResource, typeof(Object), true, GUILayout.Width(200));if (GUILayout.Button("Search", GUILayout.Width(100))){ReferenceFinder();}EditorGUILayout.EndHorizontal();// 滚动视图开始scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);EditorGUILayout.BeginVertical();// 显示搜索结果for (int i = 0; i < referencingAssets.Count; i++){EditorGUILayout.ObjectField(referencingAssets[i], typeof(Object), true, GUILayout.Width(300));}EditorGUILayout.EndVertical();EditorGUILayout.EndScrollView();// 滚动视图结束}// 查找引用private void ReferenceFinder(){referencingAssets.Clear();// 检查是否选择了资源if (targetResource == null){Debug.LogWarning("Please select a resource to search for references.");return;}// 获取选择资源的 GUIDstring assetPath = AssetDatabase.GetAssetPath(targetResource);string assetGuid = AssetDatabase.AssetPathToGUID(assetPath);// 遍历项目中所有 Prefab 文件string[] guids = AssetDatabase.FindAssets("t:Prefab", new[] { "Assets" });int length = guids.Length;for (int i = 0; i < length; i++){string filePath = AssetDatabase.GUIDToAssetPath(guids[i]);EditorUtility.DisplayCancelableProgressBar("Checking", filePath, (float)i / length);// 读取 Prefab 文件内容,检查是否包含选择资源的 GUIDstring content = File.ReadAllText(filePath);if (content.Contains(assetGuid)){// 如果包含,将该 Prefab 添加到结果列表中Object referencingAsset = AssetDatabase.LoadAssetAtPath(filePath, typeof(Object));referencingAssets.Add(referencingAsset);}}// 清除进度条EditorUtility.ClearProgressBar();}
}

3. 实现原理

  • 使用Unity编辑器提供的MenuItem特性,在菜单栏下添加了一个自定义的菜单项,用于触发资源引用查找器窗口的显示。
  • 创建了一个继承自EditorWindow的窗口类,实现了GUI绘制和资源引用搜索的逻辑。
  • 在GUI中,通过ObjectFieldButton控件实现了目标资源的选择和搜索按钮的功能。
  • 使用AssetDatabase类来访问项目中的资源,并通过FindAssets方法查找所有Prefab文件。
  • 读取Prefab文件的内容,检查是否包含目标资源的GUID,如果是,则将该Prefab添加到引用结果列表中。

4. 使用预览

查找Prefab引用

查找图片引用

5.新增优化版本

新增优化版本右键直接选中需要查找的资源  直接省略繁琐步骤 完整代码如下

using UnityEditor;
using UnityEngine;
using System.Collections.Generic;
using System.IO;public class ResourceReferenceFinder : EditorWindow
{private List<Object> referencingAssets = new List<Object>();private Vector2 scrollPosition;[MenuItem("Assets/ZYT ASSETS/Find References", true)]private static bool ValidateSearchReference(){// 只在选中了对象且不是文件夹时才显示菜单项return Selection.activeObject != null && !AssetDatabase.IsValidFolder(AssetDatabase.GetAssetPath(Selection.activeObject));}[MenuItem("Assets/ZYT ASSETS/Find References")]private static void SearchReference(){// 创建并打开资源引用查找窗口if (Selection.activeObject != null && !AssetDatabase.IsValidFolder(AssetDatabase.GetAssetPath(Selection.activeObject))){GetWindow<ResourceReferenceFinder>("Resource Reference Finder").ReferenceFinder(Selection.activeObject);}}private void OnGUI(){// 显示搜索结果EditorGUILayout.LabelField("Search Results:");// 滚动视图开始scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);EditorGUILayout.BeginVertical();// 显示搜索结果for (int i = 0; i < referencingAssets.Count; i++){EditorGUILayout.ObjectField(referencingAssets[i], typeof(Object), true, GUILayout.Width(300));}EditorGUILayout.EndVertical();EditorGUILayout.EndScrollView();// 滚动视图结束}// 查找引用private void ReferenceFinder(Object targetResource){referencingAssets.Clear();// 获取选择资源的 GUIDstring assetPath = AssetDatabase.GetAssetPath(targetResource);string assetGuid = AssetDatabase.AssetPathToGUID(assetPath);// 遍历项目中所有 Prefab 文件string[] guids = AssetDatabase.FindAssets("t:Prefab", new[] { "Assets" });int length = guids.Length;for (int i = 0; i < length; i++){string filePath = AssetDatabase.GUIDToAssetPath(guids[i]);EditorUtility.DisplayCancelableProgressBar("Checking", filePath, (float)i / length);// 读取 Prefab 文件内容,检查是否包含选择资源的 GUIDstring content = File.ReadAllText(filePath);if (content.Contains(assetGuid)){// 如果包含,将该 Prefab 添加到结果列表中Object referencingAsset = AssetDatabase.LoadAssetAtPath(filePath, typeof(Object));referencingAssets.Add(referencingAsset);}}// 清除进度条EditorUtility.ClearProgressBar();}
}

 使用方法  

如果未选中资源则是如下状况 工具是没法使用的

下图是现在修改后的界面

相关文章:

Unity 编辑器工具 - 资源引用查找器

目录 1.功能概述 2.完整代码 3. 实现原理 4. 使用预览 5.新增优化版本 在Unity项目开发过程中&#xff0c;管理和维护资源之间的引用关系是至关重要的。当然我们项目也是需要这个功能 毕竟项目大了之后查找资源引用还是交给 资源引用查找器 比较好。 1.功能概述 资源引用…...

MySQL中的批量更新实战

MySQL中的批量更新实战 表结构 mysql> desc dept; --------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | --------------------------------------------------------- | deptno | int(11) …...

为软件教学文档增加实践能力

为了更方便软件教学&#xff0c;我们在凌鲨(OpenLinkSaas)上增加了公共资源引用的功能。 目前可以被引用的公共资源: 微应用常用软件公共知识库Docker模板 引用公共资源 引用微应用 目前微应用包含了主流数据库&#xff0c;终端等工具&#xff0c;可以方便的进行各种相关实…...

39-2 Web应用防火墙 - WAF数据库层绕过

如果你本地没有安装mysql就先安装一下:4-2 MySQL 的下载与安装_mysql5.7.9.1下载-CSDN博客 一、数据库层绕过简介 绕过数据库层通常用于规避Web应用防火墙(WAF)的SQL注入防护规则。攻击者需要利用数据库特性,寻找规避常规安全策略的方法。这里涉及到不同数据库的特性、SQ…...

薪酬激励策略:留住企业核心人才的关键

在竞争激烈的商业环境中&#xff0c;企业为了保持竞争力和市场地位&#xff0c;必须高度重视人才的管理和发展。企业的核心人才是推动企业发展的关键因素&#xff0c;因此&#xff0c;如何有效地激励和留住这些核心人才&#xff0c;成为企业持续发展的关键之一。薪酬激励策略作…...

【bbs02补】注册功能form组件-前端-后端-总结、登录功能(前端、后端、生成验证码)

1 注册功能 1.1 注册功能form组件 1.2 注册功能前端 1.3 注册功能后端 1.4 forms组件和前后端总结 2 登录功能 2.1 登录前端 2.2 生成验证码 1 注册功能 1.1 注册功能form组件 # 注册页面-用户名-密码-确认密码-邮箱-手机号-头像# form组件 可以帮助我们1 快速生成前端页面2 数…...

MindSponge分子动力学模拟——定义一个分子系统

技术背景 在前面两篇文章中&#xff0c;我们分别介绍了分子动力学模拟软件MindSponge的软件架构和安装与使用。这里我们进入到实用化阶段&#xff0c;假定大家都已经在本地部署好了基于MindSpore的MindSponge的编程环境&#xff0c;开始用MindSponge去做一些真正的分子模拟的工…...

unity想让方法带一个默认参数怎么写

在C#中&#xff0c;包括Unity使用的C#版本&#xff0c;你可以为方法参数提供默认值。这允许你在调用方法时省略某些参数&#xff0c;并使用这些参数的默认值。以下是如何为一个方法参数设置默认值的示例&#xff1a; using UnityEngine; public class MyClass : MonoBehaviou…...

从零开始的软件测试学习之旅(六)测试网络基础知识

测试网络基础知识 HTTP和HTMLURLDNS客户端和服务器请求方法和状态码面试高频Fiddler抓包工具教学弱网 HTTP和HTML 概念 html: HyperText Markup Language 超文本标记语言 http: HyperText Transfer Protocol 超文本传输协议 超文本: 图片, 音频, 视频 关系:http 可以对 html 的…...

NSS题目练习

[SWPUCTF 2021 新生赛]gift_F12 通过题目提示可以知道flag应该可以在源代码中找到 查看源代码&#xff0c;直接用 ctrlf 搜索flag即可 [SWPUCTF 2021 新生赛]jicao 题目打开后能看到一串php代码&#xff0c;要求是用post传参传入idwllmNB以及用get传参传入json[x]"wllm&q…...

Springboot+vue项目零食销售商城

摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;零食销售商城当然也不能排除在外。零食销售商城是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff…...

cesium 雷达遮罩(电弧球效果)

cesium 雷达遮罩(电弧球效果) 以下为源码直接复制可用 1、实现思路 通过修改“material”材质来实现轨迹球效果 2、代码示例 2.1 index.html <!DOCTYPE html> <html lang="en"><head><!...

W801学习笔记二十三:语文和英语学习应用的代码汇总

前面几章&#xff0c;代码经过重构&#xff0c;可能有点乱。这里给个最终版本&#xff0c;以供参考。 1、应用基类&#xff1a; IScean.h enum SceanResult{SceanResult_EXIT 1, SceanResult_Done 2 };class IScean {public:IScean();virtual ~IScean();// 纯虚函数virtu…...

安卓LayoutParams浅析

目录 前言一、使用 LayoutParams 设置宽高二、不设置 LayoutParams2.1 TextView 的 LayoutParams2.2 LinearLayout 的 LayoutParams 三、getLayoutParams 的使用四、setLayoutParams 的作用五、使用 setWidth/setHeight 设置宽高 前言 先来看一个简单的布局&#xff0c;先用 x…...

UltralSO制作启动盘时报错:磁盘/映像容量太小解决办法

UltralSO制作启动盘时报错&#xff1a;磁盘/映像容量太小解决办法 发现网上随便下载的UltralSO制作启动盘时报错&#xff1a;磁盘/映像容量太小&#xff0c;导致制作启动盘出错 解决方案&#xff1a; 去这个地址下载&#xff1a;https://cn.ultraiso.net/xiazai.html 下载正版…...

2024-05-09四月初二周四

2024-05-09四月初二周四 06:40-23:00 深兰Ai第五期 Part1:课时258&#xff1a;00:00:00 12:30-13:00 午饭烧水&#xff1a; 13:30-23:00 机器学习 19:00-20:00 晚饭&#xff1a; 20:00-23:00 coding 2.5 特征降维 unending 23:00-06:30 烧水资料下载...

【微服务】springcloud整合dubbo3使用nacos作为注册中心

目录 一、前言 二、springboot版本升级带来的问题 2.1 springboot为什么需要升级版本...

php中常用的数据类型汇总

在 PHP 中&#xff0c;常用的数据类型主要有以下几种&#xff1a; 标量类型&#xff08;Scalar Types&#xff09; integer&#xff08;整型&#xff09;&#xff1a;用于存储整数&#xff0c;可以是正数或负数。float&#xff08;浮点型/双精度型&#xff09;&#xff1a;用于…...

【源码阅读】Golang中的go-sql-driver库源码探究

文章目录 前言一、go-sql-driver/mysql1、驱动注册&#xff1a;sql.Register2、驱动实现&#xff1a;MysqlDriver3、RegisterDialContext 二、总结 前言 在上篇文章中我们知道&#xff0c;database/sql只是提供了驱动相关的接口&#xff0c;并没有相关的具体实现&#xff0c;具…...

2024-05-08 postgres-火山模型-执行-记录

摘要: 2024-05-08 postgres-火山模型-执行-记录 上下文: 2024-05-08 postgres-调试及分析-记录-CSDN博客 火山模型: 数据流是在查询树上&#xff0c;自上而下进行拉取&#xff0c;由上而下的调用。树本身就表明了数据的流动。每次执行一个元组&#xff0c;也就类似于迭代器的…...

QT5带UI的常用控件

目录 新建工程&#xff0c;Qmainwindow带UI UI设计器 常用控件区 Buttons 按钮 containers 容器 控件属性区域 对象监视区 布局工具区 信号与槽区 简单例子1 放置一个按钮控件&#xff0c;改文本为发送&#xff0c;该按键为Button1&#xff1b; 按钮关联信号和…...

识货小程序逆向

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872&#xff0c;x30184483x…...

【OceanBase 系列】—— OceanBase v4.3 特性解读:查询性能提升之利器列存储引擎

原文链接&#xff1a;OceanBase 社区 对于分析类查询&#xff0c;列存可以极大地提升查询性能&#xff0c;也是 OceanBase 做好 HTAP 和 OLAP 的一项不可缺少的特性。本文介绍 OceanBase 列存的实现特色。 OceanBase从诞生起就一直坚持LSM-Tree架构&#xff0c;不断打磨功能支…...

【Java开发的我出书啦,各位同仁快过来围观】!!!

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容出书的目的出书的过程书籍的内容 &#x1f4e5;博主的话 &#x1f50a;博主介绍 文章目录 &#x1f50a;博主介绍&#x1f964;本文内容出书的目的出书的过程书籍的内容 &#x1f4e5;博主的话 &#x1f33e;阅读前&#x…...

AI预测福彩3D第10套算法实战化赚米验证第1弹2024年5月5日第1次测试

从今天开始&#xff0c;准备启用第10套算法&#xff0c;来验证下本算法的可行性。因为本算法通过近三十期的内测&#xff08;内测版没有公开预测结果&#xff09;&#xff0c;发现本算法的预测结果优于其他所有算法的效果。彩票预测只有实战才能检验是否有效&#xff0c;只有真…...

leetcode 2944.购买水果需要的最小金币

思路&#xff1a;dp 这道题一开始想的时候并不会&#xff0c;但是看到了有些水果可以买也可以不买&#xff0c;所以就想到了选择与不选择的思路。 对于每一个水果&#xff0c;我们都有买和不买的选择&#xff0c;但是我们的第一个水果是一定要买的。然后再往后推导。 用dp[]…...

算法人生(14):从“探索平衡策略”看“生活工作的平衡之道”

在强化学习中&#xff0c;有一种策略叫“探索平衡策略Exploration-Exploitation Trade-off&#xff09;”&#xff0c;这种策略的核心是在探索未知领域&#xff08;以获取更多信息&#xff09;和利用已知信息&#xff08;来最大化即时回报&#xff09;之间寻求平衡&#xff0c;…...

如何使用Tushare+ Backtrader进行股票量化策略回测

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…...

Guid转换为字符串

在理想情况下&#xff0c;任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2128&#xff08;3.41038&#xff09;个&#xff0c;所以随机生成两个相同GUID的可能性非常小&#xff0c;但并不为0。GUID一词有时也专指微软对UUID标准的实现。 (1). GUID&#…...

OpenAI的搜索引擎要来了!

最近的报道和业界泄露信息显示&#xff0c;OpenAI正秘密研发一款新的搜索引擎&#xff0c;可能叫SearchGPT或Sonic&#xff0c;目标是挑战Google的搜索霸权。预计这款搜索引擎可能在5月9日即将到来的活动中正式亮相。 SearchGPT的蛛丝马迹 尽管OpenAI对SearchGPT尚未表态&…...