C# Example Script

Changing Parameters

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Substance.Game;
 
public class scifiScript : MonoBehaviour
{
    public Substance.Game.SubstanceGraph mySubstance;
     
 
    // Use this for initialization
    void Start ()
    {
        UpdateSubstance();
    }
 
    public void UpdateSubstance()
    {
         
        Color color = new Color(0.237f, 0.834f, 0.045f, 1.0f);
        Vector2 panelSize = new Vector2(0.101f, 0.209f);
        float wearLevel = 0.977f;
         
        // panel color
        mySubstance.SetInputColor("paint_color", color);
 
        // panel size
        mySubstance.SetInputVector2("square_open", panelSize);
 
        // wear level
        mySubstance.SetInputFloat("wear_level", wearLevel);
 
        // queue for render
        mySubstance.QueueForRender();
        //render all substances async
        Substance.Game.Substance.RenderSubstancesAsync();
 
    }
}

Duplicate graph

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SubstanceScript : MonoBehaviour
{
    // Start is called before the first frame update
    public Substance.Game.SubstanceGraph sgo;
    public GameObject cube2;
    public Color userColor;
    private Substance.Game.SubstanceGraph sgo2 = null;

    void Start()
    {
        //duplicate sgo
        if(sgo2 == null)
        {
            sgo2 = sgo.Duplicate();//duplicate graph
            sgo2.SetInputColor("paint_color",userColor);
            cube2.GetComponent<Renderer>().sharedMaterial = sgo2.material;//set material

            sgo2.QueueForRender();//queue for render
            sgo2.RenderAsync();//render graph
            Substance.Game.Substance.RenderSubstancesAsync();//render all substances async

        }
        
    }
}