您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
49 行
1.2 KiB
49 行
1.2 KiB
using UnityEngine;
|
|
using UnityEditor;
|
|
using System;
|
|
|
|
public class GeometryImporter : AssetPostprocessor
|
|
{
|
|
void OnPreprocessModel()
|
|
{
|
|
var importer = assetImporter as ModelImporter;
|
|
if (importer != null)
|
|
{
|
|
importer.addCollider = false;
|
|
importer.importMaterials = false;
|
|
//importer.materialName = ModelImporterMaterialName.BasedOnMaterialName;
|
|
//importer.materialSearch = ModelImporterMaterialSearch.Everywhere;
|
|
}
|
|
}
|
|
|
|
void OnPostprocessModel(GameObject go)
|
|
{
|
|
AddColisionRecursively(go);
|
|
}
|
|
|
|
void AddColisionRecursively(GameObject go)
|
|
{
|
|
if (go.name.StartsWith("collision_", StringComparison.InvariantCultureIgnoreCase))
|
|
{
|
|
go.AddComponent<MeshCollider>();
|
|
Editor.DestroyImmediate(go.GetComponent<MeshRenderer>());
|
|
|
|
if(go.name.StartsWith("collision_detail", StringComparison.InvariantCultureIgnoreCase))
|
|
{
|
|
go.layer = LayerMask.NameToLayer("collision_detail");
|
|
}
|
|
else
|
|
{
|
|
if(go.name.StartsWith("collision_player", StringComparison.InvariantCultureIgnoreCase))
|
|
{
|
|
go.layer = LayerMask.NameToLayer("collision_player");
|
|
}
|
|
}
|
|
|
|
}
|
|
foreach (Transform g in go.transform)
|
|
{
|
|
AddColisionRecursively(g.gameObject);
|
|
}
|
|
}
|
|
}
|