Beispiel #1
0
        override public void OnInspectorGUI()
        {
            if (needsReset)
            {
                component.Reset();
                component.DoUpdate();
                needsReset = false;
                SceneView.RepaintAll();
            }
            serializedObject.Update();

            // FindRenderer()
            if (skeletonRenderer.objectReferenceValue == null)
            {
                SkeletonRenderer parentRenderer = BoneFollowerInspector.GetInParent <SkeletonRenderer>(component.transform);

                if (parentRenderer != null)
                {
                    Debug.Log("Inspector automatically assigned BoneFollower.SkeletonRenderer");
                    skeletonRenderer.objectReferenceValue = parentRenderer;
                }
            }

            EditorGUILayout.PropertyField(skeletonRenderer);

            if (component.valid)
            {
                EditorGUI.BeginChangeCheck();
                EditorGUILayout.PropertyField(boneName);
                if (EditorGUI.EndChangeCheck())
                {
                    serializedObject.ApplyModifiedProperties();
                    needsReset = true;
                    serializedObject.Update();
                }

                EditorGUILayout.PropertyField(followBoneRotation);
                EditorGUILayout.PropertyField(followZPosition);
            }
            else
            {
                GUILayout.Label("INVALID");
            }

            if (serializedObject.ApplyModifiedProperties() ||
                (UnityEngine.Event.current.type == EventType.ValidateCommand && UnityEngine.Event.current.commandName == "UndoRedoPerformed")
                )
            {
                component.Reset();
            }
        }
    override public void OnInspectorGUI()
    {
        if (needsReset)
        {
            component.Reset();
            component.DoUpdate();
            needsReset = false;
            SceneView.RepaintAll();
        }
        serializedObject.Update();

        FindRenderer();

        EditorGUILayout.PropertyField(skeletonRenderer);

        if (component.valid)
        {
            EditorGUI.BeginChangeCheck();
            EditorGUILayout.PropertyField(boneName);
            if (EditorGUI.EndChangeCheck())
            {
                serializedObject.ApplyModifiedProperties();
                needsReset = true;
                serializedObject.Update();
            }



            EditorGUILayout.PropertyField(followBoneRotation);
            EditorGUILayout.PropertyField(followZPosition);
        }
        else
        {
            GUILayout.Label("INVALID");
        }

        if (serializedObject.ApplyModifiedProperties() ||
            (Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed")
            )
        {
            component.Reset();
        }
    }
Beispiel #3
0
    override public void OnInspectorGUI()
    {
        serializedObject.Update();

        FindRenderer();

        EditorGUILayout.PropertyField(skeletonRenderer);

        if (component.valid)
        {
            String[] bones = new String[1];
            try{
                bones = new String[component.skeletonRenderer.skeleton.Data.Bones.Count + 1];
            }
            catch {
            }

            bones[0] = "<None>";
            for (int i = 0; i < bones.Length - 1; i++)
            {
                bones[i + 1] = component.skeletonRenderer.skeleton.Data.Bones[i].Name;
            }
            Array.Sort <String>(bones);
            int boneIndex = Math.Max(0, Array.IndexOf(bones, boneName.stringValue));

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Bone");
            EditorGUIUtility.LookLikeControls();
            boneIndex = EditorGUILayout.Popup(boneIndex, bones);
            EditorGUILayout.EndHorizontal();

            boneName.stringValue = boneIndex == 0 ? null : bones[boneIndex];
            EditorGUILayout.PropertyField(followBoneRotation);
            EditorGUILayout.PropertyField(followZPosition);
            EditorGUILayout.PropertyField(offset);
        }
        else
        {
            GUILayout.Label("INVALID");
        }

        if (serializedObject.ApplyModifiedProperties() ||
            (Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed")
            )
        {
            component.Reset();
        }
    }