using System; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; namespace TriLib.Samples { public class URIDialog : MonoBehaviour { public static URIDialog Instance { get; private set; } public string Filename { get { return this._uriText.text; } set { this._uriText.text = value; } } public string Extension { get { return this._extensionText.text; } set { this._extensionText.text = value; } } protected void Awake() { this._cancelButton.onClick.AddListener(new UnityAction(this.HideDialog)); this._uriText.onValueChanged.AddListener(new UnityAction(this.UpdateExtension)); URIDialog.Instance = this; } public void ShowDialog(Action onOk) { this._okButton.onClick.RemoveAllListeners(); this._okButton.onClick.AddListener(delegate() { if (onOk != null) { onOk(this.Filename, this.Extension); } this.HideDialog(); }); this._rendererGameObject.SetActive(true); } public void HideDialog() { this._rendererGameObject.SetActive(false); } private void UpdateExtension(string text) { this._extensionText.text = FileUtils.GetFileExtension(text); } [SerializeField] private Button _okButton; [SerializeField] private Button _cancelButton; [SerializeField] private InputField _uriText; [SerializeField] private InputField _extensionText; [SerializeField] private GameObject _rendererGameObject; } }