internal void SetAllParameters(CompositionAnimation anim) { // Make sure the list is populated EnsureReferenceInfo(); foreach (var refInfo in _objRefList) { anim.SetReferenceParameter(refInfo.ParameterName, refInfo.CompObject); } foreach (var constParam in _constParamMap) { if (constParam.Value.GetType() == typeof(bool)) { anim.SetBooleanParameter(constParam.Key, (bool)constParam.Value); } else if (constParam.Value.GetType() == typeof(float)) { anim.SetScalarParameter(constParam.Key, (float)constParam.Value); } else if (constParam.Value.GetType() == typeof(Vector2)) { anim.SetVector2Parameter(constParam.Key, (Vector2)constParam.Value); } else if (constParam.Value.GetType() == typeof(Vector3)) { anim.SetVector3Parameter(constParam.Key, (Vector3)constParam.Value); } else if (constParam.Value.GetType() == typeof(Vector4)) { anim.SetVector4Parameter(constParam.Key, (Vector4)constParam.Value); } else if (constParam.Value.GetType() == typeof(Color)) { anim.SetColorParameter(constParam.Key, (Color)constParam.Value); } else if (constParam.Value.GetType() == typeof(Quaternion)) { anim.SetQuaternionParameter(constParam.Key, (Quaternion)constParam.Value); } else if (constParam.Value.GetType() == typeof(Matrix3x2)) { anim.SetMatrix3x2Parameter(constParam.Key, (Matrix3x2)constParam.Value); } else if (constParam.Value.GetType() == typeof(Matrix4x4)) { anim.SetMatrix4x4Parameter(constParam.Key, (Matrix4x4)constParam.Value); } else { throw new Exception($"Unexpected constant parameter datatype ({constParam.Value.GetType()})"); } } }
/// <summary> /// [SDK14393+]将一个参数加入动画。 /// </summary> /// <param name="key"></param> /// <param name="parameter"></param> /// <returns></returns> public AnimationFluentContext SetParameter(string key, bool parameter) { CompositionAnimation.SetBooleanParameter(key, parameter); return(this); }