private void CheckAvianTouch() { var hit = Physics2D.Raycast( new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y), Vector2.zero, 0f); if (hit.collider) { selectedAvian = hit.collider.GetComponentInParent <Avian>(); arrowTransform.position = selectedAvian.transform.position; } }
private void CheckAnimationEnd() { launchTimer += Time.deltaTime; if (launchTimer <= 2.0f) { return; } if (selectedAvian.Stopped() || launchTimer >= 20.0f) { GameCamera.Instance.Reset(); Destroy(selectedAvian.gameObject); selectedAvian = null; state = GameState.Idle; launchTimer = 0; avianCount--; if (avianCount == 0) { for (int i = 0; i < pickables.Length; i++) { if (pickables[i]) { EndScreen.Instance.Show(false); return; } } EndScreen.Instance.Show(true); } else { for (int i = 0; i < pickables.Length; i++) { if (pickables[i]) { // Pickables still left, create new avian CreateAvian(); return; } } EndScreen.Instance.Show(true); } } }
private void CheckAvianDrag() { var delta = AvianMouseDelta(); var length = delta.magnitude; arrowTransform.gameObject.SetActive(true); if (length > 0.0f) { var angle = Vector3.SignedAngle(Vector3.right, delta / length, Vector3.forward); if (Mathf.Abs(angle) <= 90.0f) { arrowTransform.localRotation = Quaternion.Euler(0, 0, angle); arrowTransform.localScale = new Vector3(length / defaultArrowDist, arrowTransform.localScale.y); if (Input.GetMouseButtonUp(0)) { var flightForce = delta * force; if (flightForce.sqrMagnitude > 0.0f) { arrowTransform.gameObject.SetActive(false); arrowTransform.localScale = new Vector3(0, arrowTransform.localScale.y); selectedAvian.rBody.AddForce(flightForce); GameCamera.Instance.target = selectedAvian.transform; state = GameState.Animation; } } return; } else if (Input.GetMouseButtonUp(0)) { selectedAvian = null; } } else if (Input.GetMouseButtonUp(0)) { selectedAvian = null; } arrowTransform.gameObject.SetActive(false); }
void Awake() { S = this; animator = this.GetComponent <AvianAnimator>(); }