我在使用C#的Unity中遇到数组问题[关闭]

问题描述 投票:0回答:1

我收到此错误: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;
}
c# unity3d
1个回答
0
投票

Length而不是Lenght

这是一个非常简单的错误,可以通过在编辑器上使用IDE或OmniSharp插件来避免。

通过这种方式,您可以通过在参考名称.之后键入templates.rooms来查看所有可用的属性>

如果您的项目是开源https://visualstudio.microsoft.com/es/,或者您可以使用VS代码并安装Omnisharp,则Visual Studio Community是免费的,这是他们的指南https://code.visualstudio.com/docs/languages/csharp

© www.soinside.com 2019 - 2024. All rights reserved.