尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【AI教做人】UnityEditor扩展开发--关卡编辑器SceneView 面板入门代码
最终截图如下实现 SceneView 的扩展开发找了一个开源项目就一个代码------就好像ParticleSystem 可以做Scene View 的操作浮空面板https://github.com/unitycoder/OverlayWindowContainer但是我也不知道怎么用啊用AI写一个代码//需要用到上面的github 代码, //一直在Update 创建可能有些问题using UnityEditor; using UnityEngine; using Plugins.Editor; //需要用到上面的github 代码Container public class SceneViewOverlayWindow : EditorWindow { private OverlayWindowContainer infoOverlay; private OverlayWindowContainer toolsOverlay; private bool overlaysActive; private string infoText 暂无信息; private Color overlayColor Color.white; [MenuItem(Tools/SceneView Overlay 面板)] private static void Open() { var win GetWindowSceneViewOverlayWindow(SceneView Overlay); win.minSize new Vector2(360, 280); win.Show(); } private void OnEnable() { SceneView.duringSceneGui OnSceneGUI; } private void OnDisable() { SceneView.duringSceneGui - OnSceneGUI; overlaysActive false; } private void OnSceneGUI(SceneView sceneView) { if (!overlaysActive) return; // 第一个面板场景信息 if (infoOverlay null) { infoOverlay new OverlayWindowContainer( new GUIContent(场景信息), DrawInfoOverlay, 0, this, OverlayWindowContainer.WindowDisplayOption.OneWindowPerTitle); } infoOverlay.OnGUI(); // 第二个面板快捷工具 if (toolsOverlay null) { toolsOverlay new OverlayWindowContainer( new GUIContent(快捷工具), DrawToolsOverlay, 1, this, OverlayWindowContainer.WindowDisplayOption.OneWindowPerTitle); } toolsOverlay.OnGUI(); } private void DrawInfoOverlay(UnityEngine.Object target, SceneView sceneView) { var activeScene UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene(); EditorGUILayout.LabelField(场景, activeScene.name); EditorGUILayout.LabelField(根对象, activeScene.rootCount.ToString()); EditorGUILayout.LabelField(路径, activeScene.path); if (Selection.activeGameObject ! null) { EditorGUILayout.Space(4); EditorGUILayout.LabelField(选中, Selection.activeGameObject.name); EditorGUILayout.LabelField(位置, Selection.activeGameObject.transform.position.ToString(F2)); } } private void DrawToolsOverlay(UnityEngine.Object target, SceneView sceneView) { GUILayout.Label(快捷操作, EditorStyles.boldLabel); if (GUILayout.Button(创建空对象, EditorStyles.miniButton)) { var go new GameObject(GameObject); Undo.RegisterCreatedObjectUndo(go, Create GameObject); Selection.activeGameObject go; } if (GUILayout.Button(截图 SceneView, EditorStyles.miniButton)) { var path $Temp/SceneView_{System.DateTime.Now:HHmmss}.png; var tex CaptureSceneView(sceneView); if (tex ! null) { System.IO.File.WriteAllBytes(path, tex.EncodeToPNG()); Debug.Log($截图已保存: {path}); } } EditorGUILayout.Space(4); overlayColor EditorGUILayout.ColorField(颜色, overlayColor); } private Texture2D CaptureSceneView(SceneView sceneView) { var camera sceneView.camera; if (camera null) return null; var renderTexture camera.targetTexture; var currentRT RenderTexture.active; var rt new RenderTexture((int)sceneView.position.width, (int)sceneView.position.height, 24); camera.targetTexture rt; RenderTexture.active rt; camera.Render(); var tex new Texture2D(rt.width, rt.height, TextureFormat.RGB24, false); tex.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0); tex.Apply(); camera.targetTexture renderTexture; RenderTexture.active currentRT; Object.DestroyImmediate(rt); return tex; } private void OnGUI() { GUILayout.Space(8); EditorGUILayout.LabelField(SceneView Overlay 面板, EditorStyles.boldLabel); EditorGUILayout.HelpBox( 点击下方按钮在 SceneView 中显示/隐藏浮动面板。\n OverlayWindowContainer 通过反射调用 Unity 内部 SceneViewOverlay API。, MessageType.Info); GUILayout.Space(10); if (GUILayout.Button(overlaysActive ? 关闭 Overlay 面板 : 开启 Overlay 面板, GUILayout.Height(32))) { overlaysActive !overlaysActive; SceneView.RepaintAll(); } GUILayout.Space(8); if (overlaysActive) { EditorGUILayout.LabelField(状态, 已激活, EditorStyles.boldLabel); EditorGUILayout.LabelField(面板数量, 2 (场景信息 快捷工具)); } else { EditorGUILayout.LabelField(状态, 未激活, EditorStyles.boldLabel); } } }无厘头的参考。Net Framework正寻思个要不要再装个vs2015?左看右看vs2015好像最低支持.net framework 4啊难道要装个vs2010?我记得肯定用vs2015开发过插件呀微软这么正log4cat这种开源都编译不了的啊万一来个framework3.5的开源也跑不了都要重新安装对的环境吗微软二十年每年一个版本怎么才能装对啊。。。。反正最后搜到一句“xxxxxxxxxx就知道解决方法 了。net 天生不是开源的放弃了紧靠官方更新到猴年马月参考https://www.outsystems.com/blog/posts/migrating-from-net-framework-to-net-core/https://blog.csdn.net/weixin_40007175/article/details/111199573Docker Hub必须添加对程序集“netstandard, Version2.0.0.0, Cultureneutral, PublicKeyTokencc7b13ffcd2ddd51”的引用_hello_yajing的博客-CSDN博客_必须添加netstandard
RELATED

