Как сделать файл с ID предметов и их данными
|
|
robertono | Дата: Среда, 10 Июля 2013, 11:17 | Сообщение # 1 |
Чокнутый Кот
Сейчас нет на сайте
| Как сделать файл - скрипт где можно будет хранить ID вещей и их информацию, например имя и тип. Нужно класс создавать или что? А как потом в классе создать разные ID с параметрами? например ID : 1 Name : баклажан Type : овощьДобавлено (10.07.2013, 00:22) --------------------------------------------- Только как это в скрипте записать? Будет очень много таких ID . Это я делаю для того что бы можно было из инвентаря по ID найти предмет, его префаб, и дропнуть вещь. Да и чтоб можно было как то её через команду получить. /give ID Добавлено (10.07.2013, 11:17) --------------------------------------------- Что, никто не знает что ле? Нужно сделать как в майнкрафте. ИД предметов.
|
|
| |
JHawk | Дата: Среда, 10 Июля 2013, 11:24 | Сообщение # 2 |
めゃくちゃちゃ
Сейчас нет на сайте
| robertono, попробуй создать ArrayList
Код using System.Collections.Generic//Обязательно впиши в начало!!! //---- после основного класса [System.Serializable] public class Test{ public string name; public int ID; public Texture Icon; } public List<Test> test; //------------------------------ Когда то сам на этом долго висел. Надеюсь дальше сам додумаешься) Удачи тебе) P.S С тебя плюсик
Сообщение отредактировал JHawk - Среда, 10 Июля 2013, 11:26 |
|
| |
robertono | Дата: Среда, 10 Июля 2013, 15:36 | Сообщение # 3 |
Чокнутый Кот
Сейчас нет на сайте
| Цитата (JHawk) Надеюсь дальше сам додумаешься) Удачи тебе) незнаю незнаю, я в этом ещё слаб))) Давай ты мне покажешь как сделать таких 2 итема, т.е. 2 айди с параметрами И тогда дам 3 +
|
|
| |
AlexS | Дата: Среда, 10 Июля 2013, 16:29 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Работай с XML. Создавай объект, а потом "serialize" его с XML. Вот пример: http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm
|
|
| |
robertono | Дата: Среда, 10 Июля 2013, 16:39 | Сообщение # 5 |
Чокнутый Кот
Сейчас нет на сайте
| AlexS, спасибо, почитаю, посмотрю
|
|
| |
Alastar | Дата: Среда, 10 Июля 2013, 17:21 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Цитата (AlexS) Работай с XML. Создавай объект, а потом "serialize" его с XML. Вот пример: http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm XML не удобен в том, что он не сохраняет недоступные поля. Лучше использовать SOAP, и еще какой то формат есть, я уже забыл.
Big Boobs (+18 only!)
|
|
| |
pixeye | Дата: Пятница, 19 Июля 2013, 07:39 | Сообщение # 7 |
Red Winter Software
Сейчас нет на сайте
| xml файл
Код <traits> <trait id="berseker" name="Берсекер" sprID="trait_berseker"></trait> <trait id="phisProtection" name="Броня" sprID="trait_phisResist"></trait> <trait id="poison" name="Яд" sprID="trait_poison"></trait> <trait id="thief" name="Вор" sprID="trait_thief"></trait> <trait id="coward" name="Трус" sprID="trait_coward"></trait> <trait id="resurection" name="Воскрешение" sprID="trait_resurection"></trait> <trait id="toxic" name="Токсичен" sprID="trait_toxic"></trait> <trait id="manaBurner" name="Манасжигатель" sprID="trait_manaBurner"></trait> <trait id="horrendous" name="Страшила" sprID="trait_horrendous"></trait> <trait id="shaman" name="Шаман" sprID="trait_horrendous"></trait> <trait id="cutthroat" name="Головорез" sprID="trait_horrendous"></trait> </traits>
Какойнибудь класс типа xmlParser
Код using UnityEngine; using System; using System.Collections; using System.Collections.Generic; using System.Xml; using System.IO;
public static xmlParser instance;
//------------------------------------------------------------------------------ //CONSTRUCTOR //------------------------------------------------------------------------------ public static xmlParser Instance { get { if (instance == null) { instance = new GameObject ("xmlParser").AddComponent ("xmlParser") as xmlParser; } return instance; } }
public Dictionary<string,Hashtable> LoadTraitsInfo () { Dictionary<string,Hashtable> temp_Traits = new Dictionary<string, Hashtable> (); string path = "Data/traits"; XmlDocument xmlDoc = new XmlDocument (); TextAsset xmlData = new TextAsset (); xmlData = (TextAsset)Resources.Load (path, typeof(TextAsset)); xmlDoc.LoadXml (xmlData.text); XmlNodeList _List = xmlDoc.GetElementsByTagName ("trait"); if (_List.Count == 0) { Debug.Log ("No trait available to load"); return null; } string Name; string sprID; string id; foreach (XmlElement m in _List) { id = (string)m.Attributes ["id"].Value; Name = (string)m.Attributes ["name"].Value; sprID = (string)m.Attributes ["sprID"].Value; Hashtable hash = new Hashtable (); hash.Add ("id", id); hash.Add ("Name", Name); hash.Add ("sprID", sprID); temp_Traits.Add (id, hash); } Debug.Log ("traits LOADED: " + _List.Count); return temp_Traits; }
Какойто класс:
Код using UnityEngine; using System.Collections; using System.Collections.Generic;
public Dictionary<string,Hashtable> traitsDescription = new Dictionary<string, Hashtable>();
void Start(){ traitsDescription = xmlParser.Instance.LoadTraitsInfo (); }
string path = "Data/traits"; <- кладется в папку Resources
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
TideS | Дата: Пятница, 19 Июля 2013, 07:55 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| pixeye, Кто-то еще называет классы с маленькой буквы? Пофикси на XMLParser, что бы те, кто это скопипастят знали как правильно делать нужно.
|
|
| |
pixeye | Дата: Пятница, 19 Июля 2013, 08:19 | Сообщение # 9 |
Red Winter Software
Сейчас нет на сайте
| Цитата (TideS) pixeye, Кто-то еще называет классы с маленькой буквы? Пофикси на XMLParser, что бы те, кто это скопипастят знали как правильно делать нужно.
те кто копипастят ничего не знают, не имеет значения как ты называешь класс.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |