合肥 网站设计,wordpress二维码支付宝,学院二级网站建设方案模板,新网网站空间购买想要使用UnityEditorWindow作为调试窗口吗#xff1f;
这样做可以很方便的针对游戏中的重要对象做调试。
但是有一个很不方便的地方#xff0c;OnGUI 的刷新频率不高#xff0c;或者说需要鼠标点击之后才会重绘#xff0c;如何解决这一问题#xff1f;
可以如下操作
这样做可以很方便的针对游戏中的重要对象做调试。
但是有一个很不方便的地方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.GetWindowBuffDebugWindow();window.Show();}private void OnGUI(){if (!Application.isPlaying)return;if (_manager null){_manager FindObjectOfTypeBuffManager();}if (_manager null){return;}ListBuffBase 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 信息。