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

关于 UnityEditorWindow

想要使用UnityEditorWindow作为调试窗口吗?

这样做可以很方便的针对游戏中的重要对象做调试。

但是有一个很不方便的地方,OnGUI 的刷新频率不高,或者说需要鼠标点击之后才会重绘,如何解决这一问题?

可以如下操作:

在 Update 函数中调用 Repaint();

using System;
using System.Collections.Generic;
using System.Text;
using cfg.Config;
using InPlayBuff;
using UnityEditor;
using UnityEngine;public class BuffDebugWindow : EditorWindow
{[MenuItem("SoyBean/Debug/Buff")]private static void ShowBuffDebugInspector(){BuffDebugWindow window = EditorWindow.GetWindow<BuffDebugWindow>();window.Show();}private void OnGUI(){if (!Application.isPlaying)return;if (_manager == null){_manager = FindObjectOfType<BuffManager>();}if (_manager == null){return;}List<BuffBase> allBuff = _manager.GetAllBuff();for (int i = 0; i < allBuff.Count; i++){BuffBase buff = allBuff[i];DrawBuffInfo(buff);}}private void DrawBuffInfo(BuffBase buff){StringBuilder builder = new StringBuilder();builder.Append(buff.Owner.name);builder.Append(" | ");builder.Append(buff.Name);builder.Append(" | ");builder.Append(buff.RemainingDuration);builder.Append(" | ");builder.Append(buff.CurrentLevel);builder.Append(" | ");builder.Append(buff.Description);builder.Append(" | ");if (buff is SpecialDataBuff){SpecialDataBuff specialDataBuff = buff as SpecialDataBuff;for (int i = 0; i < specialDataBuff.Data.AttributeNumber1.Count; i++){builder.Append($"效果{i}:");IDToFloat idToFloat = specialDataBuff.Data.AttributeNumber1[i];builder.Append(LubanConfigManager.Instance.Tables.AttributesDataConfig.Get(idToFloat.ID).Name);builder.Append($"{idToFloat.Value} ");}}EditorGUILayout.LabelField(builder.ToString());}private void Update(){if (_manager != null){Repaint();}}private BuffManager _manager;
}

这里是我写的一个 buff 实时查看调试器。

在游戏运行起来的时候此调试器才会工作,这个调试器会实时展示当前游戏中存在的 buff 信息。

http://www.lryc.cn/news/329182.html

相关文章:

  • 小狐狸JSON-RPC:wallet_addEthereumChain(添加指定链)
  • Pandas | value_counts() 的详细用法
  • 上岸美团了!
  • Gemma开源AI指南
  • LabVIEW智能家居安防系统
  • [蓝桥杯 2022 省 A] 求和
  • 【C++入门】输入输出、命名空间、缺省参数、函数重载、引用、内联函数、auto、基于范围的for循环
  • Docker + Nginx 安装
  • UE RPC 外网联机(1)
  • AI预测福彩3D第22弹【2024年3月31日预测--第5套算法开始计算第4次测试】
  • Django(二)-搭建第一个应用(1)
  • 前端bugs
  • MCGS学习——水位控制
  • 本地搭建多人协作ONLYOFFICE文档服务器并结合Cpolar内网穿透实现公网访问远程办公
  • Ubuntu 中电子邮件处理工具
  • java多线程——运用线程同步解决线程安全问题
  • Radio Silence for mac 好用的防火墙软件
  • 全国青少年软件编程(Python)等级考试一级考试真题2023年9月——持续更新.....
  • TCP通信——端口转发(重点内容)
  • 乐乐音乐鸿蒙版-支持krc歌词(动感歌词、翻译和音译歌词)
  • 批量删除 rabbitmq中随机队列
  • docker 数据卷
  • 【开发工具】Ubuntu复制CSDN代码多余符号的去除
  • 【微服务篇】深入理解微服务注册中心与配置中心
  • 数据库安全(redis、couchdb、h2database)CVE复现
  • 道可云元宇宙每日资讯|元宇宙标准化工作组成立大会召开
  • 20240322-2-Catboost面试题
  • 【PSINS工具箱】EKF与UKF滤波
  • UOS部署oceanbase
  • Hive查询转换与Hadoop生态系统引擎与优势