using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestBeamGun : MonoBehaviour { public TestBeamBullet bullet; public Transform start; public float speed = 1; SpriteRenderer sprite; // Start is called before the first frame update void Start() { sprite = GetComponent(); // StartCoroutine(coFire()); } // Update is called once per frame void Update() { Vector3 screenPos = Input.mousePosition; Vector2 target = Camera.main.ScreenToWorldPoint(screenPos); Vector2 dir = Vector2.ClampMagnitude(target - (Vector2)transform.position, 1); Vector3 move = dir * speed * Time.deltaTime; float x = move.x; if (x > 0) { sprite.flipY = false; } else if (x < 0) { sprite.flipY = true; } transform.rotation = Quaternion.Euler(0, 0, Mathf.Rad2Deg * Mathf.Atan2(dir.y, dir.x)); Shot(); } void Shot() { if (Input.GetButtonDown("Fire1")) { //Debug.Log("Shoot"); TestBeamBullet b = TestBeamBullet.Instantiate(bullet); b.gameObject.SetActive(true); b.transform.position = start.position; b.direction = transform.right; } } IEnumerator coFire() { while (true) { TestBeamBullet b = TestBeamBullet.Instantiate(bullet); b.gameObject.SetActive(true); b.transform.position = start.position; b.direction = transform.right; yield return new WaitForSeconds(0.5f); } } }