![]() |
Ответ: Вопросы от новичка
PHP код:
PlayerController.instance.Life -= 5; |
Ответ: Вопросы от новичка
Всем привет! Я по поводу сортировки массива. Пытаюсь сортировать массив вот так:
Код:
public class Data { Цитата:
Цитата:
|
Ответ: Вопросы от новичка
data_sort = data.OrderBy (t=>int.Parse (t.param2??"0")).ToArray ();
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Оказалось что сортировка происходит - http://ideone.com/IdMyuR.
|
Ответ: Вопросы от новичка
Полоса прокрутки вообще страшная штука. С ней даже Space(2) может сделать отступ в 1 пиксель)
Я вот заметил, что мой сериализованный список сохраняется лишь в сцене. После Revert из префаба все объекты списка не созданы т.е. просто null. Объекты мои унаследованы от юнитивского Object. Почему так может происходить? Создаю их так: ScriptableObject.CreateInstance(type) Храню так: [SerializeField] private List<Block> blockSet = new List<Block>(); |
Ответ: Вопросы от новичка
А в префабе объекты есть?
ну а вообще ScriptableObject в ассетах надо сохранять как *.asset |
Ответ: Вопросы от новичка
pax, видно в префаб и не сохраняется список.
У меня не ScriptableObject, а просто Object. Создавать на каждый объект ассет будет очень не удобно. Нужно в одном списке хранить. В сцене все нормально сохраняется. |
Ответ: Вопросы от новичка
Они только в сцене и сохраняются таким образом, а какой в этом толк? Классы с Serializable атрибутом прекрасно сохраняют списки на префабах.
|
Ответ: Вопросы от новичка
pax, у меня полиморфизм. Обычные классы не сохранялись.
Блин! Даже не знаю что теперь делать( Я сейчас уже даже не уверен, что я правильно создавал свои объекты. Эта перегрузка CreateInstance<T>() where T: ScriptableObject Позволяет создавать только наследники ScriptableObject. В той перегрузки, которой я пользовался ScriptableObject CreateInstance(Type type) нет такой проверки. А если просто через new создавать, то почему-то ничего не создается т.е. null возвращается. Даже не знаю как это сделано без выбрасывания исключений. В некоторых языках есть фабричные конструкторы, которые могут возвращать черт знает что. В C# о таком не слышал. |
Ответ: Вопросы от новичка
Вложений: 1
Ну ладно, попытаюсь вешать все ScriptableObject на один ассет.
Создаю этот ассет из объекта List(:ScriptableObject), все нормально. Код:
List list = ScriptableObject.CreateInstance<List>(); Код:
AssetDatabase.AddObjectToAsset(newObject, list); Мой New List перемещается вглубь иерархии, а рутовым остается какая-то пустышка с тем же именем New List. Почему так? |
Ответ: Вопросы от новичка
Не мучайся и создавай отдельные ассеты, если они действительно нужны. Как ты потом будешь удалять из такого ассета объекты?
|
Ответ: Вопросы от новичка
pax, да, удаление объекта тоже вопрос. Точнее я не понял как получить список объектов у ассета, чтобы их потом удалить. Хотя они все равно хранятся в моем списке.
Я делаю список блоков для моего MineCraft. Сейчас так все просто и красиво в инспекторе редактируется. На каждый блок создавать ассет, ну совсем не гуд. Впрочем все равно хотел, чтобы blockset можно было создавать и загружать из вне. Вообщем придется делать своим xml форматом. Жаль только для своего формата инспектор не сделаешь. Придется либо окно редактора создавать, либо блокнотом редактировать) А сделать загрузчик для своего формата нельзя? Чтобы файл преобразовывался в юнитивский объект, как шрифт. Может в Unity 4 так уже можно? Подумывал BlockSet писать кодом) Как в MineCraft ModLoader'е. Но тогда из вне уже сложно будет загрузить т.к. придется сначала этот код компилировать. Да и координаты текстурные вручную писать придется. И загрузка таких кодов может быть довольно опасной. Или можно ограничить возможности этого стороннего кода? |
Ответ: Вопросы от новичка
Сделаешь инспектор, это TextAsset, можешь для него сделать инспектор свой. С четверкой не работал, поэтому не знаю, в третей не слышал, но может можно...
|
Ответ: Вопросы от новичка
Цитата:
Код:
AssetDatabase.CreateAsset(list, "Assets/New List.asset"); Код:
AssetDatabase.AddObjectToAsset(newObject, list); Код:
list.name = "New List"; Цитата:
|
Часовой пояс GMT +4, время: 22:34. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot