// 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; } } }