2017-04-15 11 views
-1

メッシュを作成していますが、コライダーを追加する方法がわかりません。 GameObjectに追加するのは簡単ですが、メッシュに追加する方法はわかりません。どのようにしてメッシュにコライダーを追加できますか?

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

public class Mesh : MonoBehaviour 
{ 
    public int resX = 2; // 2 minimum 
    public int resZ = 2; 
    public float length = 1f; 
    public float width = 1f; 

    private MeshFilter meshf; 
    private UnityEngine.Mesh mesh; 
    private Vector3[] vertices; 

    private int v1; 
    private int v2; 

    private void Start() 
    { 
     GenerateMesh(); 
    } 

    private void GenerateMesh() 
    { 
     meshf = GetComponent<MeshFilter>(); 
     mesh = new UnityEngine.Mesh(); 
     meshf.mesh = mesh; 
     mesh.Clear(); 
    } 
} 
+0

あなたはメッシュに衝突型加速器を追加することはできません。 – Hellium

答えて

2

これをGameObjectに追加する必要があります。例えば同じように、あなたのStart方法BoxColliderに:

private void Start() 
{ 
    GenerateMesh(); 
    BoxCollider boxCollider = this.gameObject.AddComponent<BoxCollider>(); 
    ... 
} 
+0

ああ、BoxColliderを追加すると、SharedMeshプロパティをMeshに割り当てることができません:gameObject.AddComponent (); transform.GetComponent ()。sharedMesh = mesh;しかし、boxColliderの代わりにMeshColliderを追加すると、MeshColliderのconvexプロパティを常に変更する必要があります。 –

関連する問題