Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (!tut && Application.loadedLevelName == "AncientTemple")
        {
            tut = GameObject.FindGameObjectWithTag("TutorialScript").GetComponent <TutorialScript>();
        }

        if (InputTimer > 0)
        {
            InputTimer -= Time.deltaTime;
        }
        else
        {
            if (Input.GetMouseButtonDown(0))
            {
                Vector3 v3 = Input.mousePosition;
                v3.z = 10.0f;
                MousePressdPosition = Camera.main.ScreenToWorldPoint(v3);
            }
            if (Input.GetMouseButtonUp(0))
            {
                if (SelectedUnits.Count != 0)
                {
                    if (tut && !tut.IsMessagePresent || !tut)
                    {
                        InputTimer += 0.15f;

                        GameObject[] units = GameObject.FindGameObjectsWithTag("Units");

                        TutorialMove();

                        PlayPlaceOrderSound();

                        foreach (var s in SelectedUnits)
                        {
                            foreach (var o in units)
                            {
                                UnitScript u = o.GetComponent <UnitScript>();
                                if (u.Name == s)
                                {
                                    Vector3 v3 = Input.mousePosition;
                                    v3.z = 10.0f;
                                    v3   = Camera.main.ScreenToWorldPoint(v3);
                                    u.SetTargetPosition(v3);
                                }
                            }
                        }
                    }
                }
                else
                {
                    Vector3 v3 = Input.mousePosition;
                    v3.z = 10.0f;
                    v3   = Camera.main.ScreenToWorldPoint(v3);

                    Vector3 min = new Vector3(Mathf.Min(v3.x, MousePressdPosition.x), Mathf.Min(v3.y, MousePressdPosition.y), 0);
                    Vector3 max = new Vector3(Mathf.Max(v3.x, MousePressdPosition.x), Mathf.Max(v3.y, MousePressdPosition.y), 0);

                    Vector3 dif = max - min;

                    Rect         mouserect = new Rect(min.x, min.y, dif.x, dif.y);
                    GameObject[] units     = GameObject.FindGameObjectsWithTag("Units");
                    foreach (var o in units)
                    {
                        if (mouserect.Contains(o.transform.position))
                        {
                            UnitScript u = o.GetComponent <UnitScript>();
                            AddSelection(u.Name);
                        }
                    }
                }
            }
            if (Input.GetMouseButtonUp(1))
            {
                DeselectAllUnits();
                InputTimer += 0.05f;
            }
        }
    }