// Update is called once per frame void Update () { crowSelected = GameObject.Find ("Crow 1").GetComponent<CrowBehaviour>(); if (Input.GetMouseButtonDown (0)) { CastSelectRay (); } if (crowSelected != null && crowSelected.shaman.getCurrentEnergy () != 0) { if (Input.GetMouseButtonDown (1) && crowSelected != null) { CastMoveRay (); } } mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); mousePosition.z = 0; if (crowSelected != null) { radius = (6 - crowSelected.shaman.getCurrentEnergy ()); if(crowSelected.shaman.getCurrentEnergy() == 0){ target = crowSelected.getRandomPoint(new Vector2(0, 0), 8); } else { if (target == new Vector2(0, 0)) { float angle = Random.Range (0.001f, 1.000f) * Mathf.PI * 2; x = Mathf.Cos (angle) * radius; y = Mathf.Sin (angle) * radius; target = new Vector3 (mousePosition.x + x, mousePosition.y + y, 0); } else { target = new Vector3 (mousePosition.x + x, mousePosition.y + y, 0); transform.position = Vector3.Lerp (transform.position, target, Time.deltaTime * 7f); if(isCloseToTarget((Vector2)transform.position, target)) { target = new Vector2(0, 0); } } } } else { transform.position = mousePosition; } }
void deselectCrow(){ if(crowSelected != null){ crowSelected.crowAnimation.speed = 1; crowSelected.setSelected(false); crowSelected = null; } }
void CastSelectRay() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit2D hit = Physics2D.Raycast (ray.origin, ray.direction, Mathf.Infinity); if (hit.collider != null && hit.collider.gameObject.tag == "Crow") { deselectCrow(); crowSelected = hit.collider.gameObject.GetComponent<CrowBehaviour>(); crowSelected.crowAnimation.speed = 0; crowSelected.setSelected(true); } else { deselectCrow(); } }