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

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

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

Сообщение HewlettPackard 19 июл 2018, 13:27

Есть у меня массив 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");
    }
HewlettPackard
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2018, 11:47

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

Сообщение 1max1 19 июл 2018, 13:29

Синтаксис:
Используется 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");
    }
 
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

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

Сообщение HewlettPackard 19 июл 2018, 13:36

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) для всех индексов, но что бы у каждого индекса было разное значение, а не равнялось одному и тому же?
HewlettPackard
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2018, 11:47

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

Сообщение HewlettPackard 19 июл 2018, 13:42

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);
        }
HewlettPackard
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2018, 11:47

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

Сообщение Anonymyx 19 июл 2018, 13:46

После 3.8 поставьте 'f', 3.8f.
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

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

Сообщение 1max1 19 июл 2018, 13:46

Синтаксис:
Используется csharp
Random.Range(3.8f,6.0f);
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

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

Сообщение HewlettPackard 19 июл 2018, 13:48

1max1 писал(а):
Синтаксис:
Используется csharp
Random.Range(3.8f,6.0f);

Спасибо огромное
HewlettPackard
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2018, 11:47

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

Сообщение HewlettPackard 19 июл 2018, 14:23

1max1 писал(а):
Синтаксис:
Используется csharp
Random.Range(3.8f,6.0f);

Как обратиться к компоненту Transform гейм обьекта из массива platforms?
HewlettPackard
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2018, 11:47

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

Сообщение Anonymyx 19 июл 2018, 14:27

platforms[index].transform.

Может вам следует базовые уроки по Unity посмотреть?
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

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

Сообщение HewlettPackard 19 июл 2018, 14:31

Anonymyx писал(а):platforms[index].transform.

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

Невозможно присвоить значение свойству или индексатору "GameObject.transform" — доступ только для чтения.
HewlettPackard
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2018, 11:47

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

Сообщение 1max1 19 июл 2018, 14:37

Боже мой, хватит извращаться над юнити)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 20