Tank2D.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Tank2D : MonoBehaviour { public Transform bulletSpawnPoint; public GameObject bulletPrefab; public float bulletSpeed = 10; public float moveSpeed = 2; void Update() { Movement(); Shooting(); } void Movement() { float h = Input.GetAxisRaw( "Horizontal" ); float v = Input.GetAxisRaw( "Vertical" ); if (h != 0) { transform.position += new Vector3(h * moveSpeed * Time.deltaTime, 0, 0); transform.rotation = Quaternion.Euler(0, 0, -90 * h); } else if (v != 0) { transform.position += new Vector3(0, v * moveSpeed * Time.deltaTime, 0); transform.rotation = Quaternion.Euler(0, 0, 90 - 90 * v); } } void Shooting() { if (Input.GetKeyDown(KeyCode.Space)) { var bullet = Instantiate(bulletPrefab, bulletSpawnPoint.position, bulletSpawnPoint.rotation); bullet.GetComponent<Rigidbody2D>().velocity = bulletSpawnPoint.up * bulletSpeed; } } } |
Bullet.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Bullet : MonoBehaviour { public float life = 3; void Awake() { Destroy(gameObject, life); } void OnCollisionEnter2D(Collision2D collision) { Destroy(collision.gameObject); Destroy(gameObject); } } |