반응형
적 코드
using UnityEngine;
public class Enemy : MonoBehaviour
{
public float speed = 5f; // 적의 이동 속도
void Update()
{
Move(); // 이동 함수 호출
}
void Move()
{
// 적이 현재 위치에서 목표 지점으로 이동하는 방향을 계산합니다.
Vector3 moveDirection = Vector3.left;
// 적을 목표 지점으로 이동합니다.
transform.Translate(moveDirection * speed * Time.deltaTime);
}
}
타워 코드
public class Tower : MonoBehaviour
{
public GameObject bulletPrefab; // 발사체 프리팹
public Transform firePoint; // 발사 지점
public float fireRate = 1f; // 발사 속도
private float fireCountdown = 0f; // 발사 대기 시간
void Update()
{
if (fireCountdown <= 0f)
{
Shoot(); // 발사 함수 호출
fireCountdown = 1f / fireRate; // 발사 대기 시간 재설정
}
fireCountdown -= Time.deltaTime; // 발사 대기 시간 감소
}
void Shoot()
{
// 발사체를 발사 지점에서 생성합니다.
Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
}
}
총알 코드
public class Bullet : MonoBehaviour
{
public float speed = 20f; // 발사체 속도
public int damage = 10; // 발사체 데미지
void Update()
{
Move(); // 이동 함수 호출
}
void Move()
{
// 발사체를 앞으로 이동시킵니다.
transform.Translate(Vector3.right * speed * Time.deltaTime);
}
void OnTriggerEnter2D(Collider2D hitInfo)
{
// 충돌한 객체가 적인지 확인합니다.
Enemy enemy = hitInfo.GetComponent<Enemy>();
if (enemy != null)
{
enemy.TakeDamage(damage); // 적에게 데미지를 입힙니다.
Destroy(gameObject); // 발사체를 파괴합니다.
}
}
}
적 소환
public class EnemySpawner : MonoBehaviour
{
public GameObject enemyPrefab; // 적 프리팹
public Transform spawnPoint; // 생성 지점
public float spawnRate = 2f; // 생성 속도
private float spawnCountdown = 0f; // 생성 대기 시간
void Update()
{
if (spawnCountdown <= 0f)
{
SpawnEnemy(); // 적 생성 함수 호출
spawnCountdown = 1f / spawnRate; // 생성 대기 시간 재설정
}
spawnCountdown -= Time.deltaTime; // 생성 대기 시간 감소
}
void SpawnEnemy()
{
// 생성 지점에서 적을 생성합니다.
Instantiate(enemyPrefab, spawnPoint.position, spawnPoint.rotation);
}
}
다른 간단한 게임 만들기
의뢰하기
반응형