예제 #1
0
    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();
        }
    }
예제 #2
0
    IEnumerator ShowProgress()
    {
        GrassBuilder builder = (GrassBuilder)target;

        while (builder.State == GrassBuildState.building)
        {
            Repaint();
            yield return(null);
        }
        Repaint();
    }
예제 #3
0
    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);
    }
예제 #4
0
 void Start()
 {
     Instance = this;
 }