Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将索引[]应用于GameObject类型的表达式_C#_Unity3d - Fatal编程技术网

C# 无法将索引[]应用于GameObject类型的表达式

C# 无法将索引[]应用于GameObject类型的表达式,c#,unity3d,C#,Unity3d,我在我的场景中有3个空的游戏对象,我正试图在它们上面生成对象,我编写了这个脚本,在生成对象之间有一个RNG值 我遇到了一个问题,我不太确定如何解决它 public class Spawns : MonoBehaviour { public GameObject SpawnedObject; public bool StopSpawn = false; public float SpawnTime; public float SpawnDelay; public GameObject[] Sp

我在我的场景中有3个空的游戏对象,我正试图在它们上面生成对象,我编写了这个脚本,在生成对象之间有一个RNG值

我遇到了一个问题,我不太确定如何解决它

public class Spawns : MonoBehaviour
{

public GameObject SpawnedObject;
public bool StopSpawn = false;
public float SpawnTime;
public float SpawnDelay;

public GameObject[] SpawnPoints;
int Randomint;

// Start is called before the first frame update
void Start()
{
    InvokeRepeating("SpawnObjects", SpawnTime, SpawnDelay);
}

public void SpawnObjects()
{
    Randomint = Random.Range(0, SpawnPoints.Length);
    Instantiate(SpawnedObject[Randomint], transform.position, transform.rotation);

    if (StopSpawn)
    {
        CancelInvoke("SpawnObjects");
    }
}
}

您正在尝试对单个游戏对象引用使用索引

由于您使用SpawnPoints.Length拾取随机值,并且根据您的描述,实际上您更希望获得数组SpawnPoints的一个元素

你说得再进一步

我的场景中有3个空的游戏对象,我正试图在上面生成对象

但这不是你的代码会做的

你可能更想使用

Instantiate(SpawnedObject, transform.position, transform.rotation, SpawnPoints[Randomint].transform);
在您的具体情况下,请参阅和

public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
第一个参数是要生成的原始预设/对象,最后一个参数是要生成到的可选父变换


您可能还需要重新考虑为位置和旋转提供的值。。是否确实要在脚本附加到的对象的位置和旋转处生成对象?您是否希望它们在相应繁殖点的位置和旋转处繁殖

我遇到了一个问题什么问题?感谢您的解释,现在更有意义了: