猿问

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

我的场景中有 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");

    }

}

}


神不在的星期二
浏览 104回答 1
1回答

繁花不似锦

您正在尝试对单个引用使用索引GameObject。由于您使用并遵循您的描述来选择随机值,SpawnPoints.Length因此您实际上更想获取数组的元素SpawnPoints。进一步你说我的场景中有 3 个空的游戏对象,我试图在其上生成对象但这不是您的代码要做的。您可能更想使用Instantiate(SpawnedObject, transform.position, transform.rotation, SpawnPoints[Randomint].transform);查看Instantiate您的具体情况的过载public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);第一个参数是original要生成的预制件/对象,最后一个参数是可选的parent Transform生成位置。position您可能还想重新考虑为和提供的值rotation..您真的想在脚本所附加的对象的位置和旋转处生成对象吗?您不想让它们在相应生成点的位置和旋转处生成吗?;)
随时随地看视频慕课网APP
我要回答