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();
            }
        }
Exemple #2
0
    public void BindToTargetUnit(FormationUnit unit, SkeletonAnimation animation, string boneName)
    {
        followUnit     = unit;
        followBoneName = boneName;

        gameObject.SetActive(true);
        follower.SkeletonRenderer = animation;
        currentTransform.SetParent(unit.RectTransform, false);

        follower.followBoneRotation = false;
        follower.followZPosition    = true;
        follower.bone = animation.Skeleton.FindBone(boneName);
        follower.DoUpdate();
        follower.enabled = false;
        Destroy(follower);

        skeletonAnimation.MeshRenderer.sortingOrder = animation.MeshRenderer.sortingOrder + 1;
    }
    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();
        }
    }