Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
    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);
    }