我收到此错误:Assets \ Scripts \ RoomSpawner.cs(25,52):错误CS1061:'GameObject []'不包含'Lenght'的定义,并且没有可访问的扩展方法'Lenght'接受第一个参数可以找到'GameObject []'类型(您是否缺少using指令或程序集引用?)。为了解决这个问题,我只是更改为一个固定的数字(我使用了:“ rand = Random.Range(0,5);”),而不是“ rand = Random.Range(0,templates.rooms.Lenght);” ,但我不想每次更改数组大小时都进行更改。我的主要代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoomSpawner : MonoBehaviour
{
public int openingDirection;
private int rand;
private bool spawned = false;
private RoomTemplates templates;
void Start ()
{
templates = GameObject.FindGameObjectWithTag("Rooms").GetComponent<RoomTemplates>();
Spawn();
}
void Spawn ()
{
if (spawned == false)
{
if (openingDirection == 1)
{
rand = Random.Range(0, templates.rooms.Lenght);
Instantiate(templates.rooms[rand], transform.position, Quaternion.identity);
}
spawned = true;
}
}
}
和我的其他代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoomTemplates : MonoBehaviour
{
public GameObject[] rooms;
}
是Length
而不是Lenght
。
这是一个非常简单的错误,可以通过在编辑器上使用IDE或OmniSharp插件来避免。
通过这种方式,您可以通过在参考名称.
之后键入templates.rooms
来查看所有可用的属性>
如果您的项目是开源https://visualstudio.microsoft.com/es/,或者您可以使用VS代码并安装Omnisharp,则Visual Studio Community是免费的,这是他们的指南https://code.visualstudio.com/docs/languages/csharp