public void SetWeight(float weight) { for (int i = 0; i < this.m_FProperties.Count; i++) { ParametersInterpolatorData <float> parametersInterpolatorData = this.m_FProperties[i]; float proportional = CJTools.Math.GetProportional(parametersInterpolatorData.m_DefaultValue, parametersInterpolatorData.m_TargetValue, weight, 0f, 1f); if (parametersInterpolatorData.m_DataType == ParameterInterpolatorDataType.Field && parametersInterpolatorData != null && parametersInterpolatorData.m_FieldInfo != null && parametersInterpolatorData.m_Object != null) { parametersInterpolatorData.m_FieldInfo.SetValue(parametersInterpolatorData.m_Object, proportional); } else if (parametersInterpolatorData != null && parametersInterpolatorData.m_PropertyInfo != null && parametersInterpolatorData.m_Object != null) { parametersInterpolatorData.m_PropertyInfo.SetValue(parametersInterpolatorData.m_Object, proportional); } } }
public void SetupData() { if (this.m_ComponentName.Length < 1) { return; } this.m_FProperties.Clear(); for (int i = 0; i < this.m_FFieldNames.Count; i++) { object obj = base.GetComponent(this.m_ComponentName); if (obj == null) { return; } FieldInfo fieldInfo = null; PropertyInfo propertyInfo = null; string text = this.m_FFieldNames[i]; if (text.Contains(";")) { string[] array = text.Split(new char[] { ';' }); for (int j = 0; j < array.Length; j++) { fieldInfo = obj.GetType().GetField(array[j]); if (!(fieldInfo == null)) { object value = fieldInfo.GetValue(obj); if (!value.IsNumber()) { obj = value; } } } } else { fieldInfo = obj.GetType().GetField(text); if (fieldInfo == null) { MemberInfo[] member = obj.GetType().GetMember(text); if (member != null) { foreach (MemberInfo memberInfo in member) { if (memberInfo.MemberType == MemberTypes.Property) { propertyInfo = (PropertyInfo)memberInfo; } } } } } if ((!(fieldInfo == null) || !(propertyInfo == null)) && ((fieldInfo != null && fieldInfo.FieldType == typeof(float)) || (propertyInfo != null && propertyInfo.PropertyType == typeof(float)))) { if (i >= this.m_FFieldValues.Count) { this.m_FFieldValues.Add(0f); } ParametersInterpolatorData <float> parametersInterpolatorData = new ParametersInterpolatorData <float>(); if (fieldInfo != null) { parametersInterpolatorData.m_DefaultValue = (float)fieldInfo.GetValue(obj); } else if (propertyInfo != null) { parametersInterpolatorData.m_DefaultValue = (float)propertyInfo.GetValue(obj); } parametersInterpolatorData.m_FieldInfo = fieldInfo; parametersInterpolatorData.m_PropertyInfo = propertyInfo; parametersInterpolatorData.m_Object = obj; parametersInterpolatorData.m_TargetValue = this.m_FFieldValues[i]; if (propertyInfo != null) { parametersInterpolatorData.m_DataType = ParameterInterpolatorDataType.Property; } this.m_FProperties.Add(parametersInterpolatorData); } } }