MeshFilterはメッシュの大きさ等を取得できたりするコンポーネントです
MeshFilter f = GetComponent<MeshFilter>();
Vector3 size = f.mesh.bounds.max - f.mesh.bounds.min; //meshを包括するboxのサイズを取得(できるはず)
けどこんなエラーがでて困ってました.
Not allowed to access MeshFilter.mesh on prefab object. Use MeshFilter.sharedMesh instead UnityEngine.MeshFilter:get_mesh()
結果的にはprefabの要素にアクセスしてたのでエラーが出てました.
つまりこんな感じ
GameObject prefab = (GameObject)Resources.Load ("Prefabs/model"); MeshFilter f = prefab.GetComponent<MeshFilter>(); Vector3 size = f.mesh.bounds.max - f.mesh.bounds.min; //meshを包括するboxのサイズを取得(できるはず)
ですので,実体化?させたものを対象にすればエラーが取れました
GameObject prefab = (GameObject)Resources.Load ("Prefabs/model"); GameObject obj =(GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity); MeshFilter f = obj.GetComponent<MeshFilter>(); Vector3 size = f.mesh.bounds.max - f.mesh.bounds.min; //meshを包括するboxのサイズを取得(できるはず)
ただ,エラーがおっしゃってる解決方法
instead UnityEngine.MeshFilter:get_mesh()
がよくわかりませんでした(使い方?がわからない)