void Move() { if (movementFlag == 1) { walkAndJump.Manuever(Direction.Left); } else if (movementFlag == 2) { walkAndJump.Manuever(Direction.Right); } else { walkAndJump.Manuever(Direction.None); } }
private void Update() { if (organism.alive) { switch (currentState) { case State.Walking: walkAndJump.Manuever(InterpretKey()); break; case State.Aiming: walkAndJump.Manuever(Direction.None); //mousePosition = Input.mousePosition; //mousePosition = cam.ScreenToWorldPoint(mousePosition); //Ray r = new Ray(); //r.origin = mousePosition; //r.direction = cam.transform.forward; // mousePosition = r.GetPoint(-r.origin.z / Mathf.Cos(Vector3.Angle(r.direction, Vector3.forward * Mathf.PI / 180))); var mousePos = Input.mousePosition; mousePos.z = -cam.transform.position.z; mousePosition = (cam.ScreenToWorldPoint(mousePos)); mousePosition = new Vector3(Mathf.Round(mousePosition.x), Mathf.Round(mousePosition.y), 0); transform.LookAt(new Vector3(mousePosition.x, transform.position.y, 0)); aim.GetComponent <RectTransform>().position = cam.WorldToScreenPoint(mousePosition); RaycastHit[] hits = Physics.SphereCastAll(wand.transform.position, 0.2f, mousePosition - wand.transform.position, Vector3.Distance(wand.transform.position, mousePosition), 257, QueryTriggerInteraction.Collide); //Debug.DrawLine(wand.transform.position, mousePosition); bool blocked = false; for (int i = 0; i < hits.Length; i++) { Entity e = hits[i].collider.GetComponent <Entity>(); if (e != null && e.blockProjectiles == true) { blocked = true; //Debug.Log(e.name); break; } } if (blocked) { mouse.SetActive(false); X.SetActive(true); } else { mouse.SetActive(true); X.SetActive(false); } if (Input.GetKeyDown(KeyCode.Mouse0) && !EventSystem.current.IsPointerOverGameObject()) { StartCoroutine(Cast()); SetState(State.Casting); } if (Input.GetKeyDown(KeyCode.Mouse1) && !EventSystem.current.IsPointerOverGameObject()) { SetState(State.Walking); } break; case State.Casting: walkAndJump.Manuever(Direction.None); break; case State.Cleared: StartCoroutine(Clear()); break; } } else { walkAndJump.Manuever(Direction.None); if (manager != null) { manager.SetState(GameStateManager.UIState.GameOver); } } }