UniversalViewer/Assets/Scripts/ModelViewerBase/ModelViewerInterface.cs

93 lines
2.4 KiB
C#
Raw Normal View History

2024-04-21 22:38:26 +08:00
using System;
using System.Collections.Generic;
using UIPanels;
using UnityEngine;
using UnityEngine.UI;
using static System.Net.Mime.MediaTypeNames;
public class ModelViewerInterface : MonoBehaviour
{
public static ModelViewerInterface _mainInstance;
public Transform DynamicPanels;
public TMPro.TMP_Text[] TooltipLabels;
public ScrollRect ScenePresetToggle;
public ScrollRect PosePresetToggle;
public List<UIToolbarPanel> TopbarPanels;
public UIPanels.UIToolbarPanel TogglesContent;
public UIPanels.UISaveLoadPanel SaveLoadPanel;
public UIPanels.UICameraSettingsPanel CameraSettingsPanel;
public Canvas MainCanvas;
public RectTransform Tooltip;
public TMPro.TextMeshProUGUI TooltipText;
public static ModelViewerInterface GetInstance()
{
return _mainInstance;
}
public static T GetInstance<T>() where T : ModelViewerInterface
{
return _mainInstance as T;
}
public static void SetTooltip(int index, string tooltip)
{
var tooltips = GetInstance().TooltipLabels;
if(tooltips.Length > index)
{
tooltips[index].SetText(tooltip);
}
}
public static void ToggleVisible(GameObject go)
{
ToggleVisible(go, false);
}
public static void ToggleVisible(GameObject go, bool force = false, bool forceValue = false)
{
if (force)
{
go.SetActive(forceValue);
}
else
{
go.SetActive(!go.activeSelf);
}
}
public static void SetDropdownData(TMPro.TMP_Dropdown dd, List<string> values, bool nullValue = false, bool sortValues = false)
{
dd.ClearOptions();
if (nullValue)
dd.AddOptions(new List<string>() { Strings.NoValueSelectedString });
if (values != null)
{
if (sortValues)
{
values = new List<string>(values);
values.Sort();
}
dd.AddOptions(values);
}
}
public static void DropdownPrevious(TMPro.TMP_Dropdown dropdown)
{
Error.Log(Color.red, "Remove this");
dropdown.value = dropdown.value - 1 < 0 ? dropdown.options.Count - 1 : dropdown.value - 1;
}
public static void DropdownNext(TMPro.TMP_Dropdown dropdown)
{
Error.Log(Color.red, "Remove this");
dropdown.value = dropdown.value + 1 >= dropdown.options.Count ? 0 : dropdown.value + 1;
}
}