【发布时间】:2020-08-01 21:06:57
【问题描述】:
我是创建 KSP 模组的新手,正在尝试为我的模组制作 GUI。我发现了在 GUI 元素上显示文本的问题。例如,我创建了一个带有按钮的窗口,窗口没有标题,按钮上没有文字。按钮有效,单击后我看到调试消息。
我尝试使用GUI 而不是GUILayout,但遇到了同样的问题。我尝试在GUILayout.Window(0, this.windowRect, this.DrawWindow, "Title", HighLogic.Skin.window) 中将HighLogic.Skin.window 用于窗口,我看到了一个窗口的标题,但是如果我在GUILayout.Button("Press me", HighLogic.Skin.button) 中使用HighLogic.Skin.button,我又遇到了这个问题。所以,我不知道如何解决它。
代码:
using UnityEngine;
namespace KCSS
{
[KSPAddon(KSPAddon.Startup.MainMenu, false)]
public class KCSS : MonoBehaviour
{
private Rect windowRect;
private void DrawWindow(int id)
{
if(GUILayout.Button("Press me"))
{
Debug.Log("[KCSS mod] <color=#f1a12e>Action:</color> Button pressed");
}
GUI.DragWindow();
}
public void Awake()
{
Debug.Log("[KCSS mod] <color=#66cccc>Load:</color> KCSS main class");
this.windowRect = new Rect(50, 50, 150, 100);
}
public void OnGUI()
{
this.windowRect = GUILayout.Window(0, this.windowRect, this.DrawWindow, "Title");
}
}
}
问题的屏幕截图: No text on title and button
截图如果我使用HighLogic.Skin:No button text only
【问题讨论】:
标签: c# unity3d user-interface mod