【Unity】背包系统 + 物品窗口管理系统(中)

物品窗口管理连接

简介:

在上一篇文章中我们已经创建好了一个UI界面,但是并没有和数据的链接,那么这篇文章就来连接一下我们的窗口中的各个属性,这篇文章的内容会比较简单,那么我们直接开始!

实现:

了解连接语法:

在Unity中我们连接UI和数据的属性的时候,Unity的官方文档中都有明确的解释以及使用这个时候我们就,可以了解一下我们Unity的文档,今天我将会带着大家一起写一下这个文章,那么我们直接开始,今天的内容都是一些代码内容也不会非常多那么我们先打开Editor文件夹下的cs脚本

1.连接 Item 表以此来获得Item数据

在我们第一章开始时我们创建了一个ScriptableObject,这个是用来存储我们的Item的所有信息的,根据我们的Item信息再对UI内容做相对应的修改,我们现在最主要的任务就是把数据先得到,无论是修改增加删除都需要先得到数据,大家看下面的代码,我在原来的基础上增加了加载我们ItemTable的函数,LoadDataBase(加载数据库),那么这个时候我们才可以进行下一步。大家看下面的代码:

using System.Collections.Generic;
using StockpileSystem;
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;

public class ItemEditor : EditorWindow
{
    [SerializeField]
    private VisualTreeAsset m_VisualTreeAsset = default;

    private List<ItemBase> ItemList = new List<ItemBase>();
    private ItemTable DataBase;

    [MenuItem("Stockpile/ItemEditor")]
    public static void ShowExample()
    {
        ItemEditor wnd = GetWindow<ItemEditor>();
        wnd.titleContent = new GUIContent("ItemEditor");
    }

    public void CreateGUI()
    {
        // Each editor window contains a root VisualElement object
        VisualElement root = rootVisualElement;

        VisualElement labelFromUXML = m_VisualTreeAsset.Instantiate();
        root.Add(labelFromUXML);

        LoadDataBase();
    }
    /// <summary>
    /// 加载资源文件
    /// </summary> 
    private void LoadDataBase()
    {
        // 这个是Unity的一个加载资源的方法通过这个函数可以通过添加t:类型来找到这个项目里面这个类型的文件
        var DataArray = AssetDatabase.FindAssets("t:ItemTable");

        // 判断是否为空,也就是能否找到这个文件
        if (DataArray.Length > 0)
        {
            var path = AssetDatabase.GUIDToAssetPath(DataArray[0]);
            // 强制转换
            DataBase = AssetDatabase.LoadAssetAtPath(path, typeof(ItemTable)) as ItemTable;
            // 检查是否为空,并赋值
            if (DataBase != null && DataBase.ItemDetails != null)
            {
                ItemList = DataBase.ItemDetails;
                EditorUtility.SetDirty(DataBase);
            }
            else
            {
                // 报错
                Debug.LogError("Failed to load ItemDataTable or itemDetails is null");
            }
        }
        else
        {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值