Ejemplo n.º 1
0
    public static PaintingModelData createData(GameObject pModelObject, Vector2 pPictureSize)
    {
        var lPaintingMesh = new PaintingModelData();
        var lMeshFilter = pModelObject.transform.Find("Render").GetComponent<MeshFilter>();
        lPaintingMesh.renderMesh.mesh = lMeshFilter.mesh;
        lPaintingMesh.renderMesh.setTransform(lMeshFilter.transform);
        var lMeshCollider = pModelObject.GetComponentsInChildren<MeshCollider>();
        //var lColliderMeshes = new Mesh[lMeshCollider.Length];
        var lColliderMeshes = new ModelData[lMeshCollider.Length];
        for (int i = 0; i < lMeshCollider.Length; ++i)
        {
            lColliderMeshes[i].mesh = lMeshCollider[i].sharedMesh;
            lColliderMeshes[i].setTransform(lMeshCollider[i].transform);
        }
        lPaintingMesh.colliderMeshes = lColliderMeshes;

        lPaintingMesh.pictureSize = pPictureSize;

        return lPaintingMesh;
    }
Ejemplo n.º 2
0
    public static PaintingModelData createDataFromString(string pStringData)
    {
        PaintingModelData lOut = new PaintingModelData();
        Hashtable lData = (Hashtable)zzSerializeString.Singleton.unpackToData(pStringData);
        lOut.pictureSize = (Vector2)lData["pictureSize"];
        lOut.renderMesh =
            createModelDataFromTable((Hashtable)lData["renderMesh"], lOut.pictureSize);

        ArrayList lColliderMeshesData = (ArrayList)lData["colliderMeshes"];
        lOut.colliderMeshes = new ModelData[lColliderMeshesData.Count];
        for (int i = 0; i < lColliderMeshesData.Count;++i )
        {
            lOut.colliderMeshes[i] =
            createModelDataFromTable((Hashtable)lColliderMeshesData[i], lOut.pictureSize);
        }
        return lOut;
    }
Ejemplo n.º 3
0
    public static PaintingMesh create(GameObject lObject,PaintingModelData pData)
    {
        //print("GameObject" + lObject.name);
        Transform lTransform = lObject.transform;
        var lOut = lObject.GetComponent<PaintingMesh>();

        //lOut.modelData = pData;
        {
            //图形模型
            //var lRenderObject = new GameObject("Render");
            var lRenderObjectTransform = lObject.transform.Find("Render");
            var lRenderObject = lRenderObjectTransform.gameObject;
            lOut.paintRenderer = lRenderObject.GetComponent<MeshRenderer>();
            lRenderObject.GetComponent<MeshFilter>().mesh = pData.renderMesh.mesh;
            lRenderObject.transform.parent = lTransform;
            pData.renderMesh.setToTransform(lRenderObject.transform);

        }

        int i = 0;
        foreach (var lColliderMeshes in pData.colliderMeshes)
        {
            //物理模型
            var lColliderObject = new GameObject("Collider" + i);
            lColliderObject.transform.parent = lTransform;
            var lMeshCollider = lColliderObject.AddComponent<MeshCollider>();
            lMeshCollider.convex = true;
            lMeshCollider.sharedMesh = lColliderMeshes.mesh;
            lColliderMeshes.setToTransform(lColliderObject.transform);
            ++i;
        }
        return lOut;
    }