Files
YachtDice/Assets/Plugins/AllIn13DShader/Demo/Scripts/DemoInfoUI.cs
T
2026-02-23 22:24:46 +07:00

70 lines
1.7 KiB
C#

using System;
using TMPro;
using UnityEngine;
namespace AllIn13DShader
{
public class DemoInfoUI : MonoBehaviour
{
[SerializeField] private RectTransform offScreenT, initialT;
[SerializeField] private float smoothingAmount;
[SerializeField] private TMP_Text txtDemoInfo;
private RectTransform myT, currentTargetT;
private bool isClosed;
private void Start()
{
myT = transform as RectTransform;
CopyRectTransform(myT, initialT);
currentTargetT = offScreenT;
myT.position = currentTargetT.position;
isClosed = true;
}
private void Update()
{
if(currentTargetT == null) return;
myT.position = Vector3.Lerp(myT.position, currentTargetT.position, smoothingAmount * Time.deltaTime);
}
public void DemoChanged(DemoElementData demoElementdata)
{
txtDemoInfo.text = demoElementdata.info;
}
public void ShowHideToggle()
{
isClosed = !isClosed;
currentTargetT = isClosed ? offScreenT : initialT;
}
private void CopyRectTransform(RectTransform source, RectTransform target)
{
if(source == null || target == null)
{
Debug.LogError("Source or target RectTransform is null");
return;
}
// Copy anchoring
target.anchorMin = source.anchorMin;
target.anchorMax = source.anchorMax;
target.pivot = source.pivot;
// Copy positioning
target.anchoredPosition = source.anchoredPosition;
target.anchoredPosition3D = source.anchoredPosition3D;
target.sizeDelta = source.sizeDelta;
// Copy rotation and scale
target.rotation = source.rotation;
target.localRotation = source.localRotation;
target.localScale = source.localScale;
// Copy offset values
target.offsetMin = source.offsetMin;
target.offsetMax = source.offsetMax;
}
}
}