示例#1
0
    public void CreateMesh(ImportDataTypes.Mesh importMesh)
    {
        GameObject meshOB = GameObject.Find(importMesh.header.transformName.text).gameObject;
        Mesh       mesh   = new Mesh();

        MeshFilter meshFilter = meshOB.AddComponent <MeshFilter>();

        meshFilter.mesh = mesh;

        MeshRenderer meshRenderer = meshOB.AddComponent <MeshRenderer>();

        Material material = defaultMaterial;

        meshRenderer.material = material;

        List <Vector3> verticesToUse = new List <Vector3>();
        List <Vector2> uvsToUse      = new List <Vector2>();

        for (int i = 0; i < importMesh.body.vertices.Length; i++)
        {
            Vector3 pos = new Vector3((float)importMesh.body.vertices[i].position.x, (float)importMesh.body.vertices[i].position.y, (float)importMesh.body.vertices[i].position.z);
            verticesToUse.Add(pos);
        }

        for (int i = 0; i < importMesh.body.vertices.Length; i++)
        {
            Vector2 uv = new Vector2((float)importMesh.body.vertices[i].uv.x, (float)importMesh.body.vertices[i].uv.y);
            verticesToUse.Add(uv);
        }

        mesh.vertices = verticesToUse.ToArray();
        mesh.uv       = uvsToUse.ToArray();
        mesh.RecalculateNormals();
    }
示例#2
0
    private void Start()
    {
        this.GetComponent <Importer>().ReadScene();
        ImportDataTypes.Scene scene = this.GetComponent <Importer>().scene;

        for (int i = 0; i < scene.header.transformCount; i++)
        {
            CreateTransform(scene.body.transforms[i]);
        }

        for (int i = 0; i < scene.header.meshCount; i++)
        {
            ImportDataTypes.Mesh mesh = scene.body.meshes[i];
            CreateMesh(mesh);
        }
    }