/// <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); }
/// <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); }