unity3d - Unity3d Undo是一个EditorWindow [用于 bool 和字符串]

标签 unity3d unity3d-editor

这是我的代码,

 CoreGlobal.OnMobile = EditorGUILayout.Toggle("Mobile Build", CoreGlobal.OnMobile);

         if (Selection.activeGameObject && Selection.activeGameObject.tag == "CBC")
         {
             selectedTransform = Selection.activeGameObject.transform;
             fold = EditorGUILayout.InspectorTitlebar(fold, selectedTransform);
             if (fold)
             {
                 selectedTransform.position =
                     EditorGUILayout.Vector3Field("Position", selectedTransform.position);
                 EditorGUILayout.Space();
                 rotationComponents =
                     EditorGUILayout.Vector4Field("Detailed Rotation", QuaternionToVector4(selectedTransform.localRotation));
                 EditorGUILayout.Space();
                 selectedTransform.localScale =
                     EditorGUILayout.Vector3Field("Scale", selectedTransform.localScale);
             }
             selectedTransform.localRotation = ConvertToQuaternion(rotationComponents);
             EditorGUILayout.Space();
         }


这是我在编辑器窗口中的onGUI函数中的代码。

我正在尝试为代码创建撤消。我不确定如何撤消Toogle值。
Undo.RecordObject(OBJECT, STRING);

我可以将bool更改为Object以便撤消它的方法有哪些?如果有人可以让我开始只是为了笨蛋,我可以做剩下的。

最佳答案

我认为这不是一个完美的答案,但是您可以使用此回调做一些事情。它不是一个完美的解决方案,但它应该是一个开始。

http://docs.unity3d.com/ScriptReference/Undo-undoRedoPerformed.html

然后,您可以向虚拟对象注册撤消,然后以某种方式找出如何检测完成了哪种撤消?

关于unity3d - Unity3d Undo是一个EditorWindow [用于 bool 和字符串],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30513139/

相关文章:

c# - 如何在我需要时打开门

user-interface - Unity - 对所有 UI 元素应用后处理效果

c# - 当玩家与激光碰撞时,生命值不会减少

unity3d - 使统一音频播放与原始WAV文件完全相同的高频音频以进行听力测试

c# - Unity - 调整一个游戏对象的大小以匹配另一个

unity-game-engine - 如何使 Vector3 字段的行为类似于 CustomEditor 中 Transform 的字段

c# - Unity 后处理 PostProcessEffectRenderer 显示在编辑器中但不在构建中

c# - Unity编辑器脚本: visible/hidden gizmos

c# - 根据数组成员的其他属性在 Unity 编辑器中显示数组成员的某些属性

unity3d - 如何在选择时突出显示时保持 handle 在场景中始终可见?