Level One Magic
"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke
ModelImportCollisions.cs
using UnityEngine;
using UnityEditor;
using System.Collections;

public class ModelImportCollisions : AssetPostprocessor {

    void OnPreprocessModel () {
        ModelImporter modelImporter = (ModelImporter) assetImporter;
        modelImporter.globalScale = 0.01f;
    }
    
    void Apply (Transform t) {
        if(t.name.ToLower().Contains("collider"))
            t.gameObject.AddComponent("MeshCollider");
            
        foreach(Transform child in t)
            Apply(child);
    }
    
    void ApplySphereCollider(GameObject go) {
        go.AddComponent("SphereCollider");
        go.renderer.enabled = false;
    }
    
    void ApplyCapsuleCollider(GameObject go) {
        go.AddComponent("CapsuleCollider");
        go.renderer.enabled = false;
    }
    
    void ApplyBoxCollider(GameObject go) {
        go.AddComponent("BoxCollider");
        go.renderer.enabled = false;
    }
    
    void ApplyMeshCollider(GameObject go) {
        go.AddComponent("MeshCollider");
        go.renderer.enabled = false;
    }
    
    void OnPostprocessGameObjectWithUserProperties( GameObject go, string[] names, object[] values) {
        for (int i = 0; i < names.Length; i++)
        {
            if(names[i] == "sphereCollider")
                ApplySphereCollider(go);
            else if(names[i] == "capsuleCollider")
                ApplyCapsuleCollider(go);
            else if(names[i] == "boxCollider")
                ApplyBoxCollider(go);
            else if(names[i] == "meshCollider")
                ApplyMeshCollider(go);                
        }
     }
}

Back to Main

© 2003-2013 Andrew Kelts