using System;
using System.IO;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Arts.Shader.URP.P4.P4_8
{
public class WaterColor : MonoBehaviour
{
[Header("水体颜色渐变")]
public Gradient waterGradient;
public Texture2D rampTexture;
//Start is called before the first frame update
void Start()
{
rampTexture = new Texture2D(128, 64);
Color[] colors = new Color[rampTexture.width * rampTexture.height];
for (int i = 0; i < rampTexture.height; i++)
{
for (int j = 0; j < rampTexture.width; j++)
{
colors[i*j] = waterGradient.Evaluate(((float)(j*i)) / colors.Length);
}
}
rampTexture.SetPixels(colors);
rampTexture.Apply();
byte[] dataBytes = rampTexture.EncodeToTGA();
string savePath = Application.dataPath + "/SampleCircle.tga";
FileStream fileStream = File.Open(savePath, FileMode.OpenOrCreate);
fileStream.Write(dataBytes, 0, dataBytes.Length);
fileStream.Close();
UnityEditor.AssetDatabase.SaveAssets();
UnityEditor.AssetDatabase.Refresh();
this.GetComponent<MeshRenderer>().material.SetTexture("_WaterColorTex", rampTexture);
}
}
}