User interface Unity更改GUI颜色/滑块颜色/标签颜色
我有一个小模拟的设置脚本 照相机的背景色是黑色的。当我有一个带有标签的GUI.HorizontalSlider时,我需要更改Slidercolor。否则你就看不清楚了 有人能告诉我在哪里以及如何设置这些颜色吗?“ContentColor”、“BackgroundColor”不起作用 我的代码:User interface Unity更改GUI颜色/滑块颜色/标签颜色,user-interface,unity3d,User Interface,Unity3d,我有一个小模拟的设置脚本 照相机的背景色是黑色的。当我有一个带有标签的GUI.HorizontalSlider时,我需要更改Slidercolor。否则你就看不清楚了 有人能告诉我在哪里以及如何设置这些颜色吗?“ContentColor”、“BackgroundColor”不起作用 我的代码: private int planetObjectsCount = 1; // number of objects in the next scene private int skyOb
private int planetObjectsCount = 1; // number of objects in the next scene
private int skyObjectsCount = 1; // number of objects in the next scene
private int spaceObjectsCount = 1; // number of objects in the next scene
private void OnGUI()
{
GUI.color = SetGUIColor(); // Give GUI Elements a default Color
planetObjectsCount = Mathf.RoundToInt(GUI.HorizontalSlider(GetGuiRect(Screen.width / 2, Screen.height * 2 / 8), planetObjectsCount, 1, 300)); // The Slider Element - store the value
skyObjectsCount = Mathf.RoundToInt(GUI.HorizontalSlider(GetGuiRect(Screen.width / 2, Screen.height * 4 / 8), skyObjectsCount, 1, 100)); // The Slider Element - store the value
spaceObjectsCount = Mathf.RoundToInt(GUI.HorizontalSlider(GetGuiRect(Screen.width / 2, Screen.height * 6 / 8), spaceObjectsCount, 1, 100)); // The Slider Element - store the value
GUI.Label(GetGuiRect(Screen.width / 2, Screen.height * 3 / 8), "Objects on the Planet: " + planetObjectsCount.ToString()); // The Label for the Slider
GUI.Label(GetGuiRect(Screen.width / 2, Screen.height * 5 / 8), "Objects in the Sky: " + skyObjectsCount.ToString()); // The Label for the Slider
GUI.Label(GetGuiRect(Screen.width / 2, Screen.height * 7 / 8), "Objects in Space: " + spaceObjectsCount.ToString()); // The Label for the Slider
if (GUI.Button(GetGuiRect(Screen.width * 0.85f, Screen.height / 2), "Build")) // Menu Button
{
PlayerPrefs.SetInt("planetObjectsCount", planetObjectsCount); // Store the values to the PlayerPrefs
PlayerPrefs.SetInt("skyObjectsCount", skyObjectsCount); // Store the values to the PlayerPrefs
PlayerPrefs.SetInt("spaceObjectsCount", spaceObjectsCount); // Store the values to the PlayerPrefs
LoadScene("Ingame"); // Load the simulation
}
if (GUI.Button(GetGuiRect(Screen.width * 0.15f, Screen.height / 2), "Back")) // Menu Button
{
LoadScene("MainMenu"); // Back to MainMenu
}
}
internal Rect GetGuiRect(float xPos, float yPos) // Return a Rectangle for GUI Elements
{
float rectWidth = Screen.width / 5;
float rectHeight = Screen.height / 10;
xPos -= rectWidth / 2;
yPos -= rectHeight / 2;
return new Rect(xPos, yPos, rectWidth, rectHeight);
}
internal Color SetGUIColor() // Set the GUI Color
{
return Color.cyan;
}
不太清楚你想要什么。 但我相信你会通过使用或解决你的问题。 通过GUI样式,您可以更改许多属性,如您将使用的字体及其颜色。因此,您可以创建它并设置一个GUI组件来使用它。例如,在GUILabel,您可以将GUIStyle作为第三个参数传递:
public static void Label(Rect position, string text, GUIStyle style);
GUISkin是这些GUIStyles的集合,这些GUIStyles被划分在所有UI组件中,因此您可以创建一个全新的UI样式
然而,我认为您应该知道Unity还提供了一个整体,您可以在不需要代码的情况下进行twitch,坦率地说,这比使用OnGUI要好得多。举个例子,这里是Unity手册的链接,教你如何创建和使用它。不太清楚你想要什么。 但我相信你会通过使用或解决你的问题。 通过GUI样式,您可以更改许多属性,如您将使用的字体及其颜色。因此,您可以创建它并设置一个GUI组件来使用它。例如,在GUILabel,您可以将GUIStyle作为第三个参数传递:
public static void Label(Rect position, string text, GUIStyle style);
GUISkin是这些GUIStyles的集合,这些GUIStyles被划分在所有UI组件中,因此您可以创建一个全新的UI样式
然而,我认为您应该知道Unity还提供了一个整体,您可以在不需要代码的情况下进行twitch,坦率地说,这比使用OnGUI要好得多。举个例子,这里是统一手册的链接,教你如何创建和使用它