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;
            };
        }
コード例 #2
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="baseConstraint">Base constraint to override.</param>
 public MultiParentInverseConstraint(MultiParentConstraint baseConstraint) : base(baseConstraint)
 {
 }