public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        BasicGameAssetManager bga = (BasicGameAssetManager)target;

        if (GUILayout.Button("Refresh List"))
        {
            RefreshList();
        }
    }
    void RefreshList()
    {
        BasicGameAssetManager bga = (BasicGameAssetManager)target;
        int visualEffectLength    = 0;
        int soundEffectLength     = 0;
        int UISoundEffectLength   = 0;

        visualEffectLength  = Enum.GetNames(typeof(VisualEffect)).Length;
        soundEffectLength   = Enum.GetNames(typeof(SoundEffect)).Length;
        UISoundEffectLength = Enum.GetNames(typeof(UI_SoundEffects)).Length;

        while (bga.visualEffects.Count < visualEffectLength)
        {
            bga.visualEffects.Add(new V_Effect());
        }
        for (int i = 0; i < bga.visualEffects.Count; i++)
        {
            VisualEffect ve = (VisualEffect)Enum.Parse(typeof(VisualEffect), Enum.GetNames(typeof(VisualEffect))[i]);
            bga.visualEffects[i].effect = ve;
        }

        while (bga.soundEffects.Count < soundEffectLength)
        {
            bga.soundEffects.Add(new S_Effect());
        }
        for (int i = 0; i < bga.soundEffects.Count; i++)
        {
            SoundEffect se = (SoundEffect)Enum.Parse(typeof(SoundEffect), Enum.GetNames(typeof(SoundEffect))[i]);
            bga.soundEffects[i].effect = se;
        }

        while (bga.UI_SoundClipArray.Count < UISoundEffectLength)
        {
            bga.UI_SoundClipArray.Add(new S_UI_Effect());
        }
        for (int i = 0; i < bga.UI_SoundClipArray.Count; i++)
        {
            UI_SoundEffects uise = (UI_SoundEffects)Enum.Parse(typeof(UI_SoundEffects), Enum.GetNames(typeof(UI_SoundEffects))[i]);
            bga.UI_SoundClipArray[i].effect = uise;
        }
    }