【发布时间】:2018-07-04 08:51:03
【问题描述】:
我在更改值并尝试玩游戏时遇到问题,这些值消失了。例如,如果我在编辑器中启用 bool 并且开始游戏 bool 会自行禁用。我使用自定义编辑器来更改这些值。
这是我的设置脚本,[system.serializable] 没有帮助:
using UnityEngine;
[System.Serializable]
public class Settings : MonoBehaviour
{
public static bool testMode;
public static string androidUnitID;
public static string iphoneUnitID;
}
这是我的编辑器脚本:
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Settings))]
class TestEditor : Editor {
public override void OnInspectorGUI() {
GUILayout.Label("Settings", EditorStyles.boldLabel);
Settings.testMode = EditorGUILayout.Toggle("Test Mode", Settings.testMode);
Settings.androidUnitID = EditorGUILayout.TextField("Android UnitID", Settings.androidUnitID);
Settings.iphoneUnitID = EditorGUILayout.TextField("Android UnitID", Settings.iphoneUnitID);
}
首先我要更改编辑器上的值:
然后,当播放模式处于活动状态时,所有值都会消失:
有没有办法解决这个问题? 感谢您的帮助。
【问题讨论】:
-
你知道你有一个 .在
Settings.settings的末尾Settings.settings. = EditorGUILayout.Toggle("Test Mode", Settings.testMode);行中,关于你的问题,你能解释一下吗?您是说您在编辑器脚本中设置了这些值,但是当您开始游戏时,这些值会发生变化?你确定你在任何地方都没有改变这些值吗?因为它们是静态的,所有对象都会引用同一个对象。 -
感谢您的帮助。我在重写代码时犯了一个错误,一切正常。问题是价值在任何地方都没有改变,但价值仍然消失。我添加了一些图片来了解这个想法。