Skip to content

Instantly share code, notes, and snippets.

@pointcache
Created October 4, 2016 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pointcache/b79b31df0c457abfdee6cbb2a3903379 to your computer and use it in GitHub Desktop.
Save pointcache/b79b31df0c457abfdee6cbb2a3903379 to your computer and use it in GitHub Desktop.
using UnityEngine;
using System.Collections;
using UnityEditor;
using System;
public class FBXScaleOverride : AssetPostprocessor
{
int InModelCount;
void OnPreprocessModel()
{
ModelImporter importer = assetImporter as ModelImporter;
string name = importer.assetPath.ToLower();
if (name.Substring(name.Length - 4, 4) == ".fbx")
{
importer.materialName = ModelImporterMaterialName.BasedOnMaterialName;
importer.materialSearch = ModelImporterMaterialSearch.Everywhere;
if (!assetPath.Contains("_ANIM"))
importer.animationType = ModelImporterAnimationType.Legacy;
}
}
void OnPostprocessModel(GameObject g)
{
InModelCount = 0;
if(!g.name.Contains("_UN"))
Rename(g.transform, g.name);
}
void Rename(Transform transform, string name)
{
MeshFilter m = transform.GetComponent<MeshFilter>();
if (m)
{
if(InModelCount == 0)
m.sharedMesh.name = name;
else
{
string newname = name + "_" + InModelCount;
m.gameObject.name = newname;
m.sharedMesh.name = newname;
}
}
InModelCount++;
// Recurse
foreach (Transform child in transform)
Rename(child, name);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment