Example #1
0
        public virtual void SetSourceAsset(T asset)
        {
            AssetSerializer serializer = new AssetSerializer();

            serializer.AddItem(asset);
            source   = serializer.WriteToString();
            typeName = asset.GetType().AssemblyQualifiedName;
        }
 public static StatusEffectCreator CreateScriptableObject() {
     StatusEffectCreator asset = ScriptableObject.CreateInstance<StatusEffectCreator>();
     string assetpath = "Assets/Status Effects/Status Effect.asset";
     string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(assetpath);
     var effect = new StatusEffect();
     effect.Id = Path.GetFileNameWithoutExtension(assetPathAndName);
     AssetSerializer serializer = new AssetSerializer();
     serializer.AddItem(effect);
     asset.source = serializer.WriteToString();
     AssetDatabase.CreateAsset(asset, assetPathAndName);
     AssetDatabase.SaveAssets();
     AssetDatabase.Refresh();
     return asset;
 }
Example #3
0
 public static AbilityCreator CreateScriptableObject() {
     AbilityCreator asset = ScriptableObject.CreateInstance<AbilityCreator>();
     string assetpath = "Assets/Abilities/Ability.asset";
     string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(assetpath);
     Ability ability = new Ability();
     ability.Id = Path.GetFileNameWithoutExtension(assetPathAndName);
     AssetSerializer serializer = new AssetSerializer();
     serializer.AddItem(ability);
     asset.source = serializer.WriteToString();
     AssetDatabase.CreateAsset(asset, assetPathAndName);
     AssetDatabase.SaveAssets();
     AssetDatabase.Refresh();
     return asset;
 }
Example #4
0
    public static AbilityCreator CreateScriptableObject()
    {
        AbilityCreator asset            = ScriptableObject.CreateInstance <AbilityCreator>();
        string         assetpath        = "Assets/Abilities/Ability.asset";
        string         assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(assetpath);
        Ability        ability          = new Ability();

        ability.Id = Path.GetFileNameWithoutExtension(assetPathAndName);
        AssetSerializer serializer = new AssetSerializer();

        serializer.AddItem(ability);
        asset.source = serializer.WriteToString();
        AssetDatabase.CreateAsset(asset, assetPathAndName);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        return(asset);
    }
Example #5
0
    public static StatusEffectCreator CreateScriptableObject()
    {
        StatusEffectCreator asset = ScriptableObject.CreateInstance <StatusEffectCreator>();
        string assetpath          = "Assets/Status Effects/Status Effect.asset";
        string assetPathAndName   = AssetDatabase.GenerateUniqueAssetPath(assetpath);
        var    effect             = new StatusEffect();

        effect.Id = Path.GetFileNameWithoutExtension(assetPathAndName);
        AssetSerializer serializer = new AssetSerializer();

        serializer.AddItem(effect);
        asset.source = serializer.WriteToString();
        AssetDatabase.CreateAsset(asset, assetPathAndName);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        return(asset);
    }
Example #6
0
    public static InventoryItemCreator CreateScriptableObject()
    {
        InventoryItemCreator asset     = ScriptableObject.CreateInstance <InventoryItemCreator>();
        string        assetpath        = "Assets/InventoryItems/InventoryItem.asset";
        string        assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(assetpath);
        InventoryItem item             = new InventoryItem();

        item.Id = Path.GetFileNameWithoutExtension(assetPathAndName);
        AssetSerializer serializer = new AssetSerializer();

        serializer.AddItem(item);
        asset.source = serializer.WriteToString();
        AssetDatabase.CreateAsset(asset, assetPathAndName);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        return(asset);
    }
Example #7
0
    public static CharacterCreator CreateScriptableObject()
    {
        CharacterCreator asset            = ScriptableObject.CreateInstance <CharacterCreator>();
        string           assetpath        = "Assets/Characters/char.asset";
        string           assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(assetpath);
        Character        character        = new Character();

        character.Id = Path.GetFileNameWithoutExtension(assetPathAndName);
        AssetSerializer serializer = new AssetSerializer();

        serializer.AddItem(character);
        asset.source = serializer.WriteToString();
        AssetDatabase.CreateAsset(asset, assetPathAndName);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        return(asset);
    }
Example #8
0
    public override void OnInspectorGUI()
    {
        PlayerSkillBook skillBook = target as PlayerSkillBook;

        if (root == null)
        {
            if (!string.IsNullOrEmpty(skillBook.source))
            {
                new AssetDeserializer(skillBook.source, false).DeserializeInto("__default__", skillBook);
            }
            root = new SerializedObjectX(target);
        }
        EditorGUILayoutX.DrawProperties(root);
        bool didChange = root.Root.ApplyModifiedProperties();

        if (didChange)
        {
            AssetSerializer serializer = new AssetSerializer();
            serializer.AddItem(target);
            serializedObject.FindProperty("source").stringValue = serializer.WriteToString();
            serializedObject.ApplyModifiedProperties();
        }
    }