zoukankan      html  css  js  c++  java
  • unity 获取Prefab节点下所有的 spine名 和 animtor state名

     1     public static void GetAllSkeletonName(Transform  rootTrans,ref List<string> nameList)
     2     {
     3         SetChildSkeletonName(rootTrans, ref nameList);
     4     }
     5 
     6     public static void SetChildSkeletonName(Transform trans, ref List<string> nameList)
     7     {
     8         if (trans.childCount == 0)
     9         {
    10             return;
    11         }
    12         foreach (Transform childTrans in trans)
    13         {
    14             SetChildSkeletonName(childTrans,ref nameList);
    15 
    16             SkeletonAnimation sA = childTrans.GetComponent<SkeletonAnimation>();
    17             if (sA)
    18             {
    19                 ExposedList<Spine.Animation> animations = sA.skeletonDataAsset.GetSkeletonData(false).Animations;
    20                 foreach (Spine.Animation anim in animations)
    21                 {
    22                     nameList.Add(anim.Name);
    23                 }
    24             }
    25 
    26         }
    27     }
    28 
    29     public static void GetAllAnimatorName(Transform rootTrans, ref List<string> nameList)
    30     {
    31         SetChildAnimatorName(rootTrans, ref nameList);
    32     }
    33 
    34     public static void SetChildAnimatorName(Transform trans, ref List<string> nameList)
    35     {
    36         if (trans.childCount == 0)
    37         {
    38             return;
    39         }
    40         foreach (Transform childTrans in trans)
    41         {
    42             SetChildAnimatorName(childTrans, ref nameList);
    43 
    44             Animator sA = childTrans.GetComponent<Animator>();
    45             if (sA)
    46             {
    47                 // AnimationClip[] clips = sA.runtimeAnimatorController.animationClips;
    48                 AnimatorController co = sA.runtimeAnimatorController as AnimatorController;
    49                 if (co == null)
    50                 {
    51                     return;
    52                 }
    53                 foreach (var ly in co.layers)
    54                 {
    55                     AnimatorStateMachine stateMachine = ly.stateMachine;
    56                     foreach (var st in stateMachine.states)
    57                     {
    58                         nameList.Add(st.state.name);
    59                     }
    60 
    61                 }
    62             }
    63 
    64         }
    65     }
    改变自己
  • 相关阅读:
    组策略导入导出secedit
    ipad常见错误
    ipad系统路径
    内核操作注册表例子
    WoW64子系统
    win2003 shutdown命令
    regedit 导入注册表
    windbg for CLR
    WM_POWERBROADCAST
    OpenSSL命令
  • 原文地址:https://www.cnblogs.com/sun-shadow/p/15327675.html
Copyright © 2011-2022 走看看