Ejemplo n.º 1
0
        /************************************************************************************************************************/

        /// <summary>Creates <see cref="AnimancerTransition"/>s from all states in the `stateMachine`.</summary>
        private static AnimancerTransition GenerateTransitions(AnimatorStateMachine stateMachine)
        {
            AnimancerTransition transition = null;

            foreach (var child in stateMachine.stateMachines)
            {
                transition = GenerateTransitions(child.stateMachine);
            }

            foreach (var child in stateMachine.states)
            {
                transition = GenerateTransition(child.state);
            }

            return(transition);
        }
Ejemplo n.º 2
0
        /************************************************************************************************************************/

        /// <summary>Creates an <see cref="AnimancerTransition"/> from the `transition`.</summary>
        private static AnimancerTransition GenerateTransition(AnimatorStateTransition transition)
        {
            AnimancerTransition animancerTransition = null;

            if (transition.destinationStateMachine != null)
            {
                animancerTransition = GenerateTransitions(transition.destinationStateMachine);
            }

            if (transition.destinationState != null)
            {
                animancerTransition = GenerateTransition(transition.destinationState);
            }

            return(animancerTransition);
        }
Ejemplo n.º 3
0
        /************************************************************************************************************************/

        /// <summary>Saves the `transition` in the same folder as the `originalAsset`.</summary>
        private static void SaveTransition(Object originalAsset, AnimancerTransition transition)
        {
            if (string.IsNullOrEmpty(transition.name))
            {
                transition.name = originalAsset.name;
            }

            var path = AssetDatabase.GetAssetPath(originalAsset);

            path = Path.GetDirectoryName(path);
            path = Path.Combine(path, transition.name + ".asset");
            path = AssetDatabase.GenerateUniqueAssetPath(path);

            AssetDatabase.CreateAsset(transition, path);

            Debug.Log($"Saved {path}", transition);
        }