Beispiel #1
0
    /// <summary>
    /// Step 3: Save
    /// </summary>
    protected Texture2D SaveTexture(Texture2D t, string newPath = null)
    {
        if (newPath == null)
        {
            newPath = AssetDatabase.GetAssetPath(t);
        }
        string prePath = Application.dataPath;

        prePath = prePath.Substring(0, prePath.Length - 6);
        string fullPath = prePath + newPath;

        Debug.Log(fullPath);

        Texture2D pngTex = new Texture2D(t.width, t.height, TextureFormat.ARGB32, false);

        pngTex.SetPixels(t.GetPixels());
        var bs = pngTex.EncodeToPNG();

        File.WriteAllBytes(fullPath, bs);


        AssetDatabase.Refresh();
        GrassTextureProcess.TextureReImport(newPath, true);
        Texture2D newT2d = (Texture2D)AssetDatabase.LoadMainAssetAtPath(newPath);

        return(newT2d);
    }
Beispiel #2
0
    /// <summary>
    /// Step 2: Edit
    /// </summary>
    void Edit(TerrainGrassInfo tInfo, RaycastHit info)
    {
        brush.texPaint01Size = brush.size / info.collider.bounds.size.x;
        Vector2 uv = info.textureCoord;

        uv = new Vector2(uv.x, 1 - uv.y);
        GrassTextureProcess.DrawPoint(tInfo.grassTex, uv, brush);
    }