This package is meant for:
-
MeshCollider
optimization (3D) via bundled gltfpack binariesOriginal Mesh Unity Mesh Collider Optimized Mesh Collider Tris, Verts Count 3032 tris, 2512 verts 918 tris, 592 verts -
PolygonCollider2D
optimization (2D) using RDP line simplificationOriginal Sprite Unity Polygon Collider Optimized Polygon Collider Path Count 214 paths 23 paths
- Unity 2020.2 or newer recommended
(for
MeshColliderCookingOptions
) - A glTF/GLB importer package in your project:
com.unity.cloud.gltfast
(glTFast) orcom.unity.formats.glTF
(UnityGLTF)
- Supported OS for the included gltfpack binaries:
- Windows
- macOS (Intel & Apple Silicon)
- Linux
Note
If you don’t have a GLB importer, the tool can’t re-import the simplified mesh and will log an error telling you to install one
- Download the
collider-opt-pkg-v005.unitypackage
package from the Releases section and import in your Unity project
- In Package Manager, install one of:
- glTFast (
com.unity.cloud.gltfast
) -> recommended - UnityGLTF (
com.unity.formats.glTF
)
- glTFast (
- (macOS/Linux) If the
gltfpack
binary isn’t executable, the tool will attempt tochmod +x
automatically
- Select a GameObject with a
MeshCollider
(3D) orPolygonCollider2D
(2D) - Open context menu by right clicking the component header ->
Optimize Collider
- If needed you have option to Load/Save/Reset Collider aswell
- To adjust params for the optimizer go to
Tools -> Collider Optimizer
- Mesh Optimization Params:
Contraction
: higher contraction -> fewer triangles keptRecalc Normals
: recalculate normals after importConvex
: setsMeshCollider.convex = true
(Unity may auto-reduce to ≤255 tris)Aggressive (-sa)
: simplifies aggressively (more tris reduced)Permissive (-sp)
: simplifies permissively (less tris reduced)
- Polygon Optimization Params:
Tolerance
: maximum perpendicular distance new path is allowed to deviate from the original path (higher tolerance -> fewer lines kept)Tolerance Mode
:World
: interpreted in world unitsRelative
: interpreted as fraction of per-path bbox diagonal
Scale By Bounds
: InWorld
mode, multiply tolerance by each path’s bounds diagonal (useful for differently sized shapes)
- You get the option to define presets for different param sets you'd like to save
- Create presets via
Assets -> Create -> ColliderOptimizer -> Mesh Preset or Poly Preset
- In
Tools -> Collider Optimizer
window assign these presets to make them active - Without an active preset the settings are stored in
Project Settings
atProjectSettings/ColliderOptimizerSettings.asset
Reset to Defaults
will update the preset (if assigned) or the project settings to the default values
Polygon.Collider.Comparision.mp4
Mesh.Collider.Comparision.mp4
- For skinned meshes, the tool bakes a static combined mesh for collider usage (as intended for physics), not skinning, anyways I won't use a
MeshCollider
for a skinned mesh - Extremely degenerate or non-triangular topologies are skipped
glb import produced no loadable assets
Install a GLB importer package (UnityGLTF or glTFast) & reoptimize- Unity limits convex colliders to ≤255 tris, it may auto-simplify further
- If you see warnings about very large triangles (>500 units), check your model scale. The tool bakes transforms, but mismatched import scales can still yield oversized geometry
- The tool attempts to
chmod +x
thegltfpack
binary, if gatekeeper still blocks it, allow it in System Settings or remove quarantine attributes manually
Contributions to the project are welcome, consider making a PR
MIT License