Bomb Kirby Running
Cat Life - GT-K
퍼즐게임 개발일지 - 10

2024. 2. 20. 20:47Game Develop

퍼즐게임 개발일지 10편

개발자의 네이밍 센스

일단 블로그 시작 전에 동생이 오늘 졸업했다 졸축졸축!! 🎉

 
 

 
전에 그림으로 설명하면서
게임의 구조를 변경 했었는데
오늘은 거기에 그룹이라는걸 더 추가했다
 
일단 1씬에만 들어가는 퍼즐 조각만 해도
약 870개 정도 된다
870개 정도의 퍼즐들을
한 씬에 다 때려넣으면
에반데.......하고
유저들이 나갈 가능성이 높기에..
 
그룹 0에 있는 퍼즐들을
모두 맞추면 그룹 1을 맞출 수 있게 됨
그룹 1을 맞추면 2..3..
이런식으로 해서 모든 그룹의
퍼즐들을 맞추면 다음 스테이지로
넘어가게끔 수정할 것이다
 

Puzzle -> Board -> Group -> Stage

근데 이름보면 알 수 있듯이..
너무 보편적인 이름들이다..
그렇다 난 네이밍 센스가 없다;;;;
진짜 이름 짓는거 너무 어렵다
 
 

오늘도 돌아온 Scriptable Object
 

 
기존 Scene에 있는 퍼즐 뒷 배경을
Prefab으로 넣어주고
Hierachy에 있는건 지워줬다 
그리고 방금 만든 Group Storage에
그룹에 맞게 배경 오브젝트들을
분리해서 넣어주었다
 

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

public class Group : MonoBehaviour
{
    public GroupStorage groupStorage;
    public GroupID groupID;

    void Start()
    {
        InstantiateGroupItems();
    }

    void InstantiateGroupItems()
    {
        List<GameObject> groupItems = groupStorage.GetGroup(groupID);

        if (groupItems != null)
        {
            foreach (GameObject item in groupItems)
            {
                GameObject instantiatedItem = Instantiate(item, transform);
                RectTransform rectTransform = instantiatedItem.GetComponent<RectTransform>();
            }
        }
        
    }
}

 
그리고 Group Script에
선택한 GroupID에 맞는 오브젝트들을
자신의 자식으로 생성하게 해주었다
 
퍼즐 객체들은 Canvas 안에 있기 때문에
저렇게 생성해주어야 한다
 
Instantiate(item, item.transform.position, Quaternion.identity, transform);
예를 들어 이런식으로 쓰면
아마 좌표값이 난리날게 분명.
 

 
Group Script를 넣어주고
Storage와 ID를 할당해주었다
 

 
자신의 그룹 객체들을 잘 생성했고
퍼즐도 잘 맞춰진다
 

 
그리고 Board에 puzzleNum이라는
int형을 하나 추가했다
이건 현재 자신의 판에
속한 퍼즐 조각들의 갯수를 말한다
 

 
왜 이 기능을 추가했냐면
퍼즐을 맞는 위치에 추가하면
퍼즐이 자신의 부모에 맞게
Instantiate되기 때문에
현재 내 자식의 개수가
전체 자식의 개수와 동일하다?
그건 곧 현재 판에 있는
퍼즐들을 모두 맞췄다는 뜻이기 때문이다
 

그리고 bool 클래스를 하나 추가했다
이 클래스는 CorrectPuzzle 맨 마지막에 붙였다
이게 뭔 소리냐면
퍼즐 정답! -> 퍼즐 다 맞췄어요? -> 네/아니오
이 뜻이다
 

실험을 위해 Debug를 하나 심었다
 

 
왼쪽 사진을 보면 퍼즐이
맞았을 때만 Debug가 찍혔다
 
그러나 판 안의 모든
조각들이 맞춰진게 아니라서
False가 출력되고 있는 상황이다
 
오른쪽은 모든 퍼즐들을 맞추자
비로소 True가 된 상황이다
 
이걸 이용해서 모든 board의
IsPuzzleComplete가 true일 때
다음 그룹으로 넘어가게 할 것이다
 
그렇게 모든 그룹이 완성되면
다음 스테이지로 넘어가는 것이다!
 

'Game Develop' 카테고리의 다른 글

퍼즐게임 개발일지 - 12  (0) 2024.02.22
퍼즐게임 개발일지 - 11  (0) 2024.02.21
Unity의 Default Orientation  (0) 2024.02.20
퍼즐게임 개발일지 - 9  (0) 2024.02.19
퍼즐게임 개발일지 - 8  (2) 2024.02.18