using UnityEngine;
using UnityEngine.UI;
using QFramework;
using Unity.VisualScripting;
using Sirenix.OdinInspector;

namespace QFramework.Escape
{
	public class UIItemDetailInfoData : UIPanelData
	{
		public InventoryItemModel itemModel;
	}

	public partial class UIItemDetailInfo : UIPanel
	{
		[LabelText("物品code,优先级低于传参")]
		public string DefaultItemCode;
        protected override void OnInit(IUIData uiData = null)
		{
			if(DefaultItemCode != "" && ItemManage.Instance.itemConfig.confDic[DefaultItemCode] != null)
			{
				mData = new UIItemDetailInfoData()
				{
                    itemModel = ItemManage.Instance.itemConfig.confDic[DefaultItemCode]
                };
            }
			mData = uiData as UIItemDetailInfoData ?? mData;

			// 点击关闭按钮关闭窗口
			BtnClose.onClick.AddListener(() =>
			{
				this.CloseSelf();
			});
			BtnPick.onClick.AddListener(() =>
			{
				ItemManage.Instance.AddItem(mData.itemModel.code);
				GameHandle.PopMsg("取得'" + mData.itemModel.itemName + "'");
				Player.Instance.AddActionPoint(-1);
				this.CloseSelf();
			});
		}

		protected override void OnOpen(IUIData uiData = null)
		{
			UIItemDetailInfoData data = (uiData as UIItemDetailInfoData);
			if (data != null)
			{
                InventoryItemModel item = data.itemModel;
                this.ItemName.text = item.itemName;
                this.Desc.text = item.description;
                if (item.detailImage != null)
                {
                    this.Image.sprite = item.detailImage;
                }
                else if (item.icon != null)
                {
                    this.Image.sprite = item.icon;
                }
            }
		}

		protected override void OnShow()
		{
			// 禁用键盘操作
			InputManager.Instance.enabled = false;
		}

		protected override void OnHide()
		{
			// 启用键盘操作
			InputManager.Instance.enabled = true;
		}

		protected override void OnClose()
		{
			// 启用键盘操作
			InputManager.Instance.enabled = true;
		}
	}
}

这段代码展示了如何在 Unity 中禁用拾取物品 UI 面板的键盘操作。它使用了 QFramework 库,并在 OnShow 方法中将 InputManager.Instance.enabled 设置为 false 来禁用键盘操作,并在 OnHideOnClose 方法中将其设置为 true 来恢复键盘操作。

注意:

  • 确保你已经引用了 QFramework 库。
  • 确保你的项目中存在 InputManager 类。
  • 你可以根据你的需求修改代码,例如在特定条件下禁用或启用键盘操作。

希望这个例子能够帮助你实现你的目标!


原文地址: http://www.cveoy.top/t/topic/phcJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录