Страница 1 из 1

Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 13:27
HewlettPackard
Есть у меня массив platformDistance, и мне нужно что бы его размер равнялся размеру массива platforms, но когда я пишу public float[] platformDistance = new float[b]; то оно выбивает ошибку
"Инициализатор поля не может обращаться к нестатическому полю, методу или свойству "GameManager.b". " что с этим делать?
Синтаксис:
Используется csharp
public GameObject[] platforms;
    int b;
    public float[] platformDistance;
    public GameObject platform;

    private void Start()
    {
        b = Random.Range(5, 7);
        for (int i = 0; i < b; i++)
        {
            Instantiate(platform, new Vector3(0, 0, 0), Quaternion.identity);
        }
        platforms = GameObject.FindGameObjectsWithTag("platform");
    }

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 13:29
1max1
Синтаксис:
Используется csharp
    public GameObject[] platforms;
    int b;
    public float[] platformDistance;
    public GameObject platform;

    private void Start()
    {
        b = Random.Range(5, 7);

        platformDistance = new float[b];

        for (int i = 0; i < b; i++)
        {
            Instantiate(platform, new Vector3(0, 0, 0), Quaternion.identity);
        }
        platforms = GameObject.FindGameObjectsWithTag("platform");
    }
 

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 13:36
HewlettPackard
1max1 писал(а):
Синтаксис:
Используется csharp
    public GameObject[] platforms;
    int b;
    public float[] platformDistance;
    public GameObject platform;

    private void Start()
    {
        b = Random.Range(5, 7);

        platformDistance = new float[b];

        for (int i = 0; i < b; i++)
        {
            Instantiate(platform, new Vector3(0, 0, 0), Quaternion.identity);
        }
        platforms = GameObject.FindGameObjectsWithTag("platform");
    }
 

спасибо большое, извиняюсь за наглость но еще хотел спросить ,а как одной строчкой кода в этом массиве "platformDistance"сделать Random.Range(3.8,6) для всех индексов, но что бы у каждого индекса было разное значение, а не равнялось одному и тому же?

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 13:42
HewlettPackard
1max1 писал(а):
Синтаксис:
Используется csharp
    public GameObject[] platforms;
    int b;
    public float[] platformDistance;
    public GameObject platform;

    private void Start()
    {
        b = Random.Range(5, 7);

        platformDistance = new float[b];

        for (int i = 0; i < b; i++)
        {
            Instantiate(platform, new Vector3(0, 0, 0), Quaternion.identity);
        }
        platforms = GameObject.FindGameObjectsWithTag("platform");
    }
 

вопрос решил, но теперь новая ошибка" Аргумент 1: не удается преобразовать из "double" в "float"."
Синтаксис:
Используется csharp
for(int i = 0; i < b; i++)
        {
            platformDistance[i] = Random.Range(3.8, 6);
        }

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 13:46
Anonymyx
После 3.8 поставьте 'f', 3.8f.

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 13:46
1max1
Синтаксис:
Используется csharp
Random.Range(3.8f,6.0f);

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 13:48
HewlettPackard
1max1 писал(а):
Синтаксис:
Используется csharp
Random.Range(3.8f,6.0f);

Спасибо огромное

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 14:23
HewlettPackard
1max1 писал(а):
Синтаксис:
Используется csharp
Random.Range(3.8f,6.0f);

Как обратиться к компоненту Transform гейм обьекта из массива platforms?

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 14:27
Anonymyx
platforms[index].transform.

Может вам следует базовые уроки по Unity посмотреть?

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 14:31
HewlettPackard
Anonymyx писал(а):platforms[index].transform.

Может вам следует базовые уроки по Unity посмотреть?

Невозможно присвоить значение свойству или индексатору "GameObject.transform" — доступ только для чтения.

Re: Помощь с массивами C#

СообщениеДобавлено: 19 июл 2018, 14:37
1max1
Боже мой, хватит извращаться над юнити)