42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
|
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);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|