Esempio n. 1
0
        void UpdateParameter(VisualEffect vfx, GlueVFXDescriptor descriptor)
        {
            GlueVFXParameterType type = descriptor.parameterType;
            bool isInGameMode         = Application.IsPlaying(gameObject);

            if (name.Length == 0)
            {
                return;
            }
            switch (type)
            {
            case GlueVFXParameterType.Bool:
                UpdateBool(vfx, isInGameMode, descriptor);
                break;

            case GlueVFXParameterType.Float:
                UpdateFloat(vfx, isInGameMode, descriptor);
                break;

            case GlueVFXParameterType.Vector2:
                UpdateVector2(vfx, isInGameMode, descriptor);
                break;

            case GlueVFXParameterType.Vector3:
                UpdateVector3(vfx, isInGameMode, descriptor);
                break;

            case GlueVFXParameterType.Vector4:
                UpdateVector4(vfx, isInGameMode, descriptor);
                break;
            }
        }
Esempio n. 2
0
        void UpdateFloat(VisualEffect vfx, bool isInGameMode, GlueVFXDescriptor descriptor)
        {
            if (!vfx.HasFloat(descriptor.parameterName))
            {
                return;
            }
            float glueFloatValue;

            try {
                if (isInGameMode)
                {
                    float[] glueFloatValues = GlueValue(descriptor.key, descriptor._fallbackFloats);
                    descriptor._fallbackFloats = glueFloatValues;
                    glueFloatValue             = glueFloatValues[0];
                }
                else
                {
                    glueFloatValue = _vfx.GetFloat(descriptor.parameterName);
                }
                if (descriptor.useOverwrite)
                {
                    glueFloatValue = descriptor.overwriteVector.x;
                }
                vfx.SetFloat(descriptor.parameterName, glueFloatValue);
            } catch (IndexOutOfRangeException) {
                Debug.Log($"Could not find a Gluee value for {descriptor.key}. Did you misspelled the key?");
            }
        }
Esempio n. 3
0
        void UpdateVector4(VisualEffect vfx, bool isInGameMode, GlueVFXDescriptor descriptor)
        {
            if (!vfx.HasVector4(descriptor.parameterName))
            {
                return;
            }
            Vector4 glueVector4Value;

            if (isInGameMode)
            {
                SharpDX.Vector4[] glueVector4Values = GlueValue(descriptor.key, descriptor._fallbackVectors4);
                descriptor._fallbackVectors4 = glueVector4Values;
                Vector4 castedVector4 = Vector4.zero;
                Utils.DXToUnityVector4(glueVector4Values[0], ref castedVector4);
                glueVector4Value = castedVector4;
            }
            else
            {
                glueVector4Value = _vfx.GetVector4(descriptor.parameterName);
            }
            if (descriptor.useOverwrite)
            {
                glueVector4Value.x = descriptor.overwriteVector.x;
                glueVector4Value.y = descriptor.overwriteVector.y;
                glueVector4Value.z = descriptor.overwriteVector.z;
                glueVector4Value.w = descriptor.overwriteVector.w;
            }
            vfx.SetVector4(descriptor.parameterName, glueVector4Value);
        }