c# - 如何制作游戏对象数组
问题描述
我想知道如何仅使用一个图像制作一组游戏对象?例如,我有一张炮弹和炮弹的图片,我想制作 10 个炮弹,并且能够单独更改每个炮弹。我将此脚本附加到单个炮弹游戏对象,并使用检查器使数组长度为 5。
我尝试过使用实例化,但所发生的只是它永远克隆它。
public GameObject[] cannonball;
public int i;
public int x=0;
void Start()
{
for (i = 0; i < cannonball.Length; i++) {
Instantiate(cannonball[i], new Vector2(x, 0), Quaternion.identity);
x = x + 5;
}
}
当我这样做时,由于某种原因,它会继续克隆游戏对象,我不知道为什么。
解决方案
您将此脚本附加到 canonball GameObject。这意味着每次你发射炮弹时,它也会附加脚本并产生一个新炮弹产生一个新炮弹......你可以在这里看到循环。
您不应该将其附加到 canonball 预制件上,而应附加到例如 GameController 对象上。
我还没有测试过,但要做到这一点,在你的场景中创建一个新的游戏对象,并在将它从你的炮弹游戏对象中删除后附加你的脚本。现在如果你按下空格,你可以实例化炮弹。
public GameObject[] cannonball;
public int i;
public int x=0;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space)) {
for (i = 0; i < cannonball.Length; i++) {
Instantiate(cannonball[i], new Vector2(x, 0), Quaternion.identity);
x = x + 5;
}
}
}
推荐阅读
- web-hosting - 短期网络托管
- sumo - 如何在win8上的SUMO中使用randomTrips.py
- gradle - 将 gradle 属性文件指定为 gradlew 的命令行参数
- javascript - 状态更改导致侧边栏重新加载
- c++ - 有没有更有效的方法来替换这些多个 IF 语句?
- react-native - 如何在 React Native 的 createStackNavigator 中创建 createDrawerNavigator?
- dns - 挖掘DNS,有时会得到正确的答案,有时会得到错误的答案
- excel - 比较工作表中单元格中的值以在不同工作表中的不同列中找到相同的值
- hibernate - [Java][Hibernate] 如何获取子依赖集合的限制?
- selenium - Chrome 打开“数据;;” python中带有硒的地址