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
|
|
}
|
|
}
|