浏览代码

fallback to simpler rules

/main
Xingwei Zhu 3 年前
当前提交
45c2aba0
共有 3 个文件被更改,包括 10 次插入27 次删除
  1. 4
      README-ZH.md
  2. 4
      README.md
  3. 29
      com.unity.uiwidgets/Runtime/foundation/debug.cs

4
README-ZH.md


## 调试UIWidgets应用程序
在编辑器菜单栏选择```UIWidgets->EnableDebug```
在Editor模式下,编辑器菜单栏选择```UIWidgets->EnableDebug```。
在Runtime模式下,Debug/Development build会自动开启Debug,Release build则会自动关闭Debug。
## 使用Window Scope保护外部调用
如果您在调试时遇到 `AssertionError: Window.instance is null` 或者在调用 `Window.instance` 时得到空指针, 那么您需要

4
README.md


## Debug UIWidgets Application
You can switch debug/release mode by “UIWidgets->EnableDebug” in the Unity Editor.
In the Editor, you can switch debug/release mode by “UIWidgets->EnableDebug”.
In the Player, the debug/development build will enable debug mode. The release build will disable debug mode automatically.
## Using Window Scope
If you see the error `AssertionError: Window.instance is null` or null pointer error of `Window.instance`,

29
com.unity.uiwidgets/Runtime/foundation/debug.cs


public static bool debugPrintMouseHoverEvents = false;
public const string debugScriptingDefineSymbol = "DebugUIWidgets";
public static HSVColor debugCurrentRepaintColor =
HSVColor.fromAHSV(0.4f, 60.0f, 1.0f, 1.0f);

Debug.LogException(new AssertionError(message: message, innerException: ex));
}
[Conditional(debugScriptingDefineSymbol)]
[Conditional("UNITY_ASSERTIONS")]
public static void assert(Func<bool> result, Func<string> message = null) {
if ( enableDebug && !result() ) {
throw new AssertionError(message != null ? message() : "");

[Conditional(debugScriptingDefineSymbol)]
[Conditional("UNITY_ASSERTIONS")]
public static void assert(bool result, Func<string> message = null) {
if ( enableDebug && !result ) {
throw new AssertionError(message != null ? message() : "");

#if UNITY_EDITOR
static bool? _enableDebug = null;
private static void setRuntimeSymbolsForTarget(BuildTargetGroup targetGroup, bool enabled) {
string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup);
var defineList = defines.Split(';');
var newDefineList = new List<string>();
foreach (var define in defineList) {
if (define != debugScriptingDefineSymbol) {
newDefineList.Add(define);
}
}
if (enabled) {
newDefineList.Add(debugScriptingDefineSymbol);
}
PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, String.Join(";", newDefineList));
}
public static bool enableDebug {
get {
if (_enableDebug == null) {

}
_enableDebug = value;
EditorPrefs.SetInt("UIWidgetsDebug",value ? 1 : 0);
setRuntimeSymbolsForTarget(BuildTargetGroup.Android, value);
setRuntimeSymbolsForTarget(BuildTargetGroup.iOS, value);
setRuntimeSymbolsForTarget(BuildTargetGroup.Standalone, value);
//In runtime, we use the Conditional decorator "debugScriptingDefineSymbol" instead of this to enable/disable debug mode
//In the runtime, we use the Conditional decorator instead of this to enable/disable debug mode
//The rule is simple: the debug mode is on for Debug/Development build, and is off for Release build
public static bool enableDebug => true;
#endif

正在加载...
取消
保存