Unity/베어유 : 어몽어스 개발 노트

[23강] 킬 퀘스트 만들기 : 쿨타임

서니션 2023. 1. 26. 22:30
728x90
반응형

먼저 쿨타임을 표시해줄 UI 만들기

버튼-텍스트

 

PlayerCtrl.cs 수정

리소스 캐릭터에 Text_cool 넣어주기

스크립트 넣는 것보다 실행 버튼을 먼저 눌러서 엇갈렸는지

자꾸 Null이라고 떴음.. 재실행했더니 됐다! ㅠㅠ

 

Create Empty로 SpawnPoint를 만들고

NPC의 위치를 0 0 0으로 수정한 다음

 

SpawnPoint채로 복사해서

npc 10마리 아무데나 지정

 

하이어라키 창에서 원하는 거 검색하면 그거만 볼 수 있음

npc하나만 리소스로 가져오고 다 지워줌

 

KillCtrl.cs 작성

using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using UnityEngine;

public class KillCtrl : MonoBehaviour
{
    public Transform[] spawnPoints;

    List<int> number = new List<int>();
    // 초기화
    public void KillReset()
    {
        number.Clear(); // 비워주기

        for (int i = 0; i < spawnPoints.Length; i++)
        {
            if (spawnPoints[i].childCount != 0)
            {
                Destroy(spawnPoints[i].GetChild(0).gameObject);
            }
        }
        NPCSpawn();
    }
    
    // NPC 스폰
    public void NPCSpawn()
    {
        int rand = Random.Range(0, 10);

        for (int i = 0; i < 5;)
        {
            // 중복되었다면
            if (number.Contains(rand))
            {
                rand = Random.Range(0, 10);
            }
            // 중복되지 않았다면
            else
            {
                number.Add(rand);
                i++;
            }
        }
        // 스폰
        for (int i = 0; i < number.Count; i++)
        {
            Instantiate(Resources.Load("NPC"), spawnPoints[number[i]]);
        }
    }
}

 

 

킬 화면 시작하면

랜덤으로 NPC가 생기고 KILL 버튼 쿨타임과 쿨타임이 지나면 버튼 활성화 되는 것 확인!


 
5초 쿨타임, NPC 중복없는 랜덤 배치를 배워보았다
강의를 다 듣고 미션과 킬을 다 합쳐 게임을 만들어보면 좋겠다는 생각이 들었다.
728x90
반응형