Unity中C#代码报错CS1061:DataBase类无items定义求助
解决Unity中CS1061错误:'DataBase' 不包含 'items' 的定义
问题根源是字段名拼写不匹配:你的DataBase类里声明的List字段叫item,但报错代码里一直用data.items访问,编译器找不到对应成员,因此抛出CS1061错误。
有两种修正方案,任选其一即可:
方案一:修改DataBase类的字段名(推荐)
把类中的item改为items,既和调用代码保持一致,也符合复数形式的命名规范:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class DataBase : MonoBehaviour { // 将item改为items public List<Item> items = new List<Item>(); } [System.Serializable] public class Item { public int id; public string name; public Sprite img; public int cost; public int kolvo; }
方案二:修改调用代码的引用
如果不想改动类的字段名,就把所有data.items替换为data.item:
public DataBase data; // 修改后的调用代码 AddItem(i, data.item[Random.Range(0, data.item.Count)], Random.Range(1,99)); items[id].itemGameObj.GetComponent<Image>().sprite = data.item[invItem.id].img;
优先推荐方案一,能和你参考的教程写法对齐,后续代码维护也更清晰。
内容的提问来源于stack exchange,提问作者Reya
相关产品推荐
相关产品推荐

