예제 #1
0
        override public void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUILayout.PropertyField(m_RecordProperty);

            Transform targetTransform = null;

            if (m_Ik2D.target)
            {
                targetTransform = m_Ik2D.target.transform;
            }

            EditorGUI.BeginChangeCheck();

            Transform newTargetTransform = EditorGUILayout.ObjectField(new GUIContent("Target"), targetTransform, typeof(Transform), true) as Transform;

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RegisterCompleteObjectUndo(m_Ik2D, "set target");

                if (newTargetTransform && !newTargetTransform.GetComponent <Bone2D>())
                {
                    newTargetTransform = null;
                }

                if (newTargetTransform != targetTransform)
                {
                    m_TargetTransformProperty.objectReferenceValue = newTargetTransform;
                    IkUtils.InitializeIk2D(serializedObject);
                    EditorUpdater.SetDirty("set target");
                }
            }

            /*
             * EditorGUI.BeginChangeCheck();
             *
             * EditorGUILayout.PropertyField(m_TargetTransformProperty);
             *
             * if(EditorGUI.EndChangeCheck())
             * {
             *      IkUtils.InitializeIk2D(serializedObject);
             *
             *      DoUpdateIK();
             * }
             */

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.Slider(m_WeightProperty, 0f, 1f);
            EditorGUILayout.PropertyField(m_RestorePoseProperty);
            EditorGUILayout.PropertyField(m_OrientChildProperty);

            if (EditorGUI.EndChangeCheck())
            {
                EditorUpdater.SetDirty(Undo.GetCurrentGroupName());
            }

            serializedObject.ApplyModifiedProperties();
        }
예제 #2
0
        override public void OnInspectorGUI()
        {
            serializedObject.Update();

            SerializedProperty targetProp = serializedObject.FindProperty("m_Target");
            SerializedProperty weightProp = serializedObject.FindProperty("m_Weight");

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.PropertyField(targetProp);

            if (EditorGUI.EndChangeCheck())
            {
                IkUtils.InitializeIk2D(serializedObject);

                DoUpdateIK();
            }

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.Slider(weightProp, 0f, 1f);

            if (EditorGUI.EndChangeCheck())
            {
                DoUpdateIK();
            }

            serializedObject.ApplyModifiedProperties();
        }
예제 #3
0
        override public void OnInspectorGUI()
        {
            IkCCD2D ikCCD2D = target as IkCCD2D;

            base.OnInspectorGUI();

            SerializedProperty numBonesProp   = serializedObject.FindProperty("m_NumBones");
            SerializedProperty iterationsProp = serializedObject.FindProperty("iterations");
            SerializedProperty dampingProp    = serializedObject.FindProperty("damping");

            Bone2D targetBone = ikCCD2D.target;

            serializedObject.Update();

            EditorGUI.BeginDisabledGroup(!targetBone);

            EditorGUI.BeginChangeCheck();

            int chainLength = 0;

            if (targetBone)
            {
                chainLength = targetBone.chainLength;
            }

            EditorGUILayout.IntSlider(numBonesProp, 0, chainLength);

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RegisterCompleteObjectUndo(ikCCD2D, "Set num bones");

                IkUtils.InitializeIk2D(serializedObject);
                EditorUpdater.SetDirty("Set num bones");
            }

            EditorGUI.EndDisabledGroup();

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.PropertyField(iterationsProp);
            EditorGUILayout.PropertyField(dampingProp);

            if (EditorGUI.EndChangeCheck())
            {
                EditorUpdater.SetDirty(Undo.GetCurrentGroupName());
            }

            serializedObject.ApplyModifiedProperties();
        }
예제 #4
0
        override public void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            serializedObject.Update();

            SerializedProperty targetBoneProp = serializedObject.FindProperty("m_Target");
            SerializedProperty numBonesProp   = serializedObject.FindProperty("m_NumBones");
            SerializedProperty iterationsProp = serializedObject.FindProperty("iterations");
            SerializedProperty dampingProp    = serializedObject.FindProperty("damping");

            Bone2D targetBone = targetBoneProp.objectReferenceValue as Bone2D;

            EditorGUI.BeginDisabledGroup(!targetBone);

            EditorGUI.BeginChangeCheck();

            int chainLength = 0;

            if (targetBone)
            {
                chainLength = targetBone.chainLength;
            }

            EditorGUILayout.IntSlider(numBonesProp, 0, chainLength);

            if (EditorGUI.EndChangeCheck())
            {
                IkUtils.InitializeIk2D(serializedObject);

                DoUpdateIK();
            }

            EditorGUI.EndDisabledGroup();

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.PropertyField(iterationsProp);
            EditorGUILayout.PropertyField(dampingProp);

            if (EditorGUI.EndChangeCheck())
            {
                DoUpdateIK();
            }

            serializedObject.ApplyModifiedProperties();
        }