相关推荐

内容质量:打造能够持续获取海外询盘的专业型外贸网站

内容质量:打造能够持续获取海外询盘的专业型外贸网站

在全球采购数字化趋势下,海外客户寻找供应商的方式正在发生变化。 过去,外贸企业主要依靠展会、B2B平台和业务员开发客户;如今,越来越多采购商会在联系供应商之前,通过Google搜索企业官网、产品资料、技术文章和行业案…

📅 2026/9/29 4:31:28
系统集成项目管理工程师教程(第3版)笔记——第12章:执行过程组

系统集成项目管理工程师教程(第3版)笔记——第12章:执行过程组

第12章:执行过程组 执行过程组是项目管理中“动手做”的阶段,就像一次旅行的实际出行过程。它负责完成项目管理计划中确定的工作,满足项目要求。本章涵盖10个过程,它们并行开展,共同推动项目向前发展。执行过程组通常消…

📅 2026/9/8 23:45:37
老码农手把手教你选型AI Agent框架,从工程落地踩坑到实战指南

老码农手把手教你选型AI Agent框架,从工程落地踩坑到实战指南

本文从工程落地角度,介绍了AI Agent框架的三条技术路线:图/工作流编排、多Agent协作、工具调用/函数调用,并分析了每种路线的优缺点。文章重点讲解了LangGraph的实战应用,强调了状态管理的重要性。同时,探讨了多Agent协…

📅 2026/8/31 22:59:02
MORE NEWS

更多资讯

📰

同城电商系统:库存变更怎么同步到订单

同城电商系统库存变更若不同步到订单占用层,会出现「后台显示有货、实际已被未支付单占满」。宜库存 物理量 - 占用量;占用在下单创建,支付成功转实扣,超时释放。模型 sku_stock: on_hand sku_hold: sum(active holds) available…

📰

STR-Agent:一种用于 LEO 卫星网络中 QoS 感知路由的 LLM 驱动智能体

大家读完觉得有帮助记得关注和点赞!!!摘要 LEO 卫星网络具有动态拓扑、时变链路和多样化服务需求,这使得传统路由方案难以支持细粒度的服务质量(QoS)保障。现有研究主要在网络状态上以预定义目标优化路由&a…

📰

面向低信噪比信道下多任务卫星遥感的任务导向语义特征传输

大家读完觉得有帮助记得关注和点赞!!!摘要 传统卫星遥感传输遵循“先重建后推理”范式,该范式优化像素级保真度,与分类和检测等下游任务产生目标不匹配,尤其是在低信噪比(SNR)条件下…

📰

【AI产品经理实战】Day 19|Python破冰第一天:从本地报错到云端跑通

| 进度条:学习第 19 天|当前完成度:【17%】 |📎 今日速览:完成Python第一天“环境搭建变量数据类型”任务,本地遇阻果断切换云端,成功跑通代码并完成10题练习。最重要的是打破了“工具恐惧”&am…

📰

MySQL 8.0 GDB源码调试MVCC一致性读

在 MySQL 中,一致性读,也被称为"快照读"。一致性读是通过 read view undo 版本重建,不会加锁,也不会阻塞其他事务的读,大大提高了并发读取的效率。 启动 gdb,设置断点,跟踪对应的函数…

📰

IDEA 接入智谱 GLM-4.7 及 config.json 配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