Files
2026-02-23 22:24:46 +07:00

103 lines
3.0 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace AllIn13DShader
{
public class OptionsDemo : MonoBehaviour
{
[SerializeField] private Color lockedColor = Color.red;
[Space, Header("Lock Camera")]
[SerializeField] private AllIn1MouseTransformRotator allIn1MouseRotate;
[SerializeField] private TextMeshProUGUI lockCamText;
[SerializeField] private Image lockCamButtonImage;
[Space, Header("Lock Cursor")]
[SerializeField] private bool lockCursor = true;
[SerializeField] private TextMeshProUGUI lockCursorText;
[SerializeField] private Image lockCursorButtonImage;
[Space, Header("Hide Ui")]
[SerializeField] private CanvasGroup uiCanvasGroup;
[SerializeField] private float uiCanvasSmoothing = 5f;
[Space, Header("Demo Info")]
[SerializeField] private bool showingDemoInfo = false;
[SerializeField] private Image showDemoInfoButtonImage;
private bool cursorIsLocked, camIsLocked, uiIsHidden;
private float uiCanvasAlpha;
private void Start()
{
cursorIsLocked = lockCursor;
SetCursorLock();
camIsLocked = false;
SetCamLock();
}
private void Update()
{
uiCanvasGroup.alpha = Mathf.Lerp(uiCanvasGroup.alpha, uiIsHidden ? 0f : 1f, Time.unscaledDeltaTime * uiCanvasSmoothing);
}
public void ToggleCursorButtonPress()
{
cursorIsLocked = !cursorIsLocked;
SetCursorLock();
}
public void ToggleShowInfo()
{
showingDemoInfo = !showingDemoInfo;
showDemoInfoButtonImage.color = showingDemoInfo ? lockedColor : Color.clear;
}
private void SetCursorLock()
{
if(cursorIsLocked)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
lockCursorText.text = "Unlock Cursor";
lockCursorButtonImage.color = lockedColor;
}
else
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
lockCursorText.text = "Lock Cursor";
lockCursorButtonImage.color = Color.clear;
}
}
public void CamLockButtonPress()
{
camIsLocked = !camIsLocked;
SetCamLock();
}
private void SetCamLock()
{
allIn1MouseRotate.enabled = !camIsLocked;
if(camIsLocked)
{
lockCamText.text = "Unlock Camera";
lockCamButtonImage.color = lockedColor;
}
else
{
lockCamText.text = "Lock Camera";
lockCamButtonImage.color = Color.clear;
}
}
public void HideUiButtonPress()
{
uiIsHidden = !uiIsHidden;
}
}
}