有没有办法获得包含未实例化的预制件的阵列

时间:2019-03-25 13:13:15

标签: c# unity3d

我有一个文件夹Items,其中包含带有附加类的预制件,我要做的是将这些预制件装满以比较它们的ID号,即item类中的字符串和ID号我希望从数据库中将这些预制件放到库存清单中,

1 个答案:

答案 0 :(得分:1)

这可能是您需要的。

public List<GameObject> prefabsWithClassOnThem;

public GameObject CheckTheID(string ID)
{
    foreach (GameObject go in prefabsWithClassOnThem)
    {
        if(go.GetComponent<ItemClass>().getID() == ID){
            return go;
        }
    }
    return null;
}

prefabsWithClassOnThem-名称不言自明。这是预制件列表,您必须手动将其放入列表中。然后,将脚本添加到脚本管理器(或任何您喜欢的对象),其外观将是这样的: enter image description here

点击箭头,输入所需尺寸,然后手动放置所有预制件。

enter image description here

CheckTheID-方法,它将使用您为此方法提供的ID来检查预制件。

ItemClass-您在问题中提到的类。该类具有prefab的ID,并具有方法GetID()。

您将需要在addToInventory方法或类似方法中调用此方法。

如果要检查对象是否之前已被实例化,只需在ItemClass中创建其他布尔参数,该参数在被实例化时将为true(首次实例化一个预制件时,必须对其进行更改)。 每次您要创建唯一项时,只需检查布尔值即可。

抱歉,语言混乱。