Пару вопросов для юнитиводов от фазеровода :)

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

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение maddogmaycry 09 июл 2020, 08:09

seaman писал(а):Надеюсь Вы понимаете, что это только данные.

Так мне хотя бы увидеть, как эти данные можно было бы обьявить.
Обьявить, по аналогии с тем что у меня там выше. Там пример не совсем корректный, так как сами данные уже получены из JSON, и мы уже имеем дело ссылками на ячейки памяти.
Но это наглядно демонстрирует сам принцип.

Так как бы вы обьявили и потом получили доступ к значениям?
Какими методами располагает # на нативном уровне для реализации подобных вещей?

Как у меня:
JSON -> закинуть в память, и получить некий многомерный обьект.
Теперь можно получить все ключи по их ссылке из памяти.
Синтаксис:
Используется javascript
for(key in tree){
...  
if(tree[key][type]=="parent"){
      рекурсия
    }
}


Как я это вижу сейчас
Допустим у нас есть файл в файловой системе (xml/json).
Сначала я должен загрузить весь файл в память.
Теперь нужны какие то методы, которые будут получать узлы, изменять.
maddogmaycry
UNец
 
Сообщения: 11
Зарегистрирован: 07 июл 2020, 11:59

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение Iq51 09 июл 2020, 11:34

Можно целиком объекты в json перегонять и восстанавливать: JsonUtility.

Что-то такое:

var jsonData = File.ReadAllText(savePath);
var data = JsonUtility.FromJson<T>(jsonData);
Iq51
UNIт
 
Сообщения: 64
Зарегистрирован: 19 окт 2011, 02:34

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение Woland 09 июл 2020, 11:41

ну к примеру как у меня сделано (я не говорю, что это правильно и вообще так надо - просто пример). Есть json с описанием NPC (снизу часть из этого json). Я считываю инфу из файла и накладываю её на структуру своих классов. В результате у меня получается список объектов классов с заданной структурой и с данными, которые я задал в json
Синтаксис:
Используется csharp
{
                                                "NPCId" : 4,
                                                "type": "craft",
                                                "positionIndex" : 2,
                                                "texture" : "Textures/Characters/NPC/Uncle_bear/Uncle_bear_SkeletonData",
                                                "animator": "Textures/Characters/NPC/Uncle_bear/Uncle_bear_Controller",
                                                "material": "Textures/Characters/NPC/Uncle_bear/Uncle_bear_Material",
                                                "allReplicsBlocks":
                                                [
                                                        {
                                                        "autoSpeak":true,
                                                        "condition":
                                                        [
                                                                {
                                                                        "conditionName":"talkedWithCraft1",
                                                                        "conditionValue":false
                                                                }
                                                        ],
                                                        "allReplics":
                                                                [
                                                                        {
                                                                                "whoSpeak": "bear",
                                                                                "replic": "lodg_craft_tutorial1"
                                                                        },
                                                                        {
                                                                                "whoSpeak": "topa",
                                                                                "replic": "topa_craft_tutorial1",
                                                                                "conditionToSet":
                                                                                {
                                                                                        "conditionName":"talkedWithCraft1",
                                                                                        "conditionValue":true
                                                                                }
                                                                        }
                                                                ]
                                                        },
                                                        {
                                                        "autoSpeak":false,
                                                        "condition":
                                                        [
                                                                {
                                                                        "conditionName":"talkedWithCraft1",
                                                                        "conditionValue":true
                                                                }
                                                        ],
                                                        "allReplics":
                                                                [
                                                                        {
                                                                                "whoSpeak": "bear",
                                                                                "replic": "bear_common1"
                                                                        }
                                                                ]
                                                        }
                                                ],
                                               
                                                "allCraftItems":
                                                        [
                                                                {
                                                                        "id": "4_1",
                                                                        "neededMoney":30,
                                                                        "neededItems":
                                                                        [
                                                                                {
                                                                                        "id":"10_1",
                                                                                        "count":1                                                                              
                                                                                }
                                                                        ]
                                                                },
                                                                {
                                                                        "id": "4_2",
                                                                        "neededMoney":30,
                                                                        "neededItems":
                                                                        [
                                                                                {
                                                                                        "id":"10_1",
                                                                                        "count":1
                                                                                }
                                                                        ]
                                                                },
                                                                {
                                                                        "id": "4_3",
                                                                        "neededMoney":30,
                                                                        "neededItems":
                                                                        [
                                                                                {
                                                                                        "id":"10_1",
                                                                                        "count":1
                                                                                }
                                                                        ]
                                                                }
                                                        ]
                                        }
Woland
Адепт
 
Сообщения: 1240
Зарегистрирован: 20 апр 2013, 18:09
  • Сайт

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение Dewa1s 09 июл 2020, 13:25

maddogmaycry писал(а):
seaman писал(а):Надеюсь Вы понимаете, что это только данные.

Так мне хотя бы увидеть, как эти данные можно было бы обьявить.
Обьявить, по аналогии с тем что у меня там выше. Там пример не совсем корректный, так как сами данные уже получены из JSON, и мы уже имеем дело ссылками на ячейки памяти.
Но это наглядно демонстрирует сам принцип.

Так как бы вы обьявили и потом получили доступ к значениям?
Какими методами располагает # на нативном уровне для реализации подобных вещей?

Как у меня:
JSON -> закинуть в память, и получить некий многомерный обьект.
Теперь можно получить все ключи по их ссылке из памяти.
Синтаксис:
Используется javascript
for(key in tree){
...  
if(tree[key][type]=="parent"){
      рекурсия
    }
}


Как я это вижу сейчас
Допустим у нас есть файл в файловой системе (xml/json).
Сначала я должен загрузить весь файл в память.
Теперь нужны какие то методы, которые будут получать узлы, изменять.

Есть же сторонние сериализаторы JSON
https://www.newtonsoft.com/json/help/ht ... gments.htm
Он позволяет стучаться до определенных полей с синтаксисом практически как вам надо
Аватара пользователя
Dewa1s
Старожил
 
Сообщения: 564
Зарегистрирован: 26 дек 2011, 02:12

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение maddogmaycry 09 июл 2020, 17:03

Всем спасибо за ответы.
Уже третий день потихоньку изучаю # и он мне нравится.
Переходить с привычных вещей не так просто как хотелось бы.
maddogmaycry
UNец
 
Сообщения: 11
Зарегистрирован: 07 июл 2020, 11:59

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение maddogmaycry 10 июл 2020, 17:41

Не поможете разобраться с такой штукой.

class myClass<T>
Что это значит? Где об этом можно почитать?

А, все понятно. Костыль для динамической типизации :)
maddogmaycry
UNец
 
Сообщения: 11
Зарегистрирован: 07 июл 2020, 11:59

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение Saltant 10 июл 2020, 19:40

Ни каким образом это не костыль. Это Generic классы. https://docs.microsoft.com/ru-ru/dotnet ... ic-classes
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Пару вопросов для юнитиводов от фазеровода :)

Сообщение seaman 10 июл 2020, 20:13

Если программировали на плюсах, там есть templates. Дженерики - это нечто типа их...

Костыль для динамической типизации в шарпе - это тип dynamic На некоторых платформах не работает, и вообще, имхо,- именно костыль.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Пред.

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

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

Сейчас этот форум просматривают: GoGo.Ru [Bot], Yandex [Bot] и гости: 33