Esempio n. 1
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();
        Achievements achievements = (Achievements)target;

        if (!Application.isPlaying)
        {
            foreach (Achievement achievement in achievements.elements)
            {
                string newname = achievement.type.ToString("g");
                if (!newname.Equals(achievement.name))
                {
                    achievement.name = newname;
                }
            }
        }

        stateFlag = EditorGUILayout.Foldout(stateFlag, "Состояние флагов");
        if (stateFlag)
        {
            foreach (Achievement achievement in achievements.elements)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label(achievement.name + " " + achievement.IsAchieved.ToString());
                if (Application.isPlaying)
                {
                    if (!achievement.IsAchieved)
                    {
                        if (GUILayout.Button("Получить", GUILayout.Width(150)))
                        {
                            achievements.Achieve(achievement.type);
                            EditorUtility.SetDirty(achievements);
                        }
                    }
                    else
                    {
                        if (GUILayout.Button("Убрать", GUILayout.Width(150)))
                        {
                            achievement.Lost();
                            EditorUtility.SetDirty(achievements);
                        }
                    }
                }
                EditorGUILayout.EndHorizontal();
            }
        }
    }