你如何从预制件中获得一个整数?
How do you get an int from a prefab?
我有一个商店的预制件。这家商店有一个计数整数,表示商店持有多少东西。但是这个预制件填充了许多具有不同 int 值的商店。所以商店 1 可以有 3 件商品,而商店 2 有 40 件商品,依此类推。我需要一种方法来将所有这些相加并在另一个脚本中使用它。我什至不知道从哪里开始。一个答案将是理想的,但如果不是只是朝着正确的方向轻推,我们将不胜感激。提前谢谢你。
int storeSum = 0;
foreach (YourScriptHere store in FindObjectsOfTypeAll(typeof(YourScriptHere)) as YourScriptHere[])
{
storeSum += store.theValueHere;
}
在 YourScriptHere
中填写您要查找的脚本的 class 名称。它会抓取场景中所有出现的预制件,然后添加您设置的值。将 theValueHere
替换为您设置的任何整数字段。如果您想添加编辑器对象,这是一种不同的方法,如果是这种情况,我可以编辑答案。
另一种方法是让管理器拥有对每个对象的所有引用,因此您无需调用 FindObjectsOfTypeAll
。如果这些值在运行时发生变化并且您想重新计算它,我会在检查器中分配引用或存储引用。如果其中一些对象被销毁或实例化了新对象,我会考虑在存储引用时使用 HashSet
。
我有一个商店的预制件。这家商店有一个计数整数,表示商店持有多少东西。但是这个预制件填充了许多具有不同 int 值的商店。所以商店 1 可以有 3 件商品,而商店 2 有 40 件商品,依此类推。我需要一种方法来将所有这些相加并在另一个脚本中使用它。我什至不知道从哪里开始。一个答案将是理想的,但如果不是只是朝着正确的方向轻推,我们将不胜感激。提前谢谢你。
int storeSum = 0;
foreach (YourScriptHere store in FindObjectsOfTypeAll(typeof(YourScriptHere)) as YourScriptHere[])
{
storeSum += store.theValueHere;
}
在 YourScriptHere
中填写您要查找的脚本的 class 名称。它会抓取场景中所有出现的预制件,然后添加您设置的值。将 theValueHere
替换为您设置的任何整数字段。如果您想添加编辑器对象,这是一种不同的方法,如果是这种情况,我可以编辑答案。
另一种方法是让管理器拥有对每个对象的所有引用,因此您无需调用 FindObjectsOfTypeAll
。如果这些值在运行时发生变化并且您想重新计算它,我会在检查器中分配引用或存储引用。如果其中一些对象被销毁或实例化了新对象,我会考虑在存储引用时使用 HashSet
。