public void IntializeVFX(GameObject source, GameObject target, Color sourceColor, Color targetColor) { sourceBody = new VFXbody(source); targetBody = new VFXbody(target); if (visualFX == null) { visualFX = GetComponent <VisualEffect>(); } //Vector3 targetPos = targetBody.rootTransform.position; //set up VFX with textures and colours visualFX.SetTexture("Source Position", sourceBody.positionMap); visualFX.SetTexture("Source Velocity", sourceBody.velocityMap); visualFX.SetVector3("SDF Position", CalculateSdfPostion(targetBody.hipTransform.position)); visualFX.SetVector4("Source Color", sourceColor); visualFX.SetVector4("Target Color", targetColor); if (sourceBody.meshSDF == null) { sourceBody.meshSDF.vfxOutput = visualFX; } //set up SDF targetBody.meshSDF.vfxOutput = visualFX; targetBody.meshSDF.offset = CalculateSdfOffset(targetBody.armatureTransform.position); }
public void ResetToSource() { //turn off meshSDF output and disable in target body to make sure our vfx don't get overridden //if(targetBody != null) //{ // if (targetBody.body != null) // { // targetBody.meshSDF.vfxOutput = null; // targetBody.meshSDF.enabled = false; // } //} targetBody = null; //then remove so we know that we don't have a target yet //enable source VFX and target at self if (sourceBody.meshSDF.vfxOutput != visualFX) { sourceBody.meshSDF.vfxOutput = visualFX; sourceBody.meshSDF.enabled = true; } //set to self visualFX.SetVector3("SDF Position", CalculateSdfPostion(sourceBody.hipTransform.position)); visualFX.SetVector4("Target Color", visualFX.GetVector4("Source Color")); visualFX.SetTexture("Target Position", sourceBody.positionMap); sourceBody.meshSDF.vfxOutput = visualFX; sourceBody.meshSDF.offset = CalculateSdfOffset(sourceBody.armatureTransform.position); }
public void IntializeVFX(GameObject source, Color color) { sourceBody = new VFXbody(source); //Vector3 sourcePos = CalculateSdfPostion(sourceBody.rootTransform.position); visualFX.SetTexture("Source Position", sourceBody.positionMap); visualFX.SetTexture("Source Velocity", sourceBody.velocityMap); visualFX.SetTexture("Target Position", sourceBody.positionMap); visualFX.SetVector3("SDF Position", CalculateSdfPostion(sourceBody.hipTransform.position)); visualFX.SetVector4("Source Color", color); visualFX.SetVector4("Target Color", color); sourceBody.meshSDF.vfxOutput = visualFX; sourceBody.meshSDF.offset = CalculateSdfOffset(sourceBody.armatureTransform.position); }
public void SetTarget(GameObject target) { targetBody = new VFXbody(target); visualFX.SetVector3("SDF Position", CalculateSdfPostion(targetBody.hipTransform.position)); visualFX.SetTexture("Target Position", targetBody.positionMap); //shut off the local SDF script if we're not using it -- CHECK FOR OFF MODE if (sourceBody.meshSDF.vfxOutput == visualFX) { sourceBody.meshSDF.vfxOutput = null; sourceBody.meshSDF.enabled = false; } //if the target SDF was shut off, turn it on again if (!targetBody.meshSDF.enabled) { targetBody.meshSDF.enabled = true; } targetBody.meshSDF.vfxOutput = visualFX; targetBody.meshSDF.offset = CalculateSdfOffset(targetBody.armatureTransform.position); }