码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Unity OnGUI调试工具


    背景

            在产品开发过程中调试数据是必不可少的过程之一,那么涉及到频繁的设置数据、运行unity等一系列繁琐的操作,有没有更好的办法呢?答案是肯定有更好的办法。这里我所用到的是unity自带的OnGUI相关的工具可以实时的更改数据调试。

    代码

    1. using System;
    2. using System.Collections;
    3. using System.Collections.Generic;
    4. using RapidGUI;
    5. using UnityEngine;
    6. public class DebugTool : MonoBehaviour
    7. {
    8. private WindowLaunchers _debugWindows;
    9. private Rect _mainRect = new Rect(10, 10, 600, 800);
    10. private Vector2 _scrollRect;
    11. private bool isShow = false;
    12. private Vector2 _scrollViews = Vector2.zero;
    13. private void Start()
    14. {
    15. _debugWindows = new WindowLaunchers() { isWindow = false};
    16. InitWondow();
    17. }
    18. private float _value = 0;
    19. private void InitWondow()
    20. {
    21. _debugWindows.Add("调试slider", () =>
    22. {
    23. _value = RGUI.Slider(_value, 0, 1, "slider的数值");
    24. });
    25. _debugWindows.Add("调试button", () =>
    26. {
    27. if (GUILayout.Button("button1")) {
    28. Debug.LogError("this is button1");
    29. }
    30. if (GUILayout.Button("button2")) {
    31. Debug.LogError("this is button2");
    32. }
    33. });
    34. _debugWindows.Add("调试text", () =>
    35. {
    36. RGUI.Field(0, "文本显示");
    37. });
    38. _debugWindows.Add("调试ScrollView", () =>
    39. {
    40. _scrollViews =
    41. GUILayout.BeginScrollView(_scrollViews, GUILayout.Width(1200), GUILayout.Height(600));
    42. foreach (var item in tasks) {
    43. float progress = 0f;
    44. if (item.Status != DownLoadTaskStatus.Downloading &&
    45. item.Status != DownLoadTaskStatus.RemoteDownloading) {
    46. progress = 0f;
    47. }
    48. else if (item.Status == DownLoadTaskStatus.Downloading) {
    49. progress = (float)item.DownloadSize / (float)item.TotalSize;
    50. }
    51. else {
    52. progress = (float)item.RemoteDownloadSize / (float)item.TotalSize;
    53. }
    54. RGUI.Slider(progress, 0f, 1.0f,
    55. $"{item.Desc} [状态:{item.Status}] 速度:{StringUtils.FormatSize(item.Speed)}/秒");
    56. }
    57. GUILayout.EndScrollView();
    58. });
    59. }
    60. private void Update()
    61. {
    62. if (Input.GetKeyDown(KeyCode.F1))
    63. {
    64. isShow = !isShow;
    65. }
    66. }
    67. private void OnGUI()
    68. {
    69. if (!isShow) return;
    70. _mainRect = GUI.Window(0, _mainRect, (id) =>
    71. {
    72. _scrollRect = GUILayout.BeginScrollView(_scrollRect, false, true, GUILayout.Width(600),
    73. GUILayout.Height(800));
    74. GUILayout.BeginVertical(GUILayout.Width(600), GUILayout.Height(800));
    75. _debugWindows.DoGUI();
    76. GUILayout.Space(20);
    77. GUILayout.EndVertical();
    78. GUILayout.EndScrollView();
    79. },"调试窗口");
    80. }
    81. }

    效果

    代码链接

                    https://download.csdn.net/download/ThreePointsHeat/88463003

  • 相关阅读:
    Java项目(三)-- SSM开发社交网站(1)--SSM整合之Spring与Spring MVC环境配置
    【Ant Design Table + React】表格列伸缩实现
    树莓派系统的安装教程
    java-php-python-ssm计算机类专业考研交流学习平台计算机毕业设计
    LeetCode 0318. 最大单词长度乘积
    Mysql---第七篇
    【CSDN竞赛】练习题(练手题)及解析(含代码+注释):小玉家的电费;饿龙咆哮-逃离城堡;收件邮箱;寻找宝藏山
    基于传统Session的登录
    uniapp:如何实现点击图片可以全屏展示预览
    Nginx配置origin限制跨域请求
  • 原文地址:https://blog.csdn.net/ThreePointsHeat/article/details/133995003
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号