Example #1
0
    //public void init( MeshCollider c, byte[] idList, _StructurePart3.enType t )
    public void init(MeshCollider c, ushort[] idList, _StructurePart3.enType t)
    {
        collider = c;

        triangleToPartId.init(idList);

        type = t;


        if (!structure.isReplicated)
        {
            // コライダのメッシュをシェアしてないものは、最初からメッシュ作成済みとする。

            colliderTriangles = collider.sharedMesh.triangles;

            triangleToPartId.alloc(structure.parts);

            hitmesh = collider.sharedMesh;
        }
        else if (false)
        {
            // 最初からメッシュ作ってしまうモード

            colliderTriangles = collider.sharedMesh.triangles;

            triangleToPartId.alloc(structure.parts);


            var oldmesh = collider.sharedMesh;
            var newmesh = new Mesh();

            newmesh.MarkDynamic();
            newmesh.bounds = oldmesh.bounds;

            newmesh.vertices = oldmesh.vertices;

            newmesh.triangles = colliderTriangles;

            collider.enabled    = false;
            collider.sharedMesh = newmesh;
            collider.enabled    = true;

            hitmesh = newmesh;
        }
    }
Example #2
0
    GameObject buildChildWithCollider(_StructurePart3.enType hitType, Transform tfParent)
    {
        var mesh = meshBuilder.hits[(int)hitType].mesh;


        if (mesh != null)
        {
            var go = new GameObject(hitType.ToString());

            go.layer = getPartLayer(hitType);


            go.transform.SetParent(tfParent, false);

            var cd = go.AddComponent <MeshCollider>();

            cd.sharedMesh = mesh;


            return(go);
        }

        return(null);
    }
Example #3
0
 static public int getPartLayer(_StructurePart3.enType hitType)
 {
     return((int)hitType + UserLayer._bgDetail);
 }
Example #4
0
 /// <summary>
 /// 破壊コントローラーを取得する。
 /// </summary>
 /// <param name="partType">取得したい破壊コントローラーを示すタイプ</param>
 /// <returns>破壊コントローラー</returns>
 public StructureMeshBreakController3 getBreaker(_StructurePart3.enType partType)
 {
     return(breakers[(int)partType]);
 }