当前位置: 首页 > news >正文

电子商务网站建设 论文聊石家庄seo

电子商务网站建设 论文,聊石家庄seo,外贸网站如何做推广,网站转wordpress【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了合成面板的UI设置 UI_CraftWindow.cs 字段作用: UI 组件: itemName / itemDescription / icon&#…

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili

教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/

本章节实现了合成面板的UI设置

UI_CraftWindow.cs

字段作用:

  1. UI 组件:

    • itemName / itemDescription / icon:显示装备名称、描述和图标。
    • craftButton:合成按钮,点击后执行合成逻辑。
    • materialImage:显示合成所需材料的图片和数量。
  2. 数据输入:

    • SetCraftWindow(ItemData_Equipment _data):传入装备数据用于更新窗口内容。

主要功能:

  1. 清空已有材料显示:

    • 将所有 materialImage 和对应文字的颜色设置为透明,重置 UI。
  2. 更新材料信息:

    • 遍历 craftingMaterials 列表,将材料图标和数量显示到对应 materialImage
  3. 更新装备信息:

    • 显示装备的图标、名称和描述。
  4. 绑定合成逻辑:

    • craftButton 添加点击事件,调用CanCraft() 检查并处理合成逻辑。
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;public class UI_CraftWindow : MonoBehaviour
{[SerializeField] private TextMeshProUGUI itemName;[SerializeField] private TextMeshProUGUI itemDescription;[SerializeField] private Image icon;[SerializeField] private Button craftButton;   [SerializeField] private Image[] materialImage;public void SetCraftWindow(ItemData_Equipment _data){for (int i = 0; i < materialImage.Length; i++){materialImage[i].color = Color.clear;materialImage[i].GetComponentInChildren<TextMeshProUGUI>().color = Color.clear;}for (int i = 0; i < _data.craftingMaterials.Count; i++){if(_data.craftingMaterials.Count > materialImage.Length)Debug.LogWarning("你拥有的材料比合成需要的材料多");materialImage[i].sprite = _data.craftingMaterials[i].data.icon;materialImage[i].color = Color.white;TextMeshProUGUI materialSlotText = materialImage[i].GetComponentInChildren<TextMeshProUGUI>();materialImage[i].GetComponentInChildren<TextMeshProUGUI>().text = _data.craftingMaterials[i].stackSize.ToString();materialImage[i].GetComponentInChildren<TextMeshProUGUI>().color = Color.white;}icon.sprite = _data.icon;itemName.text = _data.itemName;itemDescription.text = _data.GetDescription();craftButton.onClick.AddListener(() => Inventory.instance.CanCraft(_data,_data.craftingMaterials));}
}

UI_CraftList.cs

这段代码是用于管理合成装备界面的 Unity 脚本,核心功能包括动态生成合成槽列表、默认显示第一个装备详情,以及响应用户点击刷新列表:

  1. 字段作用:

    • craftSlotParent:合成槽的父物体,用于容纳动态生成的合成槽。
    • craftSlotPrefab:合成槽的预制体。
    • craftEquipment:装备数据列表。
  2. 主要方法:

    • SetupCraftList():清空旧的合成槽并根据 craftEquipment 数据生成新的合成槽。
    • OnPointerDown():用户点击时刷新合成槽列表。
    • SetupDefaultCraftWindow():初始化并显示第一个装备的详情。
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;public class UI_CraftList : MonoBehaviour, IPointerDownHandler
{[SerializeField] private Transform craftSlotParent;//合成槽父物体[SerializeField] private GameObject craftSlotPrefab;//合成槽预制体[SerializeField] private List<ItemData_Equipment> craftEquipment;//合成装备列表void Start(){transform.parent.GetChild(0).GetComponent<UI_CraftList>().SetupCraftList();SetupDefaultCraftWindow();}public void SetupCraftList(){for (int i = 0; i < craftSlotParent.childCount; i++){Destroy(craftSlotParent.GetChild(i).gameObject);}for (int i = 0; i < craftEquipment.Count; i++){GameObject newSlot = Instantiate(craftSlotPrefab, craftSlotParent);newSlot.GetComponent<UI_CraftSlot>().SetupCraftSlot(craftEquipment[i]);}}public void OnPointerDown(PointerEventData eventData){SetupCraftList();}public void SetupDefaultCraftWindow(){if (craftEquipment[0]!= null)GetComponentInParent<UI>().craftWindow.SetCraftWindow(craftEquipment[0]);}
}

UI_CraftSlot.cs

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;//2024年11月15日
//函数放在新的创建Craft panel的itemSlot里
public class UI_CraftSlot : UI_ItemSlot//继承物品槽UI
{protected override void Start(){base.Start();}public void SetupCraftSlot(ItemData_Equipment _data)//设置合成槽{if (_data == null)return;item.data = _data;itemImage.sprite = _data.icon;//设置图标itemText.text = _data.itemName;//设置名字if (itemText.text.Length > 12)itemText.fontSize = itemText.fontSize * .7f;elseitemText.fontSize = 24;}private void OnValidate(){}public override void OnPointerDown(PointerEventData eventData){//ItemData_Equipment craftData = item.data as ItemData_Equipment;//Inventory.instance.CanCraft(craftData, craftData.craftingMaterials);//检查是否可以制作该物品ui.craftWindow.SetCraftWindow(item.data as ItemData_Equipment);//设置合成窗口}
}

http://www.yidumall.com/news/17562.html

相关文章:

  • 莱西网站建设哪家好需要一个网站
  • 徐州网站建设网站制作推广链接点击器网页
  • 专做b2c名牌代工网站广州seo排名外包
  • 国外做彩票网站客服seo推广要多少钱
  • 西部数码网站备份百度手机助手下载正版
  • 网站宣传活动怎么做网站建设的技术支持
  • 网站建设首选易网宣交换友情链接的渠道有哪些
  • 平阴网站建设费用百度推广的方式
  • 免费的ppt下载网站百度提交入口网站网址
  • 优站点网址收录网搜索引擎优化的基本内容
  • 网站流量刷网站优化软件哪个好
  • 江门网站建设系统网站关键词推广价格
  • 小企业来说 电子商务网站服务器的建设方案个人如何建立免费网站
  • 移动商城 网站建设方法方式seo的中文名是什么
  • 腾讯微校怎么做微网站营销案例分享
  • 台州建设工程信息网站南宁seo优化
  • 网站设计要求有哪些对网络营销的认识800字
  • 南京网站设计制作公司排名榜微营销是什么
  • 百度推广免费建站企业百度推广
  • 常州营销网站建设最近有哪些新闻
  • 计算机网站建设维护的基本知识百度竞价开户
  • 快速创建网站长沙全网推广
  • 中国招标网官网app网站优化排名提升
  • 张家港外贸网站设计成都seo优化排名公司
  • wordpress如何修改logo德阳网站seo
  • 大连手机自适应网站制作价格谷歌搜索优化seo
  • 拼团购物网站怎么做百度网页版下载
  • 建网站传播文化的好处恶意点击软件有哪些
  • 武汉做营销型网站推广比较成功的网络营销案例
  • dreamweaver 网站框架360搜索首页网址是多少