Unity3D 中的生成和阵列问题
Trouble with Spawning and Arrays in Unity3D
我在 Unity (4.6) 中创建的 2D 游戏中有一个清单 window,其中的各个插槽在游戏开始时填充了独特的对象。用户可以将对象从插槽中拖到游戏区域,在那里他们可以安排对象。用户还可以丢弃一个对象(这会将其移回库存)。
我创建了一个数组来计算布局网格中的对象数量,但从那里我遇到了一些问题:
1:如何在拖出前一个对象的同一插槽中重新生成该对象的新副本,并设置一个最大值,以便用户只能拖出特定数量的相同对象?
2:我如何 store/access 网格布局组中的对象索引,以便当对象放回清单中时,它们会回到最初拉出的相同位置?
这就是我目前的全部内容
public GameObject[] animalParts;
void Start () {
// Get all of my animal parts indexed
animalParts = GameObject.FindGameObjectsWithTag("AnimalPart");
for(int i = 0; i < animalParts.Length; i++)
{
Debug.Log ("Animal part " + i + " is named " + animalParts[i].name);
}
}
我现在如何将索引号分配给每个 animalPart 中的变量,以便稍后在对象被移除后被拖回库存时可以调用它?
您可能需要为此使用数据结构。喜欢:
public struct AnimalPartObject
{
public GameObject GO;
public int Index;
public int MaxItemsToSpawn;
}
然后您需要在脚本中创建一个 List<AnimalPartObject> listOfParts;
来管理您在游戏中生成的对象。并将脚本附加到每个部分元素以设置其 AnimalPartObject
信息。
希望这能解决您的问题。如果它达到了目的,请竖起大拇指。谢谢
我在 Unity (4.6) 中创建的 2D 游戏中有一个清单 window,其中的各个插槽在游戏开始时填充了独特的对象。用户可以将对象从插槽中拖到游戏区域,在那里他们可以安排对象。用户还可以丢弃一个对象(这会将其移回库存)。
我创建了一个数组来计算布局网格中的对象数量,但从那里我遇到了一些问题:
1:如何在拖出前一个对象的同一插槽中重新生成该对象的新副本,并设置一个最大值,以便用户只能拖出特定数量的相同对象?
2:我如何 store/access 网格布局组中的对象索引,以便当对象放回清单中时,它们会回到最初拉出的相同位置?
这就是我目前的全部内容
public GameObject[] animalParts;
void Start () {
// Get all of my animal parts indexed
animalParts = GameObject.FindGameObjectsWithTag("AnimalPart");
for(int i = 0; i < animalParts.Length; i++)
{
Debug.Log ("Animal part " + i + " is named " + animalParts[i].name);
}
}
我现在如何将索引号分配给每个 animalPart 中的变量,以便稍后在对象被移除后被拖回库存时可以调用它?
您可能需要为此使用数据结构。喜欢:
public struct AnimalPartObject
{
public GameObject GO;
public int Index;
public int MaxItemsToSpawn;
}
然后您需要在脚本中创建一个 List<AnimalPartObject> listOfParts;
来管理您在游戏中生成的对象。并将脚本附加到每个部分元素以设置其 AnimalPartObject
信息。
希望这能解决您的问题。如果它达到了目的,请竖起大拇指。谢谢