Beispiel #1
0
        public void Instanced_Variable_With_Parent_Connection_Change_Same_Value()
        {
            var floatVariableObject = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var floatReference = new FloatVariableReference();

            floatReference.Type     = ReferenceType.Instanced;
            floatReference.Variable = floatVariableObject;

            var secondFloatReference = new FloatVariableReference();

            secondFloatReference.Type     = ReferenceType.Instanced;
            secondFloatReference.Variable = floatVariableObject;

            var gameObject             = new GameObject();
            var instancedVariableOwner = gameObject.AddComponent <InstanceOwner>();

            floatReference.Connection       = instancedVariableOwner;
            secondFloatReference.Connection = instancedVariableOwner;

            floatReference.Value = 10f;
            Assert.AreEqual(10f, floatReference.Value);
            Assert.AreEqual(10f, secondFloatReference.Value);

            secondFloatReference.Value = 20f;
            Assert.AreEqual(20f, floatReference.Value);
            Assert.AreEqual(20f, secondFloatReference.Value);
        }
Beispiel #2
0
        public void Instanced_Variable_Error_On_Missing_Variable()
        {
            var floatReference = new FloatVariableReference();

            floatReference.Type = ReferenceType.Instanced;

            floatReference.Value = 10f;
            LogAssert.Expect(LogType.Error, "Missing reference to variable asset");

            Debug.ClearDeveloperConsole();
        }
        public void Constant_Reference_Clamps()
        {
            var clamped = new FloatVariableReferenceClamped();

            var first  = new FloatVariableReference();
            var second = new FloatVariableReference();

            first.Type  = ReferenceType.Constant;
            second.Type = ReferenceType.Constant;

            Clamped_Reference_Clamps(first, second, clamped);
        }
        private void Clamped_Reference_Clamps(FloatVariableReference first, FloatVariableReference second,
                                              FloatVariableReferenceClamped clamped)
        {
            first.Value  = 0;
            second.Value = 20;

            clamped.Min = first;
            clamped.Max = second;

            Assert.AreEqual(first.Value, clamped.Value);
            clamped.Value = 50;
            Assert.AreEqual(second.Value, clamped.Value);
        }
Beispiel #5
0
        public void Instanced_Variable_Error_On_Missing_InstancedVariableOwner()
        {
            var floatVariableObject = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var floatReference = new FloatVariableReference();

            floatReference.Type     = ReferenceType.Instanced;
            floatReference.Variable = floatVariableObject;

            floatReference.Value = 10f;
            LogAssert.Expect(LogType.Error, "Missing reference to InstancedVariableOwner script");

            Debug.ClearDeveloperConsole();
        }
Beispiel #6
0
        public void Shared_Variable_Changed_Callback()
        {
            var floatVariableObject = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var floatReference = new FloatVariableReference();

            floatReference.Type     = ReferenceType.Shared;
            floatReference.Variable = floatVariableObject;

            var changedValue = 0f;

            floatReference.AddListener(delegate(float value) { changedValue = value; });

            floatReference.Value = 10f;

            Assert.AreEqual(10f, changedValue);
            Assert.AreEqual(10f, floatReference.Value);
        }
        public void Shared_Reference_Clamps()
        {
            var clamped = new FloatVariableReferenceClamped();

            var firstVariable  = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;
            var secondVariable = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var first  = new FloatVariableReference();
            var second = new FloatVariableReference();

            first.Variable  = firstVariable;
            second.Variable = secondVariable;

            first.Type  = ReferenceType.Shared;
            second.Type = ReferenceType.Shared;

            Clamped_Reference_Clamps(first, second, clamped);
        }
Beispiel #8
0
        public void Shared_Variable_Reference_Same_Value()
        {
            var floatVariableObject = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var floatReference = new FloatVariableReference();

            floatReference.Type     = ReferenceType.Shared;
            floatReference.Variable = floatVariableObject;

            var secondFloatReference = new FloatVariableReference();

            secondFloatReference.Type     = ReferenceType.Shared;
            secondFloatReference.Variable = floatVariableObject;

            floatReference.Value = 10f;

            Assert.AreEqual(10f, secondFloatReference.Value);
            Assert.AreEqual(10f, floatReference.Value);
        }
        private void Assert_Instanced_Reference_Expression(float a, float b, string expression, float expected)
        {
            var floatReferenceExpression = new FloatVariableReferenceExpression();

            var firstVariable  = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;
            var secondVariable = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var first  = new FloatVariableReference();
            var second = new FloatVariableReference();

            var gameObject             = new GameObject();
            var instancedVariableOwner = gameObject.AddComponent <InstanceOwner>();

            first.Connection  = instancedVariableOwner;
            second.Connection = instancedVariableOwner;

            first.Variable  = firstVariable;
            second.Variable = secondVariable;

            first.Type  = ReferenceType.Instanced;
            second.Type = ReferenceType.Instanced;

            first.Value  = a;
            second.Value = b;

            floatReferenceExpression.Variables = new[]
            {
                new FloatVariableReferenceExpression.ExpressionVariables()
                {
                    Name      = "a",
                    Reference = first
                },
                new FloatVariableReferenceExpression.ExpressionVariables()
                {
                    Name      = "b",
                    Reference = second
                }
            };

            floatReferenceExpression.Expression = expression;
            Assert.AreEqual(expected, floatReferenceExpression.Value);
        }
Beispiel #10
0
        public void Instanced_Variable_Changed_Callback()
        {
            var floatVariableObject = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var floatReference = new FloatVariableReference();

            floatReference.Type     = ReferenceType.Instanced;
            floatReference.Variable = floatVariableObject;

            var gameObject             = new GameObject();
            var instancedVariableOwner = gameObject.AddComponent <InstanceOwner>();

            floatReference.Connection = instancedVariableOwner;

            var changedValue = 0f;

            floatReference.AddListener(delegate(float value) { changedValue = value; });

            floatReference.Value = 10f;

            Assert.AreEqual(10f, changedValue);
            Assert.AreEqual(10f, floatReference.Value);
        }
        public void Instanced_Reference_Clamps()
        {
            var clamped = new FloatVariableReferenceClamped();

            var firstVariable  = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;
            var secondVariable = ScriptableObject.CreateInstance(typeof(FloatVariable)) as FloatVariable;

            var first  = new FloatVariableReference();
            var second = new FloatVariableReference();

            var gameObject             = new GameObject();
            var instancedVariableOwner = gameObject.AddComponent <InstanceOwner>();

            first.Connection  = instancedVariableOwner;
            second.Connection = instancedVariableOwner;

            first.Variable  = firstVariable;
            second.Variable = secondVariable;

            first.Type  = ReferenceType.Instanced;
            second.Type = ReferenceType.Instanced;

            Clamped_Reference_Clamps(first, second, clamped);
        }