unity EditorGUILayer绘制报错
最近在开发一个可视化工具的时候,遇到了一个代码错误,小小的记录一下
- 具体的报错信息:ArgumentException: Getting control 0's position in a group with only 0 controls when doing Repaint A
从Unity的报错信息上我们可以得知在OnGUI绘制的时候,它找不到可控的位置。经过查找和验证发现一个很有意思的事情:OnGUI函数每帧并不是仅仅只调用一次!
通常,当没有输入处于活动状态时,会使用EditorGUILayout和Repaint调用OnGUI两次。在EditorGUILayer调用期间,将处理GUILayout调用并计算控件的位置和大小,屏幕上实际上不会显示任何内容。其次,调用Repaint事件时调用它,这次控件实际上是用计算出的位置和大小绘制的。当有一个有效输入(鼠标,键盘等)时,它也被称为额外时间,并且此调用始终是最后一次,它也会导致在屏幕上绘图。按照上述的逻辑,我们就可以很清楚的知道,当我们在OnGUI里面进行动态的绘制时,要避免对EditorGUILayer的改变,不然在同一帧的不同OnGUI上,它有可能会找不到你需要的EditorGUILayer的位置坐标。 - 解决方法:我使用了EditorGUI绘制来代替EditorGUILayer,对于EditorGUI,我们可以通过计算来传入位置信息,使得在每一次的绘制都能够获取到真正的位置信息,避免出错。
unity EditorGUILayer绘制报错的更多相关文章
- MVC模式下unity配置,报错“No connection string named '**Context' could be found in the application config file”
写在前面: 第一次配置时好好的,后来第二次改到MVC模式,把依赖注入写成字典的单例模式时,由于新建的ORM(数据库映射模型EF),怎么弄都不用,一直报错"No connection str ...
- unity无限循环报错的定位
晚上遇到了,碰到了程序一运行就卡住的尴尬问题,然后百度下,看了看,Get到了一个新的skill. 1. 打开对应的VS程序,选择“调试/Attach Unity Debuger”菜单来调试代码. 2. ...
- Pygal之世界地图绘制from pygal.i18n import COUNTRIES 报错的解决办法
在<Python编程:从入门到实践>书中的一个项目用到pygal.i18n获取国别码, 问题描述: 在学习<python编程:从入门到精通>的pygal绘制世界地图时,遇到了这 ...
- 【已解决】unity4.2.0f4 导出Android工程报错:Error building Player: ArgumentException: Illegal characters in path. [unity导出android工程 报错,路径含有非法字符]
使用unity3D开发的一个客户端,需要导出为Android工程,然后接入一些第三方android SDK. unity版本 操作系统为: OS 名称: Microsoft Windows 7 旗舰版 ...
- Unity在OpenGL模式下Shader编译报错
报错信息 GLSL compilation failed: 0(21) : error C7528: OpenGL reserves names containing '__' 双击报错VS自动打开V ...
- 解决导入protobuf源代码Unity报错的问题
将源代码导入Assets目录后, unity引擎会出现以下报错: 解决办法: 在 unity项目Assets目录中创建smcs.rsp文件,内容为-unsafe,其作用为可编译不安全代码. 然 ...
- Unity 4.7 导出工程在XCode10.1上编译报错
Unity 4.7 导出工程在XCode 10.1上编译报错,而在XCode 9.3上是可以正常编译运行的.原因是Unity4.7所依赖的头文件和库文件在XCode10上没有了,解决办法如下,把XCo ...
- Unity - Humanoid设置Bip骨骼导入报错
报错如下: 解决: 原因是biped骨骼必须按照Unity humanoid的要求设置,在max中设置如下:
- Unity 3D 使用TerrainCompose 调用RTP 报错:
Unity 3D:5.2 version TerrainCompose:1.92 version RTP:3.2d version Unity 3D 使用TerrainCompose 调用RTP 报 ...
随机推荐
- 22、vue实现随机四位数验证码
效果图: 1.新建生成验证码的组件Sidentify.vue(代码如下): <template> <div class="s-canvas"> <ca ...
- 小tips:TCP的三次握手、长连接、 短连接、 SPDY 协议
当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需 ...
- 16. Promise对象
目录 Promise对象 一.含义 1. Promise是什么 2. 实例讨论 二.Promise特性案例解析 1. Promise的立即执行性 2. promise的三种状态 3. Promise的 ...
- Linux指令(压缩和解压类)
gzip/gunzip 指令 gzip用于压缩文件,gunzip用于解压基本语法: gzip文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip文件.gz (功能描述:解压缩文件命 ...
- 进程间通信之数据传输--Socket
The client server model Most interprocess communication uses the client server model. These terms re ...
- python 中根据python版本(2或3)定义函数
示意代码如下: #_*_coding:UTF-8_*_ import time import socket import os import sys if sys.version_info.major ...
- 洛谷P3069 [USACO13JAN]牛的阵容Cow Lineup(尺取法)
思路 考虑比较朴素的解法,枚举每个长度为\(k+1\)的区间,然后统计区间中出现次数最多的颜色.这样的话复杂度为\(O(n*k)\)的,显然不行. 观察到统计每个区间中出现次数最多的颜色中,可以只用看 ...
- Linux四剑客之awk命令
AWK详解 awk简介 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语 ...
- 临时加一条关于bootstrap的菜单栏方面的
**有些生疏,记住了**aria-expanded表示展开状态.默认为undefined, 表示当前展开状态未知.其它可选值:true表示元素是展开的:false表示元素不是展开的. aria-hid ...
- LeetCode 886. Possible Bipartition
原题链接在这里:https://leetcode.com/problems/possible-bipartition/ 题目: Given a set of N people (numbered 1, ...