using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
[CustomEditor(typeof(ConversationTrigger))]
public class ConversationTriggerEditor : Editor
{
private ConversationTrigger conversationtrigger;
private void OnEnable()
{
conversationtrigger = FindObjectOfType<ConversationTrigger>();
}
public override void OnInspectorGUI()
{
DrawDefaultInspector();
if(GUI.Button(new Rect(0.1f,0.5f,0.1f,0.1f), "Add new item"))
{
conversationtrigger.conversations.Add(new Conversation());
}
if (GUILayout.Button("Save Conversations"))
{
conversationtrigger.SaveConversations();
}
if (GUILayout.Button("Load Conversations"))
{
Undo.RecordObject(conversationtrigger, "Loaded conversations from JSON");
conversationtrigger.LoadConversations();
}
}
}
我尝试了这行代码:
if(GUI.Button(new Rect(0.1f,0.5f,0.1f,0.1f), "Add new item"))
但这会让按钮消失,就像被删除一样。
如果我使用GUILayout.Button
,我会看到按钮,但是我不能设置按钮位置,所以我使用GUI.Button
。
我想要将按钮"Add new item"
定位在Canvas
字段之前,并始终在最后一个对话项之后,即此案例中的Locked Room。如果我添加一个新项,按钮应该留在新添加的项之后并在Canvas
字段之前保持不变。
我猜测Rect
的这些值是错误的,使得按钮被定位在窗口之外。
这是检查器的屏幕截图: