UniversalViewer/Assets/Scripts/ModelViewerBase/UI/UISettingsPanel.cs

42 lines
1.2 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UISettingsPanel : MonoBehaviour
{
public Transform Content;
private void Start()
{
ModelViewerSettings.OnSettingsSaved += UpdateSettings;
}
private void OnEnable()
{
if(ModelViewerSettings.Instance != null)
{
UpdateSettings(ModelViewerSettings.Instance);
}
}
public void UpdateSettings(ModelViewerSettings settings)
{
for(int i = Content.childCount -1; i >= 0; i--)
{
Destroy(Content.GetChild(i).gameObject);
}
foreach(var entry in settings.Settings)
{
var setting = entry.Value;
var inputMode = setting.Type == ModelViewerSettings.SettingType.FilePath ? UITextInput.InputMode.FilePicker
: setting.Type == ModelViewerSettings.SettingType.FolderPath ? UITextInput.InputMode.FolderPicker
: UITextInput.InputMode.Text;
UITextInput.Create(entry.Key, setting.Value, setting.Editable, Content, inputMode).SetOnTextChanged((value) =>
{
ModelViewerSettings.Set(entry.Key, value, true);
});
}
}
}