Exemplo n.º 1
0
    void OnGUI()
    {
        int pixXOffset = (int)(rect.x * Screen.width);
        int pixYOffset = (int)(rect.y * Screen.height);
        int width      = (int)(rect.width * Screen.width);
        int height     = (int)(rect.height * Screen.height);

        int LabelXOffset = 100;

        int scrollHeight = 220;
        int scrollWidth  = 200;

        int YOffset = 0;
        int Ysteps  = 20;


        GUI.BeginGroup(new Rect(pixXOffset, pixYOffset, width, height));
        scrollPosition = GUI.BeginScrollView(new Rect(0, 0, width, height), scrollPosition, new Rect(0, 0, scrollWidth, scrollHeight), false, false);

        GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "port");
        string portString = GUI.TextField(new Rect(LabelXOffset, YOffset, width - LabelXOffset, 20), port.ToString());
        int    tmp_port   = port;

        int.TryParse(portString, out tmp_port);
        if (tmp_port != port)
        {
            port = tmp_port;
        }
        YOffset += Ysteps;

        GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "portPrivateAPI");
        string portPrivateAPIString = GUI.TextField(new Rect(LabelXOffset, YOffset, width - LabelXOffset, 20), portPrivateAPI.ToString());
        int    tmp_portPrivateAPI   = portPrivateAPI;

        int.TryParse(portPrivateAPIString, out tmp_portPrivateAPI);
        if (tmp_portPrivateAPI != portPrivateAPI)
        {
            portPrivateAPI = tmp_portPrivateAPI;
        }
        YOffset += Ysteps;

        GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "FPS limit");
        string fpsString = GUI.TextField(new Rect(LabelXOffset, YOffset, width - LabelXOffset, 20), fps.ToString());
        int    tmp_fps   = fps;

        int.TryParse(fpsString, out tmp_fps);
        if (tmp_fps != fps)
        {
            fps = tmp_fps;
        }
        YOffset += Ysteps;

        GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "Time scale");
        string timeScaleString = GUI.TextField(new Rect(LabelXOffset, YOffset, width - LabelXOffset, 20), timeScale.ToString());
        float  tmp_timeScale   = timeScale;

        float.TryParse(timeScaleString, out tmp_timeScale);
        if (tmp_timeScale != timeScale)
        {
            timeScale = tmp_timeScale;
        }
        YOffset += Ysteps;

        GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "Time out");
        string timeOutString = GUI.TextField(new Rect(LabelXOffset, YOffset, width - LabelXOffset, 20), timeOut.ToString());
        float  tmp_timeOut   = timeOut;

        float.TryParse(timeOutString, out tmp_timeOut);
        if (tmp_timeOut != timeOut)
        {
            timeOut = tmp_timeOut;
        }
        YOffset += Ysteps;

        GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "Max SplitScreen");
        string maxspString = GUI.TextField(new Rect(LabelXOffset, YOffset, width - LabelXOffset, 20), maxSplitScreen.ToString());
        int    tmp_maxsp   = maxSplitScreen;

        int.TryParse(maxspString, out tmp_maxsp);
        if (tmp_maxsp != maxSplitScreen)
        {
            maxSplitScreen = tmp_maxsp;
        }
        YOffset += Ysteps;

        extendedTelemetry   = GUI.Toggle(new Rect(0, YOffset, width, 20), extendedTelemetry, "extendedTelemetry");
        YOffset            += Ysteps;
        generateTrees       = GUI.Toggle(new Rect(0, YOffset, width, 20), generateTrees, "generateTrees");
        YOffset            += Ysteps;
        generateRandomCones = GUI.Toggle(new Rect(0, YOffset, width, 20), generateRandomCones, "generateRandomCones");
        YOffset            += Ysteps;
        randomLight         = GUI.Toggle(new Rect(0, YOffset, width, 20), randomLight, "randomLight");
        YOffset            += Ysteps;
        raceCameras         = GUI.Toggle(new Rect(0, YOffset, width, 20), raceCameras, "raceCameras");
        YOffset            += Ysteps;
        overheadCamera      = GUI.Toggle(new Rect(0, YOffset, width, 20), overheadCamera, "overheadCamera");
        YOffset            += Ysteps;
        drawLidar           = GUI.Toggle(new Rect(0, YOffset, width, 20), drawLidar, "drawLidar");
        YOffset            += Ysteps;
        paceCar             = GUI.Toggle(new Rect(0, YOffset, width, 20), paceCar, "paceCar");
        YOffset            += Ysteps;
        if (paceCar)
        {
            manualDriving = GUI.Toggle(new Rect(Ysteps, YOffset, width, 20), manualDriving, "manualDriving");
            YOffset      += Ysteps;

            if (!manualDriving)
            {
                GUI.Label(new Rect(Ysteps, YOffset, LabelXOffset, 20), "kp");
                string kpString = GUI.TextField(new Rect(LabelXOffset + Ysteps, YOffset, width - LabelXOffset - Ysteps, 20), kp.ToString());
                float  tmp_kp   = kp;
                float.TryParse(kpString, out tmp_kp);
                if (tmp_kp != kp)
                {
                    kp = tmp_kp;
                }
                YOffset += Ysteps;

                GUI.Label(new Rect(Ysteps, YOffset, LabelXOffset, 20), "kd");
                string kdString = GUI.TextField(new Rect(LabelXOffset + Ysteps, YOffset, width - LabelXOffset - Ysteps, 20), kd.ToString());
                float  tmp_kd   = kd;
                float.TryParse(kdString, out tmp_kd);
                if (tmp_kd != kd)
                {
                    kd = tmp_kd;
                }
                YOffset += Ysteps;

                GUI.Label(new Rect(Ysteps, YOffset, LabelXOffset, 20), "ki");
                string kiString = GUI.TextField(new Rect(LabelXOffset + Ysteps, YOffset, width - LabelXOffset - Ysteps, 20), ki.ToString());
                float  tmp_ki   = ki;
                float.TryParse(kiString, out tmp_ki);
                if (tmp_ki != ki)
                {
                    ki = tmp_ki;
                }
                YOffset += Ysteps;
            }
        }

        useSeed  = GUI.Toggle(new Rect(0, YOffset, width, 20), useSeed, "useSeed");
        YOffset += Ysteps;
        if (useSeed)
        {
            GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "Seed");
            string seedString = GUI.TextField(new Rect(LabelXOffset, YOffset, width, 20), seed.ToString());
            YOffset += Ysteps;
            int tmp_seed = seed;
            int.TryParse(seedString, out tmp_seed);
            if (tmp_seed != seed)
            {
                seed = tmp_seed;
            }
        }

        YOffset += Ysteps;
        bool doSave = GUI.Button(new Rect(0, YOffset, width, 20), "Save");

        YOffset += Ysteps;

        // Check if the version used is the latest version if not, notify the user !
        if (versionCheck.latest != GlobalState.version)
        {
            YOffset += Ysteps;
            bool getLatest = GUI.Button(new Rect(0, YOffset, width, Ysteps * 2), "A new version is available, \n click here to get latest version !");
            YOffset += Ysteps * 2;
            if (getLatest)
            {
                versionCheck.GetLatestVersion();
            }
        }

        YOffset       += Ysteps;
        showPrivateKey = GUI.Toggle(new Rect(0, YOffset, width, 20), showPrivateKey, "showPrivateKey");
        YOffset       += Ysteps;
        if (showPrivateKey)
        {
            GUI.Label(new Rect(0, YOffset, LabelXOffset, 20), "Private API Key");
            privateKey = GUI.TextField(new Rect(LabelXOffset, YOffset, width, 20), privateKey);
            YOffset   += Ysteps;

            bool doRandomize = GUI.Button(new Rect(0, YOffset, width, 20), "Randomize private key");
            YOffset += Ysteps;
            if (doRandomize)
            {
                RandomizePrivateKey();
            }
        }

        if (doSave)
        {
            SaveToPlayerPrefs();
        }

        GUI.EndScrollView();
        GUI.EndGroup();
    }