Files
TaiWan/Assets/Roaming/Scripts/Show/BaseShow.cs
2025-10-31 15:20:38 +08:00

124 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class BaseShow : MonoBehaviour
{
/// <summary>
/// 数据信息
/// </summary>
public Data info;
/// <summary>
/// 是否可以单击
/// </summary>
public bool CanClick = true;
/// <summary>
/// 点击状态改变事件
/// </summary>
public event UnityAction CanClickStatusChanged;
///// <summary>
///// 点击状态
///// </summary>
//bool canClickNewStatus;
//// 临时距离
//float distance;
/// <summary>
/// 选中控制组件
/// </summary>
public ShowBoxCollider sbc;
void Awake()
{
sbc = GetComponent<ShowBoxCollider>();
}
public void OnStatusChange()
{
if (CanClickStatusChanged != null)
{
CanClickStatusChanged();
}
}
~BaseShow()
{
// ShowController.Instance.RemoveShow(this);
}
public virtual void OnClick()
{
}
bool IsMaskShow
{
get
{
sbc = GetComponent<ShowBoxCollider>();
if (sbc == null)
return false;
else
return sbc.showMask;
}
}
public void OnMouseUp()
{
if (BaseController.CanControl && IsMaskShow)
{
OnClick();
TipPlayerEx.Instance.HideTip();
}
}
//void LateUpdate()
//{
// if (info != null)
// {
// // 获取摄像机与中心位置的距离
// distance = Vector3.Distance(CommonData.MainCamera.transform.position, transform.position);
// canClickNewStatus = (distance <= info.ClickDistance);
// // 可单击状态发生改变(靠近或远离)
// if (CanClick != canClickNewStatus)
// {
// CanClick = canClickNewStatus;
// if (CanClick)
// {
// gameObject.AddComponent<ShowBoxCollider>();
// }
// else
// {
// Destroy(gameObject.GetComponent<ShowBoxCollider>());
// }
// if (CanClickStatusChanged != null)
// {
// CanClickStatusChanged();
// }
// // 启用或禁用选中控制组件
// if (sbc != null)
// {
// if (CanClick)
// {
// sbc.enabled = true;
// }
// else
// {
// sbc.enabled = false;
// }
// }
// }
// }
//}
}