Beispiel #1
0
    public void UpdateDetails()
    {
        int numberOfDetails = 0;

        if (details != null)
        {
            numberOfDetails = details.Length;
        }
        for (int i = 0; i < numberOfDetails; i++)
        {
            DestroyImmediate(details[i]);
        }

        if (data.plan == null)
        {
            return;
        }
        if (data.floorHeight == 0)
        {
            return;
        }
        if (data.details.Count == 0)
        {
            return;
        }
        if (detailMesh == null)
        {
            detailMesh = new DynamicMeshGenericMultiMaterialMesh();
        }

        if (renderMode != renderModes.full)
        {
            return;//once data is cleared - asses if we want to rerender the details
        }
        details         = BuildrBuildingDetails.Render(detailMesh, data);
        numberOfDetails = details.Length;

        for (int i = 0; i < numberOfDetails; i++)
        {
            details[i].transform.parent        = transform;
            details[i].transform.localPosition = Vector3.zero;
            details[i].transform.localRotation = Quaternion.identity;
        }
    }
Beispiel #2
0
    //returns the number of meshes
    private static int ExportDetails(BuildrData data)
    {
        DynamicMeshGenericMultiMaterialMesh DET_MESH     = new DynamicMeshGenericMultiMaterialMesh();
        BuildrDetailExportObject            exportObject = BuildrBuildingDetails.Build(DET_MESH, data);

        int numberOfMeshes = exportObject.detailMeshes.Length;

        if (numberOfMeshes == 0)
        {
            return(0);
        }

        string textureName     = data.exportFilename + ATLASED_SUFFIX + DETAIL_SUFFIX;
        string textureFileName = textureName + ".png";
        string newDirectory    = ROOT_FOLDER + data.exportFilename;

        File.WriteAllBytes(newDirectory + "/" + textureFileName, exportObject.texture.EncodeToPNG());
        ExportMaterial[] exportTextures = new ExportMaterial[1];
        ExportMaterial   newTexture     = new ExportMaterial();

        newTexture.name      = textureName;
        newTexture.filepath  = textureFileName;
        newTexture.generated = true;
        exportTextures[0]    = newTexture;
        for (int i = 0; i < numberOfMeshes; i++)
        {
            string DetailSuffixIndex = ((numberOfMeshes > 1) ? "_" + i : "");
            string DetailFileName    = data.exportFilename + DETAIL_SUFFIX + DetailSuffixIndex;
            string DetailFolder      = ROOT_FOLDER + data.exportFilename + "/";
            Export(DetailFileName, DetailFolder, data, exportObject.detailMeshes[i], exportTextures);
        }

        Texture2D.DestroyImmediate(exportObject.texture);

        return(numberOfMeshes);
    }