Skip to content

Based on the Unite Austin 2017 talk by Ryan Hipple. This version allows you to have instanced objects as well.

License

Notifications You must be signed in to change notification settings

polartron/ScriptableObject-Instances

Repository files navigation

ScriptableObject-Instances

Based on the Unite Austin 2017 talk by Ryan Hipple. https://www.youtube.com/watch?v=raQ3iHhE_Kk

This is more of a research project for personal use. For a more feature complete asset check out https://github.com/AdamRamberg/unity-atoms

WIP

  • Example code.

Description

ScriptableObject-Instances allows you to have runtime variables and events tied to unique instances of your prefabs. This is an extension built upon the original implementation by Ryan Hipple where you could only have shared global ScriptableObjects at the project level.

Example Flow

Variable Types

Main Features

  • GameObject Tags
  • Global Scriptable Object Variables
  • Global Scriptable Object Events
  • Instanced Scriptable Object Variables
  • Instanced Scriptable Object Events
  • Code Generator
  • More

Installation

Manual Installation

  • Download the repository and put the files in a folder named com.fasteraune.scriptableobjectinstances in your Packages folder located next to your Assets folder
  • Add the following to your manifest.json file in your Packages folder

"com.fasteraune.scriptableobjectinstances": "file:com.fasteraune.scriptableobjectinstances"

Code Generation Example

The following is an example of an editor script you can add to your own project in order to generate the files you need.

using System.IO;
using Fasteraune.SO.Instances.Editor;
using UnityEditor;
using UnityEngine;

public class ScriptableObjectGenerator
{
    [MenuItem("Assets/Scriptable Objects/Generate")]
    static void Generate()
    {
        string path = Path.Combine(Application.dataPath, "Scripts/Generated/");
        
        var generator = new ScriptGenerator(path);
        generator.Add(typeof(float));
        generator.Add(typeof(int));
        generator.Generate();
    }
}

About

Based on the Unite Austin 2017 talk by Ryan Hipple. This version allows you to have instanced objects as well.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages