在尝试实例化对象时,无法将类型'UnityEngine.GameObject'隐式转换为'UnityEngine.Vector2'"



我正在尝试制作一个Unity游戏的部分,气球将在盒子碰撞器的边界内产生。这是随机完成的。然而,我在实例化预制件时遇到了问题。我尝试了两种方法,但都抛出了相同的错误。

这是第一种方法,在这里我使用了GameObject.transform

for(int i = 0; i > numBalloons; i++){
float randomX = Random.Range(left, right);
float randomY = Random.Range(up, down);
balloons[i] = Instantiate(BalloonPrefab, BalloonPrefab.transform);
}

这是第二种方法,我使用Vector2Quaternion来尝试初始化对象:

for(int i = 0; i > numBalloons; i++){
float randomX = Random.Range(left, right);
float randomY = Random.Range(up, down);
Vector2 temp = new Vector2(randomX, randomY);
balloons[i] = Instantiate(BalloonPrefab, temp, Quaternion.identity);
}
}

对于这两种方法,我都会得到以下错误:Cannot implicitly convert type 'UnityEngine.GameObject' to 'UnityEngine.Vector2'。这让我难以置信地困惑,因为如果我将BalloonPrefab设为Vector2(这似乎不是一个解决方案,但却是一个有价值的测试(,它会要求一个对象,如果我将其设为对象,它似乎想要一个Vector2。有人知道可能是什么问题吗?

我认为您的For条件也是错误的阵列也这么认为

public GameObject BalloonPrefab,ballon_parent;
public GameObject[] balloons;
void Start()
{
for (int i = 0; i < numBalloons; i++)
{
float randomX = Random.Range(left, right);
float randomY = Random.Range(up, down);
Instantiate(BalloonPrefab, new Vector2(randomX, randomY),Quaternion.identity, ballon_parent.transform);
}
}

最新更新