为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
神不在的星期二 2023-09-24 10:40:47
我的场景中有 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 updatevoid 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");    }}}
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

您正在尝试对单个引用使用索引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..您真的想在脚本所附加的对象的位置和旋转处生成对象吗?您不想让它们在相应生成点的位置和旋转处生成吗?;)


查看完整回答
反对 回复 2023-09-24
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信