Вложенные массивы в Unity

232
29 апреля 2018, 19:36

В Unity в инспекторе не отображаются вложенные массивы или я что то не так делаю? Мне необходимо вывести массив массивов в инспектор для заполнения.

У меня есть массив классов, вернее структур, в которых первое поле это имя свойства оружия, второе и третье это мин-макс значения, которые данное свойство может принять рандомно при генерации.

Однако у оружия есть степени легендарности и для каждой степени легендарности эти мин макс значения для свойства должны быть свои. Соответственно я решил создать массив этих массивов классов. Может быть есть какое либо другое решение или есть способ отобразить вложенные массивы в инспекторе?

Код самой структуры:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
    public enum PropertyName
{
    phisicalDamageBonus,
    phisicalDamageBonusPercents,
    atackSpeedBonusPercents,
    earthDamageBonus,
    earthDamageBonusPercents,
    fireDamageBonus,
    fireDamageBonusPercents,
    airDamageBonus,
    airDamageBonusPercents,
    waterDamageBonus,
    waterDamageBonusPercents,
    lifeStealBonus,
    lifeStealBonusPercents,
    manaStealBonus,
    manaStealBonusPercents
}
[System.Serializable]
public struct Property{
    public PropertyName name;
    public int minValue;
    public int maxValue;
    public int Generate()
    {
        return Random.Range(minValue, maxValue);
    }
}
Answer 1

Здарвствуйте! Могу предложить такой вариант массива в массиве. Может быть выглядит не очень, но более менее можно будет сориентироваться в инспекторе.

[System.Serializable]
public class SubList {
    public string name; // дополнительное поле, чтобы в инсекторе отобразить имя массива для удобства
    public List<Property> list = new List<Property>();
}
// использование
public List<SubList> myArray = new List<SubList>();

В инспекторе примерно отобразится так:

Надеюсь вам поможет, или натолкнет на мысль какую.

READ ALSO
Ошибка StackOverflowException в калькуляторе выражений

Ошибка StackOverflowException в калькуляторе выражений

Делаю калькулятор выражений (по типу 2 + (2 * sin(2^2)))) При запуске и вводе даже банального выражения (2 + 2) выдает StackOverflowExceptionЯ так понимаю проблема...

213
обновить БД на Azure Asp Core

обновить БД на Azure Asp Core

Я изменил модель MyModel добавив в нее новое свойство Myprop{get; set;}

167
Что выбрать лучше? [Клиент/Сервер]

Что выбрать лучше? [Клиент/Сервер]

Посоветуйте что лучше использовать под клиент/сервер TcpListener или Socket или TcpClient?

136
Как сократить код не используя цикл for

Как сократить код не используя цикл for

Есть массив ключ=значение string, значение имеет разделители , | послеSplit остаются начальные пробелы

144