Создание / инициализация сценариев GameObjects во время игры в Unity3D - PullRequest
0 голосов
/ 11 марта 2020

Объекты Scriptable могут использоваться в качестве контейнеров данных в Unity3d. Их не нужно прикреплять к GameObject в сцене, но они могут быть сохранены в качестве ресурсов в нашем проекте. Чаще всего они используются как активы, предназначенные только для хранения данных.

Мы можем создавать и добавлять данные, как показано ниже.

[CreateAssetMenu(fileName ="New Player Card" , menuName ="Card")]
    public class GameData : ScriptableObject
    {
        public static string name;
        public int health;
        public spawnDelay;
    }

И затем мы можем создавать активы с помощью Create-> Card.

Что я хотел сделать, так это вместо создания ресурсов для игры, создавайте ресурсы на основе данных во время игры самостоятельно. И уничтожьте их в конце игры или сцены. У кого-нибудь есть идея сделать это? Любое руководство / идеи будут высоко оценены. Спасибо.

1 Ответ

1 голос
/ 11 марта 2020

ScriptableObject подходит только для такого использования, что вы сохраняете в нем значения по умолчанию и данные, что-то вроде хранилища для ваших предустановленных значений. Для изменений во время выполнения вам нужно написать класс c# с желаемым поведением. Вы можете установить значения по умолчанию в Start () или Awake (), если его монобезопасность, или в конструкторе класса c# в противном случае.

Вы можете создать сцену, которая не разрушает между нагрузками. В любом игровом объекте этой сцены вы можете сохранить и изменить свои данные. Также вы можете избежать разрушения gamobject между загрузками сцены:

docs.unity3d.com / ScriptReference / Object.DontDestroyOnLoad. html

...