void OnEnable() { m_Weight = serializedObject.FindProperty("m_Weight"); m_SourceObjectsToggle = serializedObject.FindProperty("m_SourceObjectsGUIToggle"); m_SettingsToggle = serializedObject.FindProperty("m_SettingsGUIToggle"); var data = serializedObject.FindProperty("m_Data"); m_ConstrainedObject = data.FindPropertyRelative("m_ConstrainedObject"); m_ConstrainedPositionAxes = data.FindPropertyRelative("m_ConstrainedPositionAxes"); m_ConstrainedRotationAxes = data.FindPropertyRelative("m_ConstrainedRotationAxes"); m_SourceObjects = data.FindPropertyRelative("m_SourceObjects"); m_MaintainPositionOffset = data.FindPropertyRelative("m_MaintainPositionOffset"); m_MaintainRotationOffset = data.FindPropertyRelative("m_MaintainRotationOffset"); m_Constraint = (MultiParentConstraint)serializedObject.targetObject; m_SourceObjectsArray = m_Constraint.data.sourceObjects; var dataType = m_Constraint.data.GetType(); var fieldInfo = dataType.GetField("m_SourceObjects", BindingFlags.NonPublic | BindingFlags.Instance); var range = fieldInfo.GetCustomAttribute <RangeAttribute>(); if (m_SourceObjectsArray.Count == 0) { m_SourceObjectsArray.Add(WeightedTransform.Default(1f)); m_Constraint.data.sourceObjects = m_SourceObjectsArray; } m_ReorderableList = WeightedTransformHelper.CreateReorderableList(m_SourceObjects, ref m_SourceObjectsArray, range); m_ReorderableList.onChangedCallback = (ReorderableList reorderableList) => { m_Constraint.data.sourceObjects = (WeightedTransformArray)reorderableList.list; }; }
/// <summary> /// Constructor. /// </summary> /// <param name="baseConstraint">Base constraint to override.</param> public MultiParentInverseConstraint(MultiParentConstraint baseConstraint) : base(baseConstraint) { }