rimworld-animation-studio/Source/Assets/Scripts/GUI/UIScaler.cs

37 lines
1.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
namespace RimWorldAnimationStudio
{
public class UIScaler : MonoBehaviour
{
public float defaultScale = 1f;
public CanvasScaler canvasScaler;
public InputField uiScaler;
public void Start()
{
if (canvasScaler && uiScaler)
{
float scale = PlayerPrefs.GetFloat("uiScale");
canvasScaler.scaleFactor = scale > 0f ? scale : defaultScale;
uiScaler.SetTextWithoutNotify(scale.ToString());
}
}
public void OnScaleChanged()
{
float scale = Mathf.Clamp(float.Parse(uiScaler.text), 0.25f, 4f);
uiScaler.SetTextWithoutNotify(scale.ToString());
canvasScaler.scaleFactor = scale;
PlayerPrefs.SetFloat("uiScale", scale);
EventSystem.current.SetSelectedGameObject(gameObject);
}
}
}