init
This commit is contained in:
88
history/ItemValueDisplay.cs
Normal file
88
history/ItemValueDisplay.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using Duckov.UI;
|
||||
using Duckov.Utilities;
|
||||
using ItemStatsSystem;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
// 物品价值显示类
|
||||
// 用于在物品悬停UI中显示物品的价值
|
||||
|
||||
namespace test
|
||||
{
|
||||
/// <summary>
|
||||
/// test模组的主要行为类
|
||||
/// 继承自Duckov.Modding.ModBehaviour,用于在游戏UI中显示物品价值
|
||||
/// </summary>
|
||||
public class ModBehaviour : Duckov.Modding.ModBehaviour
|
||||
{
|
||||
private TextMeshProUGUI? _text = null;
|
||||
|
||||
private TextMeshProUGUI Text
|
||||
{
|
||||
get
|
||||
{
|
||||
// 如果文本组件尚未创建,则实例化一个新的
|
||||
if (_text == null)
|
||||
{
|
||||
// 使用游戏UI样式模板创建文本组件
|
||||
_text = Instantiate(GameplayDataSettings.UIStyle.TemplateTextUGUI);
|
||||
}
|
||||
return _text;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 模组初始化时调用,类似于构造函数
|
||||
/// 在此记录模组加载日志
|
||||
/// </summary>
|
||||
void Awake()
|
||||
{
|
||||
// 在控制台输出模组加载成功的日志信息
|
||||
Debug.Log("DisplayItemValue Loaded!!!");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 模组销毁时调用,用于清理资源
|
||||
/// 确保创建的文本组件被正确销毁,避免内存泄漏
|
||||
/// </summary>
|
||||
void OnDestroy()
|
||||
{
|
||||
// 检查文本组件是否存在
|
||||
if (_text != null)
|
||||
// 销毁文本组件以释放资源
|
||||
Destroy(_text);
|
||||
}
|
||||
void OnEnable()
|
||||
{
|
||||
// 注册物品悬停UI设置事件的监听器
|
||||
ItemHoveringUI.onSetupItem += OnSetupItemHoveringUI;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 模组禁用时调用,取消事件监听器
|
||||
/// 取消订阅事件,防止在模组禁用后仍然响应事件
|
||||
/// </summary>
|
||||
void OnDisable()
|
||||
{
|
||||
// 取消注册物品悬停UI设置事件的监听器
|
||||
ItemHoveringUI.onSetupItem -= OnSetupItemHoveringUI;
|
||||
}
|
||||
|
||||
private void OnSetupItemHoveringUI(ItemHoveringUI uiInstance, Item item)
|
||||
{
|
||||
if (item == null)
|
||||
{
|
||||
Text.gameObject.SetActive(false);
|
||||
return;
|
||||
}
|
||||
|
||||
Text.gameObject.SetActive(true);
|
||||
Text.transform.SetParent(uiInstance.LayoutParent);
|
||||
Text.transform.localScale = Vector3.one;
|
||||
Text.transform.SetSiblingIndex(1);
|
||||
Text.text = $"${item.GetTotalRawValue() / 2}";
|
||||
Text.fontSize = 20f;
|
||||
Text.color = Color.green;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user