반응형
코드 작성
PlayerController
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 10f; // 비행기 이동 속도
public GameObject bulletPrefab; // 발사할 총알의 프리팹
public Transform bulletSpawn; // 총알이 발사될 위치
void Update()
{
// 플레이어 이동 처리
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector2 movement = new Vector2(moveHorizontal, moveVertical);
transform.Translate(movement * speed * Time.deltaTime);
// 스페이스바를 눌렀을 때 총알 발사
if (Input.GetKeyDown(KeyCode.Space))
{
Shoot();
}
}
// 총알 발사 함수
void Shoot()
{
// 총알 인스턴스 생성
Instantiate(bulletPrefab, bulletSpawn.position, bulletSpawn.rotation);
}
}
Bullet
using UnityEngine;
public class Bullet : MonoBehaviour
{
public float speed = 20f; // 총알 속도
void Start()
{
// 총알을 앞으로 이동
GetComponent<Rigidbody2D>().velocity = transform.up * speed;
}
// 충돌 처리 함수
void OnTriggerEnter2D(Collider2D other)
{
// 적과 충돌 시 총알과 적을 파괴
if (other.CompareTag("Enemy"))
{
Destroy(other.gameObject);
Destroy(gameObject);
}
}
}
Enemy
using UnityEngine;
public class Enemy : MonoBehaviour
{
public float speed = 2f; // 적 이동 속도
void Update()
{
// 적을 아래로 이동
transform.Translate(Vector2.down * speed * Time.deltaTime);
// 화면 밖으로 나가면 파괴
if (transform.position.y < -6f)
{
Destroy(gameObject);
}
}
// 충돌 처리 함수
void OnTriggerEnter2D(Collider2D other)
{
// 플레이어와 충돌 시 적을 파괴
if (other.CompareTag("Player"))
{
Destroy(gameObject);
}
}
}
다른 간단한 게임 만들기
의뢰하기
반응형