public override void OnInspectorGUI() { base.OnInspectorGUI(); GUILayout.Space(30); builder = (GrassBuilder)target; if (builder.State == GrassBuildState.idle) { Build(); } else if (builder.State == GrassBuildState.building) { Progress(); UICancel(); } else if (builder.State == GrassBuildState.done) { Build(); UpdateMaterial(); } if (GrassBuilder.buildError) { Cancel(); ShowWarning(); } }
IEnumerator ShowProgress() { GrassBuilder builder = (GrassBuilder)target; while (builder.State == GrassBuildState.building) { Repaint(); yield return(null); } Repaint(); }
public static void GenTex(GrassBuilder _builder) { TexReimport_Reads(true); heightMin = float.MaxValue; heightMax = float.MinValue; builder = _builder; var settings = builder.settings; GetFolderPath(); tex = CreateTex(new Color(0, 0, 0.5f, 0.5f)); texLM = CreateTex(new Color(0, 0, 0, 0)); texSM = CreateTex(new Color(0, 0, 0, 0)); //Height Min Max for (int i = 0; i < textureSize; i++) { for (int j = 0; j < textureSize; j++) { Vector3 pos = GetPos(i, j, settings.MapCenter, settings.MapSize); CalHeightMinMax(i, j, pos); } } builder.data.heightMin = heightMin; builder.data.heightMax = heightMax; //Tex for (int i = 0; i < textureSize; i++) { for (int j = 0; j < textureSize; j++) { Vector3 pos = GetPos(i, j, settings.MapCenter, settings.MapSize); ProcessPixel(i, j, pos); } } #region save all SaveTex(ref tex, "grassInfo", true, TextureImporterType.Default, "png"); SaveTex(ref texLM, "grassInfo_LM", false, TextureImporterType.Lightmap, "exr"); SaveTex(ref texSM, "grassInfo_SM", false, TextureImporterType.SingleChannel, "png"); #endregion SetMats(); TexReimport_Reads(false); builder.SetProgress(1); }
void Start() { Instance = this; }