Code Monkey home page Code Monkey logo

scriptableobject-instances's Introduction

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();
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.