Хранение специфичной для объекта информации в Unity - PullRequest
0 голосов
/ 28 августа 2018

Я работаю над RPG-игрой в Unity, и у меня много разных монстров (около 20, но они будут расширены в будущем). В настоящее время я использую контроллер для сцены битвы, где загружаю префаб противника по ID (например, / monster / 1 или / monster / 2), но есть еще информация, которую я хочу сохранить о своих монстрах. У них будет статистика (защита, атака), ID предмета, HP и уровень CB. Каков наилучший способ хранения этой информации, чтобы я мог получить ее, когда у меня есть идентификатор?

Я из фона Javascript, где я использовал бы файл JSON для хранения этой информации и поиска оттуда. Есть ли эквивалентный способ работы в C #?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

В Unity есть встроенное решение для этого: «ScriptableObject».

См. учебник и документация для примеров.

0 голосов
/ 28 августа 2018

Я рекомендую взглянуть на ScriptableObjects . Я работаю с Unity уже несколько лет и считаю, что это решение (для меня).

Вот пример:

с использованием UnityEngine;

[CreateAssetMenu(menuName = "Units/Monster")]
public class Monster : ScriptableObject
{
    public int Id;
    public string Name;    

    [TextArea(2, 5)]
    [SerializeField]
    protected string BaseDescription;

    public Sprite UiButtonSprite;
    public float Attack;

    public float Health;

    public int Armor;
    // etc.
 }

Затем вы можете перейти к окну Активы в Unity, создать новый объект Monster и заполнить информацию!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...