项目中有个需求,为了方便网络同步角色动作,需要独立出另外一套状态机,彼此状态间不互相转换,(后期加上了所有的状态自动转向Idle或running状态),即移除Animator中所有的Transition。
在Unity5.x下貌似比较容易,有直接的接口。4.x下有人尝试失败了。不过我找了一下,发现还是可以实现的。如下:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using System.IO;
using System.Reflection;
using UnityEditorInternal;
public class AnimatorHelper{
[MenuItem("AnimatorHelper/RemoveTransitions")]
static void RemoveTransitions()
{
Debug.LogError("**********************RemoveTransitions Begin************************");
// string path = "Assets/Resources/AnimatorCtrl/Player_fistController.controller";
UnityEngine.Object[] selections = Selection.GetFiltered(typeof(AnimatorController), SelectionMode.Assets);
foreach (Object obj in selections)
{