以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/10/03/235122より取得しました。


Unityで3Dモデルの見た目に合わせてBoxColliderを設定する

本日はUnityの小ネタ枠です。
Unityで3Dモデルの見た目に合わせてBoxColliderを設定する方法です。

3Dモデルの見た目に合わせてBoxColliderを設定する

MeshRendererコンポーネントのbounds変数から3Dモデルの見た目のバウンディングボックスを取得することができます。
docs.unity3d.com
docs.unity3d.com

// MeshRendererコンポーネントを取得
meshRenderer = GetComponent<MeshRenderer>();

// MeshRendererのバウンディングボックスを取得
Bounds rendererBounds = meshRenderer.bounds;

boundsから取得できる座標やサイズは全てワールド座標に基づく値になります。
逆算して見た目に合わせた適切なサイズのBoxColliderを求めることが可能です。

サンプルスクリプト

アタッチされたオブジェクトのMeshRendererを参照し、BoxColliderを設定する以下のサンプルスクリプトを作成しました。
・ModelColliderMaker.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(MeshRenderer))]
public class ModelColliderMaker : MonoBehaviour
{
    private MeshRenderer meshRenderer;
    private BoxCollider boxCollider;
    // Start is called before the first frame update
    void Start()
    {
        // MeshRendererコンポーネントを取得
        meshRenderer = GetComponent<MeshRenderer>();

        // MeshRendererのバウンディングボックスを取得
        Bounds rendererBounds = meshRenderer.bounds;

        // BoxColliderコンポーネントを取得または追加
        boxCollider = gameObject.AddComponent<BoxCollider>();

        // ローカル空間でのバウンディングボックスを計算
        Vector3 localCenter = transform.InverseTransformPoint(rendererBounds.center);
        Vector3 localSize = Vector3.Scale(rendererBounds.size, new Vector3(
            1f / transform.lossyScale.x,
            1f / transform.lossyScale.y,
            1f / transform.lossyScale.z
        ));

        // BoxColliderのサイズと中心を設定
        boxCollider.center = localCenter;
        boxCollider.size = localSize;

        Debug.Log($"{gameObject.name}: BoxColliderをMeshRendererのバウンディングボックスに合わせました" +
                  $"\n中心: {localCenter}, サイズ: {localSize}");
    }
}

MeshRendererコンポーネントを持つオブジェクトにアタッチして利用します。

シーンを再生すると3Dモデルの見た目上の大きさに合わせたBoxColliderが設定されました。




以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/10/03/235122より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14