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); }
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); }
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(); }
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); }
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); }
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); }