【发布时间】:2021-07-12 06:51:59
【问题描述】:
我编写了一些代码来向我在 Unity 中的自定义编辑器中添加一个按钮。我想要的是以下内容。当我单击一次按钮时,会添加一个组件,当我再次单击时,会删除该组件。在下面的简单代码中,我只是在单击按钮时尝试打印“添加”或“删除”。我注意到变量 toggleRigidBody 取值为 true,但之后立即取值为 false。即使我从未在代码中明确更改它,它也不会保持“真实”。 “else if”永远不会被解雇。我不知道为什么。
using UnityEditor;
using UnityEngine;
using SS3D.Engine.Inventory;
[CustomEditor(typeof(ContainerController))]
public class ContainerControllerEditor : Editor
{
private bool toggleRigidBody = false;
public override void OnInspectorGUI()
{
DrawDefaultInspector();
ContainerController containerController = (ContainerController)target;
Debug.Log(toggleRigidBody);
bool buttonPressed = GUILayout.Button("AddAttachedContainer");
if (buttonPressed && toggleRigidBody == false)
{
Debug.Log("Add");
toggleRigidBody = true;
}
else if (buttonPressed && toggleRigidBody == true)
{
Debug.Log("Remove");
toggleRigidBody = false;
}
}
}
当我单击按钮时,我的代码只会打印“添加”。这里发生了什么?
【问题讨论】:
-
你能澄清一下“我注意到的是,变量toggleRigidBody的值的变化不会改变被重置。我不知道为什么”
-
@SeanPowell 谢谢,我编辑了我的帖子以使其更清晰
-
请添加
ContainerController的代码!
标签: unity3d button unity-editor unity3d-editor