版本:Unity 6 (6000.0)
语言English
  • C#

EditorPrefs.GetBool

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static bool GetBool(string key);

声明

public static bool GetBool(string key, bool defaultValue = false);

描述

如果首选项文件中存在对应于key的值,则返回该值。

如果不存在,则返回defaultValue


四舍五入旋转/位置并记住活动选项。

using UnityEngine;
using UnityEditor;

public class EditorPrefsBoolExample : EditorWindow { bool showRoundPosition = true; bool showRoundRotation = true;

[MenuItem("Examples/Round positions-rotations")] static void Init() { EditorPrefsBoolExample window = (EditorPrefsBoolExample)EditorWindow.GetWindow(typeof(EditorPrefsBoolExample), true, "My Empty Window"); window.Show(); }

void OnGUI() { showRoundPosition = EditorGUILayout.BeginToggleGroup("Round Position", showRoundPosition); if (GUILayout.Button("Round Position!")) DoRoundPosition(); EditorGUILayout.EndToggleGroup(); showRoundRotation = EditorGUILayout.BeginToggleGroup("Round Rotation", showRoundRotation); if (GUILayout.Button("Round Rotation!")) DoRoundRotation(); EditorGUILayout.EndToggleGroup(); }

void DoRoundPosition() { foreach (Transform t in Selection.transforms) t.localPosition = new Vector3(Mathf.Round(t.localPosition.x), Mathf.Round(t.localPosition.z), Mathf.Round(t.localPosition.y)); }

void DoRoundRotation() { foreach (Transform t in Selection.transforms) t.rotation = Quaternion.Euler( new Vector3(Mathf.Round(t.eulerAngles.x / 45f) * 45f, Mathf.Round(t.eulerAngles.y / 45f) * 45f, Mathf.Round(t.eulerAngles.z / 45f) * 45f)); }

void OnFocus() { if (EditorPrefs.HasKey("ShowRoundPosition")) showRoundPosition = EditorPrefs.GetBool("ShowRoundPosition"); if (EditorPrefs.HasKey("ShowRoundRotation")) showRoundPosition = EditorPrefs.GetBool("ShowRoundRotation"); }

void OnLostFocus() { EditorPrefs.SetBool("ShowRoundPosition", showRoundPosition); EditorPrefs.SetBool("ShowRoundRotation", showRoundRotation); }

void OnDestroy() { EditorPrefs.SetBool("ShowRoundPosition", showRoundPosition); EditorPrefs.SetBool("ShowRoundRotation", showRoundRotation); } }