setting VFX graph properties using C#

How to set values for your custom properties in VFX Graph. Yeah, there are binders, but I find they expect a rather precise  way of working.. Making your own scripts forces Unity to do what you actually want haha.

In my VFX graph, I have a VECTOR 3 value named "realSpawnPos" which I'm using as the spawn position for some particles. It's important to note that "position", whilst it is a Vector3.. doesn't like receiving Vector 3 values. So make sure you set it up as a Vector 3 in the VFX graph.

Further to this - Make sure in the VFX Graph, your position node is set to WORLD, if you need to set/get/whatever the world position and not local... your objects are probably nested in a million groups/transforms..

 

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

public class bindPosition : MonoBehaviour
{

    public GameObject target_thing;
    public VisualEffect visualEffect;

    void Update()
    {
        
        Vector3 goHere = target_thing.transform.position;

        // Vector3 goHere = target_thing.transform.localPosition; //for local..
        Debug.Log("coords are " + goHere);
        visualEffect.SetVector3("realSpawnPos", goHere);
        
        
    }
}

Comments

Popular posts from this blog