preview窗口 unity_Unity3D在Preview中打印日志的方法
Preview窗口除了可以预览模型之外,我们还可以做别的操作。
今天我们来写个小工具在Preview窗口中显示调试信息。
可以看下面的图,同样是打印 health 和 power 的日志,在 Preview 中显示比在 Console 中显示舒服多了。
左边是Console中显示,右边是Preview窗口中显示。
创建Editor目录,然后把下面的脚本放进去
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Object), true)]
public class PreviewGUIEditor : Editor {
/** Update every 15th frame. */
private const int updateOnFrame = 15;
private GUIStyle _previewLabelStyle;
private GUIStyle previewLabelStyle {
get {
if (_previewLabelStyle == null) {
_previewLabelStyle = new GUIStyle("PreOverlayLabel") {
richText = false,
alignment = TextAnchor.UpperLeft,
fontStyle = FontStyle.Normal
};
// Try to get a fixed-width font on macOS.
var font = Font.CreateDynamicFontFromOSFont("Monaco", 12);
// Failing that, try to get a fixed-width font on Windows.
if (font == null)
font = Font.CreateDynamicFontFromOSFont("Lucida Console", 12);
// XXX What fixed-width font should I request if we're on Linux?
if (font != null)
_previewLabelStyle.font = font;
// Debug.Log("Fonts: \n" + string.Join("\n", Font.GetOSInstalledFontNames()));
}
return _previewLabelStyle;
}
}
public override bool HasPreviewGUI() {
return Application.isPlaying;
}
public override bool RequiresConstantRepaint() {
// Only repaint on the nth frame.
return Application.isPlaying && Time.frameCount % updateOnFrame == 0;
}
public override void OnPreviewGUI(Rect rect, GUIStyle background) {
string str = target.ToString();
GUI.Label(rect, str, previewLabelStyle);
}
}
在我们需要打印日志的类里面 重载ToString()函数,返回需要在preview中输出的内容。
下面是上面截图的示例,一个Player类,在ToString()函数中返回了 health 和 power的输出内容。
using UnityEngine;
public class Player : MonoBehaviour
{
public int health = 10;
public int power = 10;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update ()
{
health += 1;
power += 2;
Debug.LogError("health = "+ health);
Debug.LogError("power = "+ power);
}
public override string ToString()
{
return "health = " + health+"\n"+
"power = " + power;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
preview窗口 unity_Unity3D在Preview中打印日志的方法相关推荐
- Android:Android NDK项目中C++文件中打印日志
Android NDK项目中C++文件中打印日志 工作需要,在NDK项目中的C++文件中打印日志,还是费了点劲查找 才达到自己 想要的效果了. 步骤 添加头文件 添加头文件 定义宏函数 #includ ...
- JNI的native代码中打印日志到eclipse的logcat中
1 添加ndk对log支持 若需要添加ndk对log的支持,只需要通过以下2步即可实现. 1.1 修改Android.mk 在Android.mk中添加如下内容: LOCAL_LDLIBS:=- ...
- 这才是JAVA中打印日志的正确姿势
作者:lrwin 原文链接:http://t.cn/E9BkD7a 使用slf4j 1. 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一 2. 实现方式统一使用: Logback框架 打 ...
- java logger使用_这才是JAVA中打印日志的正确姿势
作者:lrwin 原文链接:http://t.cn/E9BkD7a 使用slf4j 1. 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一 2. 实现方式统一使用: Logback框架 打 ...
- Android真机调试打印日志的方法
使用模拟器效率是很低的,所以真机调试是多数开发者的选择.使用模拟器调试程序和使用真机调试程序还是有一些不同的.比如,某些手机在调试过程中,不会打印日志出来. 真机调试不输出日志到logcat的原因是手 ...
- ios开发中打印日志消息控制
问题 在ios项目开发中,项目发布时需要去掉NSLog消息,不然会非常影响性能,但是去掉NSLog是一件非常费事的事情 解决办法 在项目的目录Supporting Files->项目名称-Pre ...
- 取消Spark中打印日志
将spark中的conf目录下的log4j.properties放到ieda中的resources下 将 INFO WARN替换成ERROR 替换快捷键ctrl+r log4j.rootCategor ...
- labelcommand打印条码_VB应用程序中打印条形码的方法
展开全部 条形码作为一e68a843231313335323631343130323136353331333233656533种机器可识别的图形,它能快速.准确地标识某种产品或商品,在许多数据库应用中 ...
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
1 编写以下案例(下面的三个按钮都调用了底层的C语言): 项目案例的代码结构如下: 2 编写DataProvider的代码: package com.example.ndkpassdata; ...
最新文章
- 企业网络推广“卡壳”了?如何更有效提升SEO排名?
- 海南大计算机与网络,2010-2014年海南省计算机与网络发展情况
- WebQQ hash加密算法PHP版
- html里,实现图片与文字对齐的最简洁方法
- Python压缩多个属于不同驱动器的文件夹至同一个zip文件
- 2021 年前端学习路线总结
- java利用redis实现排行榜_Java简单使用redis-zset实现排行榜
- 从零搭建ES搜索服务(一)基本概念及环境搭建
- DBVisualizer 添加数据库JDBC驱动
- 大型项目编译注意事项
- 基于LSTM的时间序列预测-原理-python代码详解
- Django中ORM模型总结(二)[抽象模型类,模型类的对应关系,模型类的属性,字段类型]...
- web产品设计的经典著作
- JAVA 实现批量PDF 打印,线程池多线程执行(附完整代码)
- 基于java《数据结构与算法》网上教学系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
- Java多线程--概述-转自林炳文Evankaka
- [Java] [SurfaceView] 使用EGL
- sqrt函数实现(涉及3D游戏引擎源码)
- 程序员的两个主线和四个象限
- python实现守护进程_Python如何实现守护进程的方法示例
热门文章
- LeetCode 355. 设计推特(哈希map+set)
- 计算机网络路由选择协议,IP路由选择协议原理和作用
- java listutils_Java的list自定义工具类ListUtils
- python3 整除_python如何整除
- 元素(块、行内、行内块
- python中的孤儿进程
- js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?
- 缺失值处理 - 获取一段时间内所有日期的列表 - (Python、MySQL)
- 逻辑性不好可以学python吗_如果本文若未能让你学会“Python”,可能真的不适合学习Python...
- linux下的idea的界面问题,错位以及各种...