#if UNITY_EDITOR
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEditor;
using UnityEngine; public class AnimImport : AssetPostprocessor
{
StringBuilder sb = new StringBuilder(); //fbx动画导入前的处理,对动画集进行分段设置,划分为各个子集
void OnPreprocessAnimation()
{
var fpath = Path.GetDirectoryName(assetImporter.assetPath) + "/times.txt";
if (!File.Exists(fpath))
{
//EditorUtility.DisplayDialog("缺少时间配置文件", assetImporter.assetPath + "的动画分段文件time.txt不存在,动画子集无法划分", "ok");
return;
} var sr = new StreamReader(File.OpenRead(fpath), Encoding.ASCII);
var longStr = sr.ReadToEnd();
var dats = longStr.Split('\"');
var anims = new List<ModelImporterClipAnimation>(); for (var i = ; i < dats.Length; ++i)
{
if (dats[i] == "" || dats[i] == "\r\n")
continue;
var anim = new ModelImporterClipAnimation();
var subdat = dats[i].Split(' ');
anim.name = subdat[];
anim.firstFrame = float.Parse(subdat[].TrimEnd('f'));
anim.lastFrame = float.Parse(subdat[].TrimEnd('f'));
anims.Add(anim);
} var modelImporter = assetImporter as ModelImporter;
modelImporter.clipAnimations = anims.ToArray(); } void OnPreprocessModel()
{
var modelImporter = assetImporter as ModelImporter;
modelImporter.globalScale = 0.6f;
modelImporter.importMaterials = true;
modelImporter.materialName = ModelImporterMaterialName.BasedOnTextureName;
} void OnPostprocessModel(GameObject go)
{
var modelImporter = assetImporter as ModelImporter; //1,找到Materials文件夹下所有的材质文件,替换它的shader
var dir = Path.GetDirectoryName(modelImporter.assetPath) + "/Materials";
var files = Directory.GetFiles(dir, "*.mat");
foreach (var fs in files)
{
var mat = AssetDatabase.LoadAssetAtPath(fs.Replace('\\', '/'), typeof(Material)) as Material;
mat.shader = Shader.Find("Qx/Unity/Mobile/Mobile-Diffuse");
} AssetDatabase.SaveAssets(); //2,创建prefab到assets/res/prefabs/char/下
//经试验,查找文档,发现在此方法(OnPostprocessModel)中创建prefab是不可能的,其它方法更不可能
//方式一,这种方式加载出来的fbx是空的
//var fbx = AssetDatabase.LoadAssetAtPath(assetImporter.assetPath, typeof(GameObject)) as GameObject;
//方式二,这种方式虽然能成功创建预置体,但创建出的预置体上mesh引用为空(原因见U3D文档)
//var fbx = go;
//PrefabUtility.CreatePrefab(Path.GetDirectoryName(modelImporter.assetPath) + "/testfbx.prefab", go); } }
#endif

不可能的工作:在FBX模型导入脚本中生成模型的预置体的更多相关文章

  1. 如何将MagicaVoxel模型导入UE4中(2)

    前言 当可以把MagicaVoxel的静态模型导入到UE4后,我又开始不满足了.默认第三人称蓝图的"汽车碰撞人偶(雾)"与场景中的体素画风格格不入,于是,我便想着用自己建造的体素画 ...

  2. 如何将MagicaVoxel模型导入UE4中(1)

    前言 当初在选择自己项目的美术风格时,由于自己的美术基础实在是太差,所以选择了体素风格来构建(其实还是MagicaVoxel的建模操作很容易上手),但是将自己千辛万苦做好的模型导入至项目中时,出现了这 ...

  3. 3dmax做的模型导入U3d后 当模型靠近摄像机时镂空问题

    使用3dMax  Reset XForm下就好了. 原因可能是 法线方向问题?

  4. Blender模型导入进Unity,旋转缩放的调整

    Blender跟Unity的XYZ轴不同的原因,导致Blender模型导入Unity之后会发生模型朝向不对. 请先看看下边这个情况: 首先,Blender物体模式下,对模型进行 旋转 缩放,将会在右边 ...

  5. 深度|OpenAI 首批研究成果聚焦无监督学习,生成模型如何高效的理解世界(附论文)

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载,原文. 选自 Open AI 作者:ANDREJ KARPATHY, PIETER ABBEEL, GREG BRO ...

  6. 生成模型(Generative Model)与判别模型(Discriminative Model)

    摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...

  7. 生成模型(Generative)和判别模型(Discriminative)

    生成模型(Generative)和判别模型(Discriminative) 引言    最近看文章<A survey of appearance models in visual object ...

  8. 生成模型(Generative Model)和 判别模型(Discriminative Model)

    引入 监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出.这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X). 监督学习方法又可以 ...

  9. 生成模型(Generative Model)Vs 判别模型(Discriminative Model)

      概率图分为有向图(bayesian network)与无向图(markov random filed).在概率图上可以建立生成模型或判别模型.有向图多为生成模型,无向图多为判别模型. 判别模型(D ...

随机推荐

  1. HTTP Client Performance Improvements

    HTTP Client Performance Improvements https://blogs.msdn.microsoft.com/webdev/2018/10/17/asp-net-core ...

  2. Core Animation1-简介

    一.Core Animation简介 * Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代 ...

  3. rem自适应原理

    rem自适应原理 rem是根据html的font-size大小来变化,正是基于这个出发,我们可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现了自适应布局.更多介绍请看这篇文章:rem是 ...

  4. 【BZOJ4025】二分图 LCT

    [BZOJ4025]二分图 Description 神犇有一个n个节点的图.因为神犇是神犇,所以在T时间内一些边会出现后消失.神犇要求出每一时间段内这个图是否是二分图.这么简单的问题神犇当然会做了,于 ...

  5. C#中的依赖注入那些事儿

    目录 目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依 ...

  6. spss v21.0 使用笔记

    spss v21.0 使用笔记 有问题,戳官方帮助文档 神经网络 分析-神经网络-多层感知机 变量. 分析-神经网络-多层感知机-变量 预测变量可指定为因子(分类)或协变量(刻度). 在因变量框输入预 ...

  7. ZooKeeper+Kafka+Storm

    http://www.cnblogs.com/panfeng412/archive/2012/11/30/how-to-install-and-deploy-storm-cluster.html

  8. 双口RAM,值得研究

    在FPGA设计过程中,使用好双口RAM,也是提高效率的一种方法. 官方将双口RAM分为简单双口RAM和真双口RAM. 简单双口RAM只有一个写端口,一个读端口. 真双口RAM分别有两个写端口和两个读端 ...

  9. 报错:Can't find a source file at "xxxxx“Locate the file or edit the source lookup path to include its location.

    调试问题: Can't find a source file at "/tmp/TI_MKLIB6sLCzz/SRC/exit.c" Locate the file or edit ...

  10. TCP之二:TCP的三次握手与四次分手

    一.TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础 ...