Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit))
            {
                Transform objectHit = hit.transform;
                if (objectHit.GetComponent <BarGraph>() == null)
                {
                    return;
                }

                if (selected != null)
                {
                    BarGraph selectedBarGraph = selected.GetComponentInChildren <BarGraph>();
                    if (selectedBarGraph != null)
                    {
                        setSelected(selectedBarGraph, false);
                    }
                }

                selected = objectHit.GetComponentInParent <RegionController>();
                if (!WindowManager.isOpen("RegionWidget"))
                {
                    WindowManager.openWindowFromChildPrototype("RegionWidget");
                }
                WindowManager.activate("RegionWidget");
                WindowManager.get("RegionWidget").GetComponentInChildren <RegionWidget>().regionController = selected;

                BarGraph barGraph = objectHit.GetComponent <BarGraph>();
                if (barGraph != null)
                {
                    //Debug.Log(objectHit.gameObject.name);
                    setSelected(barGraph, true);
                }

                // Do something with the object that was hit by the raycast.
            }
        }

        // Handle spped
        if (Input.GetButtonDown("Pause"))
        {
            speed = 0;
        }
        else if (Input.GetButtonDown("Speed1"))
        {
            speed = 1;
        }
        else if (Input.GetButtonDown("Speed2"))
        {
            speed = 2;
        }
        else if (Input.GetButtonDown("Speed3"))
        {
            speed = 3;
        }
        else if (Input.GetButtonDown("Speed"))
        {
            float axisSpeed = Input.GetAxis("Speed");
            if (axisSpeed > 0)
            {
                speed++;
            }
            else if (axisSpeed < 0)
            {
                speed--;
            }
        }

        if (speed > 0)
        {
            elapsed += speedArray[speed - 1];
            if (elapsed > maxElapsed)
            {
                elapsed = 0;
                time   += 1;
                world.tic();
                if (onTic != null)
                {
                    onTic();
                }
                // MAIN LOOP
            }
        }
    }