【发布时间】:2015-07-06 16:59:11
【问题描述】:
解决了我自己,我很傻
解决了我自己,我很傻
解决了我自己,我很傻
请看下面我的回答。
这里的课程有问题,不确定原因。
在我的场景中,我从同一个预制件中实例化了 2 个游戏对象。每个都附加了一个 InventoryManager 脚本,在这个脚本中,我正在使用 InventoryManager 创建一个名为 Inventory 的类的新实例:
using UnityEngine;
using System.Collections;
public class InventoryManager : MonoBehaviour {
public Inventory inventory;
private ItemDatabase itemDatabase;
void Start ()
{
inventory = new Inventory (9);
}
}
但无论出于何种原因,我的 Inventory 类中的任何 List 值都在两个实例化的 GameObjects 之间共享。
这是库存类的一个高峰:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class Inventory
{
public int ID;
public List<Item> items = new List<Item>();
public int maxSize;
public static int inventoryCount;
public Inventory(int size)
{
ID = inventoryCount;
inventoryCount++;
maxSize = size;
}
}
基本上,当我添加一个新东西时
gameobject1.GetComponent<InventoryManager>().inventory.Add(item1);
(add方法确实存在,有点长所以我只在需要时才发布)
它也会出现在 gameobject2 的物品栏中。
【问题讨论】: