void Update() { tempxx = lastDir.ToString(); // Debuging purpose float x = Input.GetAxisRaw("Horizontal"); float y = Input.GetAxisRaw("Vertical"); Vector2 direction = new Vector2(x, y); if (x > 0 || TouchDirection.x > 0) { animator.SetBool("FacingRight", true); lastDir = lastDirection.Right; } else if (x < 0 || TouchDirection.x < 0) { animator.SetBool("FacingLeft", true); lastDir = lastDirection.Left; } else if (y > 0 || TouchDirection.y > 0) { animator.SetBool("FacingUp", true); lastDir = lastDirection.Up; } else if (y < 0 || TouchDirection.y < 0) { animator.SetBool("FacingDown", true); lastDir = lastDirection.Down; } switch (lastDir) { case lastDirection.Up: transform.rotation = Quaternion.Euler(new Vector3(0, 0, 0)); ResetFacesCustom("FacingUp"); break; case lastDirection.Down: transform.rotation = Quaternion.Euler(new Vector3(0, 180f, 180f)); ResetFacesCustom("FacingDown"); break; case lastDirection.Right: transform.rotation = Quaternion.Euler(new Vector3(0, 0, -90f)); ResetFacesCustom("FacingRight"); break; case lastDirection.Left: transform.rotation = Quaternion.Euler(new Vector3(180f, 0, 90f)); ResetFacesCustom("FacingLeft"); break; default: break; } #region fire if (Input.GetButtonDown("Fire1")) { //animator.SetTrigger("Shoot"); Rigidbody2D bulletInstance = new Rigidbody2D(); if (lastDir == lastDirection.Right) { // ... instantiate the bullet_pref Facing right and set it's velocity to the right. bulletInstance = Instantiate(bullet_pref, transform.position, Quaternion.Euler(new Vector3(0, 0, 0))) as Rigidbody2D; bulletInstance.velocity = new Vector2(bullet_speed, 0); Vector3 temp = bulletInstance.transform.position; temp.x += 0.2f; bulletInstance.transform.position = temp; bulletInstance.transform.rotation = Quaternion.Euler(new Vector3(0, 180f, 90f)); } else if (lastDir == lastDirection.Left) { // Otherwise instantiate the bullet_pref Facing left and set it's velocity to the left. bulletInstance = Instantiate(bullet_pref, transform.position, Quaternion.Euler(new Vector3(0, 0, 180f))) as Rigidbody2D; bulletInstance.velocity = new Vector2(-bullet_speed, 0); Vector3 temp = bulletInstance.transform.position; temp.x -= 0.2f; bulletInstance.transform.position = temp; bulletInstance.transform.rotation = Quaternion.Euler(new Vector3(0, 0, 90f)); } else if (lastDir == lastDirection.Up) { bulletInstance = Instantiate(bullet_pref, transform.position, Quaternion.Euler(new Vector3(180f, 0, 0))) as Rigidbody2D; bulletInstance.velocity = new Vector2(0, bullet_speed); Vector3 temp = bulletInstance.transform.position; temp.y += 0.2f; bulletInstance.transform.position = temp; bulletInstance.transform.rotation = Quaternion.Euler(new Vector3(0, 0, 0)); } else if (lastDir == lastDirection.Down) { bulletInstance = Instantiate(bullet_pref, transform.position, Quaternion.Euler(new Vector3(0, 180f, 0))) as Rigidbody2D; bulletInstance.velocity = new Vector2(0, -bullet_speed); Vector3 temp = bulletInstance.transform.position; temp.y -= 0.2f; bulletInstance.transform.position = temp; bulletInstance.transform.rotation = Quaternion.Euler(new Vector3(0, 0, 180f)); } Destroy(bulletInstance.gameObject, 5); } #endregion if (IsTouching == false) { if (Mathf.Abs(direction.x) > 0 || Mathf.Abs(direction.y) > 0) { Move(direction); } else if (Mathf.Abs(direction.x) > 0 && Mathf.Abs(direction.y) > 0) { Move(direction); } else { animator.SetBool("Moving", false); ResetFaces(); } } else { // Debug.Log("ruch z toucha: " + TouchDirection.ToString()); Move(TouchDirection); } }