private static void CopyTransitionOfSubStateMachine(AnimatorStateMachine srcParentStateMachine, AnimatorStateMachine dstParentStateMachine, AnimatorState[] srcStates, AnimatorState[] dstStates, AnimatorStateMachine[] srcStateMachines, AnimatorStateMachine[] dstStateMachines) { // SubStateMachineからのTransitionを設定 for (int i = 0; i < srcParentStateMachine.stateMachines.Length; i++) { var srcSubStateMachine = srcParentStateMachine.stateMachines[i].stateMachine; var dstSubStateMachine = dstParentStateMachine.stateMachines[i].stateMachine; foreach (var srcTransition in srcParentStateMachine.GetStateMachineTransitions(srcSubStateMachine)) { AnimatorTransition dstTransition; if (srcTransition.isExit) { dstTransition = dstParentStateMachine.AddStateMachineExitTransition(dstSubStateMachine); } else if (srcTransition.destinationState != null) { var stateIndex = Array.IndexOf(srcStates, srcTransition.destinationState); dstTransition = dstParentStateMachine.AddStateMachineTransition(dstSubStateMachine, dstStates[stateIndex]); } else if (srcTransition.destinationStateMachine != null) { var stateMachineIndex = Array.IndexOf(srcStateMachines, srcTransition.destinationStateMachine); dstTransition = dstParentStateMachine.AddStateMachineTransition(dstSubStateMachine, dstStateMachines[stateMachineIndex]); } else { continue; } CopyTransitionParameters(srcTransition, dstTransition); } } }