Files
JJBB/Assets/Project/Script/Tools/DebugTools.cs

86 lines
2.6 KiB
C#
Raw Normal View History

2024-09-03 19:56:21 +08:00
using System;
using UnityEngine;
namespace Project.Script.Tools
{
public class DebugTools : MonoBehaviour
{
[SerializeField] private GameObject inspectorGameObject;
private bool _isShowDebugToolButton = false;
private bool IsShowDebugToolButton
{
get { return _isShowDebugToolButton; }
set
{
if (_isShowDebugToolButton == value)
return;
_isShowDebugToolButton = value;
if (!_isShowDebugToolButton)
{
inspectorGameObject.SetActive(false);
}
}
}
private float _timer;
private float _clickCount;
[SerializeField] private float _time = 0.8f;
[SerializeField] private uint _clickCountSum = 5;
private bool _isStartClick = false;
private void Awake()
{
#if UNITY_EDITOR || DEVELOPMENT_BUILD
DontDestroyOnLoad(gameObject);
inspectorGameObject.SetActive(false);
#else
Destroy(gameObject);
#endif
}
private void Update()
{
if (_isStartClick)
{
_timer += Time.deltaTime;
if (_timer > _time)
{
_timer = 0;
_clickCount = 0;
_isStartClick = false;
}
}
// 3秒内连续点击屏幕5次设置 _isShowDebugToolButton = true 或者 false
if (!Input.GetMouseButtonDown(0)) return;
if (!_isStartClick)
_isStartClick = true;
if (_timer < _time)
{
_clickCount++;
if (!(_clickCount >= _clickCountSum)) return;
IsShowDebugToolButton = !IsShowDebugToolButton;
_clickCount = 0;
}
else
{
_timer = 0;
_clickCount = 0;
}
}
private void OnGUI()
{
if (!IsShowDebugToolButton)
return;
// 屏幕顶部居中按钮用来显示或隐藏Inspector
if (GUI.Button(new Rect(Screen.width / 2f - 50, 0, 150, 50),
"对象监视面板" + (inspectorGameObject.activeSelf ? "(关闭)" : "(打开)")))
{
inspectorGameObject.SetActive(!inspectorGameObject.activeSelf);
}
}
}
}