// Update is called once per frame void Update() { if (!is_alive) { if (!GetComponent <ParticleSystem>().isPlaying) { Destroy(gameObject); GameOverHandler.OnGameOver(); } return; } //position rb.velocity = Vector3.right * Input.GetAxis("Horizontal") * speed + Vector3.up * Input.GetAxis("Vertical") * speed; //rotation /*Vector2 mv = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y")); * if (mv.magnitude > 0.1) * { * float angle = Vector2.SignedAngle(Vector2.up, mv); * Vector3 desiredAngle = new Vector3(0f, 0f, angle); * * transform.localEulerAngles = desiredAngle; * }*/ Camera cam = Camera.current; if (cam != null) { Vector2 mousepos = Input.mousePosition; Vector2 playerpos = cam.WorldToScreenPoint(transform.position); float angle = Vector2.SignedAngle(Vector2.up, mousepos - playerpos); Vector3 desiredAngle = new Vector3(0f, 0f, angle); transform.localEulerAngles = desiredAngle; } //shoot if (Input.GetButton("Fire1") && shootingTimeout <= 0f) { shootingTimeout = 1f / shootingRate; GameObject go = Instantiate(projectile); Rigidbody2D rb = go.GetComponent <Rigidbody2D>(); go.transform.position = transform.position + transform.up * 0.6f; rb.velocity = transform.up * projectileSpeed; } shootingTimeout -= Time.deltaTime; }