90 lines
2.8 KiB
C#
90 lines
2.8 KiB
C#
|
using TMPro;
|
|||
|
using UdonSharp;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
|
|||
|
#pragma warning disable IDE0044
|
|||
|
#pragma warning disable IDE0090, IDE1006
|
|||
|
|
|||
|
namespace QvPen.UdonScript
|
|||
|
{
|
|||
|
[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
|
|||
|
public class QvPen_Settings : UdonSharpBehaviour
|
|||
|
{
|
|||
|
[System.NonSerialized]
|
|||
|
public string version = string.Empty;
|
|||
|
|
|||
|
[SerializeField]
|
|||
|
private TextAsset versionText;
|
|||
|
|
|||
|
[SerializeField]
|
|||
|
private Text information;
|
|||
|
[SerializeField]
|
|||
|
private TextMeshPro informationTMP;
|
|||
|
[SerializeField]
|
|||
|
private TextMeshProUGUI informationTMPU;
|
|||
|
|
|||
|
[SerializeField]
|
|||
|
private Transform pensParent;
|
|||
|
[SerializeField]
|
|||
|
private Transform erasersParent;
|
|||
|
|
|||
|
[System.NonSerialized]
|
|||
|
public QvPen_PenManager[] penManagers = { };
|
|||
|
|
|||
|
[System.NonSerialized]
|
|||
|
public QvPen_EraserManager[] eraserManagers = { };
|
|||
|
|
|||
|
private void Start()
|
|||
|
{
|
|||
|
if (versionText)
|
|||
|
version = versionText.text.Trim();
|
|||
|
|
|||
|
#if !UNITY_EDITOR
|
|||
|
const string ureishi = nameof(ureishi);
|
|||
|
Log($"{nameof(QvPen)} {version} - {ureishi}");
|
|||
|
#endif
|
|||
|
|
|||
|
var infomationText =
|
|||
|
$"<size=20></size>\n" +
|
|||
|
$"<size=14>{version}</size>";
|
|||
|
|
|||
|
if (information)
|
|||
|
information.text = infomationText;
|
|||
|
if (informationTMP)
|
|||
|
informationTMP.text = infomationText;
|
|||
|
if (informationTMPU)
|
|||
|
informationTMPU.text = infomationText;
|
|||
|
|
|||
|
if (pensParent)
|
|||
|
penManagers = pensParent.GetComponentsInChildren<QvPen_PenManager>();
|
|||
|
if (erasersParent)
|
|||
|
eraserManagers = erasersParent.GetComponentsInChildren<QvPen_EraserManager>();
|
|||
|
}
|
|||
|
|
|||
|
#region Log
|
|||
|
|
|||
|
private void Log(object o) => Debug.Log($"{logPrefix}{o}", this);
|
|||
|
private void Warning(object o) => Debug.LogWarning($"{logPrefix}{o}", this);
|
|||
|
private void Error(object o) => Debug.LogError($"{logPrefix}{o}", this);
|
|||
|
|
|||
|
private readonly Color logColor = new Color(0xf2, 0x7d, 0x4a, 0xff) / 0xff;
|
|||
|
private string ColorBeginTag(Color c) => $"<color=\"#{ToHtmlStringRGB(c)}\">";
|
|||
|
private const string ColorEndTag = "</color>";
|
|||
|
|
|||
|
private string _logPrefix;
|
|||
|
private string logPrefix
|
|||
|
=> string.IsNullOrEmpty(_logPrefix)
|
|||
|
? (_logPrefix = $"[{ColorBeginTag(logColor)}{nameof(QvPen)}.{nameof(QvPen.Udon)}.{nameof(QvPen_Settings)}{ColorEndTag}] ")
|
|||
|
: _logPrefix;
|
|||
|
|
|||
|
private string ToHtmlStringRGB(Color c)
|
|||
|
{
|
|||
|
c *= 0xff;
|
|||
|
return $"{Mathf.RoundToInt(c.r):x2}{Mathf.RoundToInt(c.g):x2}{Mathf.RoundToInt(c.b):x2}";
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|