zoukankan      html  css  js  c++  java
  • Unity 代码生成动画控制器

      最近项目中有大量的动画需要在unity中查看,自己一个个托太麻烦,写了段代码自动生成。

    using System.Collections;
    using UnityEditor.Animations;
    using UnityEngine;
    using UnityEditor;
    using System.IO;
    using System.Collections.Generic;
    using System;
    
    public class Spader : Editor
    {
    // 递归的遍历获取path下的fbx文件
    static List<string> RecursiveGetFiles(string path) { var ls = new List<string>(); var dirs = Directory.GetDirectories(path); foreach (var d in dirs) ls.AddRange(RecursiveGetFiles(d)); ls.AddRange(Directory.GetFiles(path, "*.fbx")); return ls; } [MenuItem("Animator/Create Animator Controller")] static void CreateController() { // Creates the controller var controller = AnimatorController.CreateAnimatorControllerAtPath("Assets/Model/Motion.controller"); // Get all anim file var path = Application.dataPath + "/Resources/"; var allFiles = RecursiveGetFiles(path); var allClips = new List<AnimationClip>(); foreach (var f in allFiles) { var fPath = f.Substring(Application.dataPath.Length); var fbx = AssetDatabase.LoadAllAssetsAtPath("Assets" + fPath); foreach (var ob in fbx) { if(ob.GetType() == typeof(AnimationClip)) if(! ob.name.StartsWith("__preview")) allClips.Add(ob as AnimationClip); } } allClips.Sort((x, y)=> { if (x.name == "Idle01") return -1; else return 0; }); // Add parameters foreach (var clip in allClips) controller.AddParameter(clip.name, AnimatorControllerParameterType.Trigger); // Add states and transitions var rootStateMachine = controller.layers[0].stateMachine; foreach (var clip in allClips) { var state = rootStateMachine.AddState(clip.name); state.motion = clip; var transition = rootStateMachine.AddAnyStateTransition(state); transition.AddCondition(AnimatorConditionMode.If, 0.0f, clip.name); transition.canTransitionToSelf = false; if (clip.name == "Idle01") transition.canTransitionToSelf = true; } } }
  • 相关阅读:
    spring各个版本开发包下载
    not value specified for parameter问题解决方案
    Ajax的重构
    Ajax中与服务器的通信【发送请求与处理响应】
    Ajax技术之XMLHttpRequest(二)【XMLHttpRequest常用方法和属性】
    “AI”项目日记
    英语学习笔记
    贺费德勒20冠,和关于程序员中年危机的思考
    《领域驱动设计:软件核心复杂性应对之道》读书笔记
    ERP系统知识笔记
  • 原文地址:https://www.cnblogs.com/liucUP/p/11696862.html
Copyright © 2011-2022 走看看