Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/UnluckDistanceDisabler.cs
2026-02-21 16:45:37 +08:00

52 lines
1.2 KiB
C#

using UnityEngine;
public class UnluckDistanceDisabler : MonoBehaviour
{
public int _distanceDisable = 1000;
public Transform _distanceFrom;
public bool _distanceFromMainCam;
public float _disableCheckInterval = 10f;
public float _enableCheckInterval = 1f;
public bool _disableOnStart;
public void Start()
{
if (_distanceFromMainCam)
{
_distanceFrom = Camera.main.transform;
}
InvokeRepeating("CheckDisable", _disableCheckInterval + Random.value * _disableCheckInterval, _disableCheckInterval);
InvokeRepeating("CheckEnable", _enableCheckInterval + Random.value * _enableCheckInterval, _enableCheckInterval);
Invoke("DisableOnStart", 0.01f);
}
public void DisableOnStart()
{
if (_disableOnStart)
{
base.gameObject.SetActive(false);
}
}
public void CheckDisable()
{
if (base.gameObject.activeInHierarchy && (base.transform.position - _distanceFrom.position).sqrMagnitude > (float)(_distanceDisable * _distanceDisable))
{
base.gameObject.SetActive(false);
}
}
public void CheckEnable()
{
if (!base.gameObject.activeInHierarchy && (base.transform.position - _distanceFrom.position).sqrMagnitude < (float)(_distanceDisable * _distanceDisable))
{
base.gameObject.SetActive(true);
}
}
}