Exemple #1
0
    public GameObject CreateBillboard(string path, string name, bool usingHDRP)
    {
        GameObject camObject = Instantiate(Resources.Load("Mtree/MtreeBillboardCamera") as GameObject); // create billboard and render it
        Camera     cam       = camObject.GetComponent <Camera>();
        Billboard  bill      = new Billboard(cam, gameObject, 512, 512);

        bill.SetupCamera();
        string texturePath = path + name + "_billboard.png";

        bill.Render(texturePath);
        DestroyImmediate(camObject);

        Mesh billboardMesh = bill.CreateMesh(); // create billboard mesh

        AssetDatabase.CreateAsset(billboardMesh, path + name + "_LOD4.mesh");

        GameObject billboard  = new GameObject(name + "_LOD4"); // create billboard object and assign mesh
        MeshFilter meshFilter = billboard.AddComponent <MeshFilter>();

        meshFilter.mesh = billboardMesh;
        MeshRenderer meshRenderer = billboard.AddComponent <MeshRenderer>();

        Texture  billboardTexture = (Texture2D)AssetDatabase.LoadAssetAtPath(texturePath, typeof(Texture2D)); // create material
        Material mat = bill.CreateMaterial(billboardTexture, usingHDRP);

        meshRenderer.sharedMaterial = mat;
        AssetDatabase.CreateAsset(mat, path + name + "billboard.mat");
        return(billboard);
    }