问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有没有人能说说animator controller 中layer怎么用

发布网友 发布时间:2022-05-10 12:09

我来回答

1个回答

热心网友 时间:2023-10-01 08:17

1、Machine的优点我就不累赘了网上现在已经一大堆了。
  2、Prefab自动化生成的方法我也不累赘了,如果模型的Prefab你还在手动做的话我建议你一定要换成自动生成的方法。尽量让美术不要碰U3D,只让美术出原始模型、贴图、动作、策划提供一个表格来描述 每个Prefab是由那些模型、动画、贴图组成,程序自动生成Prefab。
  上代码

  C#

  
  using UnityEngine;
  using System.Collections;
  using UnityEditor;
  using UnityEditorInternal;
  
  public class Test :Editor {
  [MenuItem("Test/Test")]
  static void DoCreateAnimationAssets()
  {
  //创建animationController文件,保存在Assets路径下
  AnimatorController animatorController = AnimatorController.CreateAnimatorControllerAtPath("Assets/animation.controller");
  //得到它的Layer, 默认layer为base 你可以去拓展
  AnimatorControllerLayer layer = animatorController.GetLayer(0);
  //把动画文件保存在我们创建的AnimationController中
  AddStateTransition("Assets/Resources/airenlieren@Idle.FBX",layer);
  AddStateTransition("Assets/Resources/attack@attack.FBX",layer);
  AddStateTransition("Assets/Resources/aersasi@Run.FBX",layer);
  }
  
  private static void AddStateTransition(string path, AnimatorControllerLayer layer)
  {
  UnityEditorInternal.StateMachine sm = layer.stateMachine;
  //根据动画文件读取它的AnimationClip对象
  AnimationClip newClip = AssetDatabase.LoadAssetAtPath(path, typeof(AnimationClip)) as AnimationClip;
  //取出动画名子 添加到state里面
  State state = sm.AddState(newClip.name);
  state.SetAnimationClip(newClip,layer);
  //把state添加在layer里面
  Transition trans = sm.AddAnyStateTransition(state);
  //把默认的时间条件删除
  trans.RemoveCondition(0);
  }
  }
  

  在导航菜单里点击Test按钮,你的AnimatorController文件就创建好了。
  接下来就是生成Prefab ,你可以根据美术提供的描述文件,来生成Prefab,生成的时候把我们创建的AnimatorController绑到生成的Prefab上面。
  我觉得用Machine动画最好的一点就是可以多个模型的骨骼可以并用,这样的话可以减少包的大小。但是我个人觉得既然骨骼重用,那么肯定是行为比较相似的模型的可以重用,一些比较有个性的模型恐怕也不能重用。如果要用machine动画我觉得策划和美术就需要在这里考虑了,把模型分好类分好哪一类模型重用一套骨骼。(如果你有更好的经验请在下面留言,谢谢)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男生买卫生巾支援灾区对吗? 打了耳洞三天下了耳钉,怎么办!! cs七龙珠家里两台电脑怎么连局域网玩 CS七龙珠怎么创建联网房间 CS七龙珠怎样和电脑玩 CS七龙珠能和电脑对打吗 不然怎样调对打模式有哪些地图!!!急需... 糖葫芦的山楂在哪里买 衡水市康宁街与人民路交叉口市一建家属院7号楼,1-201怎么翻译 梦见朋友搬家时小孩因我不愿离去,且小孩坐在床上跑出许老鼠? 梦见搬家是什么预兆解梦 layer弹出“确定按钮绑定事件访问后台”是怎么回事? 新手小白文案怎样从提词器可以看到 轻抖怎么录制视频看字幕 名杰起名公众号 2011大庆初一上册语文期末试卷 宝宝好多头皮屑,是正常吗 求英语文翻译中文~~急~~在线等~~ 这些头皮屑正常吗?? 汽车亮条除锈 汽车亮条锈了怎么去除 英语短文翻译(中文翻译成英文) 汽车除锈小妙招,你get了吗 中文翻译英语短文《STANDARD ENGLISH AND DIALECTS 》 中文翻译成英语短文 翻译全文英语翻译中文 除锈有妙招, 汽车几种常见的除锈方法 中文短文翻译成英语 怎么样消除蚂蚁???在线等,急 工程师从待遇上是相当副科、还是正科呀? f(x).... fx的成员都是谁 膝盖发热还痒痒是怎么回事? layer.open的content里面有一个button按钮,怎么为它写jq代码 在跑步机上跑步之后觉得膝盖发热是怎么回事呀 苹果手机怎么在设置里查通话记录 怎么把手机的通讯录导入到平板电脑? qq有人加我显示来自好有恢复什么意思 怎么样才能把手机里的通讯录导到IPAD里? 怎么能把iphone里的电话簿导入到ipad 求助:怎么能把iphone里的电话簿导入到ipad 手机号码如何导入到pad 增强信念和毅力的方法有哪些? 增强信念这句话是病语吗? 增强自信心的10个方法 我的如果在别人的手机上登录会看到我的聊天记录吗? 信念怎么加强强化 怎么增强自己的信念? 微信在另一部手机上登陆,原来的手机上登陆微信可以看到另一部手机的聊天记录吗? 增强的信念 中国十大五星级酒店是? 怎样增强自信心