[타워디펜스게임] #2. 몬스터 이동 & 랜덤 위치 생성

치치·2024년 11월 13일
0

타워디펜스게임

목록 보기
2/18
post-thumbnail

https://youtu.be/8Ms2ws6iRy4

📌 몬스터가 랜덤한 spawnPoint에 5초마다 생성되며 z축의 - 방향으로 speed값만큼 움직이게 하기


📌 몬스터 스크립트 전체보기

using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;
using UnityEngine;
public class Monster : MonoBehaviour
{
    public float speed;
    private void FixedUpdate()
    {
        transform.position -= new Vector3(speed, 0, 0);
    }
}
  • 몬스터의 스피드 값을 정하고 transform.position으로 위치 계속 변경
  • 몬스터 오브젝트에 스크립트 넣어주기

* 빈게임 오브젝트로 spawnPoint 위치 설정

📌 MonsterSpawner 스크립트 전체보기

  • MonsterSpawner 게임오브젝트에 스크립트 넣어주기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterSpawner : MonoBehaviour
{
    public Transform[] spawnPoints; // 스폰위치 배열 

    public GameObject Monster;

    private void Start()
    {
        // SpawnMonster함수를 2초후에 5초마다 실행
        InvokeRepeating("SpawnMonster", 2, 5);
    }

    // 스폰 랜덤 위치 몬스터 생성
    void SpawnMonster()
    {
        int ran = Random.Range(0, spawnPoints.Length);
        GameObject myMonster = 
            Instantiate(Monster, spawnPoints[ran].position, Quaternion.identity);
    }
}

🔒 MonsterSpawner 스크립트 자세히보기

  • 스폰위치를 담을 배열 선언
  • 동적으로 생성시킬 게임오브젝트(Monster) 선언
public class MonsterSpawner : MonoBehaviour
{
    public Transform[] spawnPoints; // 스폰위치 배열 
    public GameObject Monster;
  • Random.Range()를 사용하여 랜덤 범위를 0 ~ spawnPoints배열의 길이로 지정
  • Monster를 지정위치에 생성 (Quaternion.identity -> 회전값x)
// 스폰 랜덤 위치 몬스터 생성
void SpawnMonster()
{
    int ran = Random.Range(0, spawnPoints.Length);
    GameObject myMonster = 
        Instantiate(Monster, spawnPoints[ran].position, Quaternion.identity);
}
  • InvokeRepeating: ("string", 몇초 후에 실행, 몇초 마다 실행)
private void Start()
{
    // SpawnMonster함수를 2초후에 5초마다 실행
    InvokeRepeating("SpawnMonster", 2, 5);
}
profile
뉴비 개발자

0개의 댓글