2024. 2. 20. 20:47ㆍGame Develop
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/019.gif)
퍼즐게임 개발일지 10편
개발자의 네이밍 센스
![](https://blog.kakaocdn.net/dn/ypc3u/btsE9Iei9rX/wwpk9h3N4vX6O58lTOQ8Qk/img.png)
![](https://blog.kakaocdn.net/dn/csSqG6/btsE6GV38LO/GiivXOFdXN5tirruPG9GW0/img.png)
![](https://blog.kakaocdn.net/dn/cskXNX/btsE7uOkOHj/hgj6IopXoaZfusXmhXmRY0/img.png)
전에 그림으로 설명하면서
게임의 구조를 변경 했었는데
오늘은 거기에 그룹이라는걸 더 추가했다
일단 1씬에만 들어가는 퍼즐 조각만 해도
약 870개 정도 된다
870개 정도의 퍼즐들을
한 씬에 다 때려넣으면
에반데.......하고
유저들이 나갈 가능성이 높기에..
그룹 0에 있는 퍼즐들을
모두 맞추면 그룹 1을 맞출 수 있게 됨
그룹 1을 맞추면 2..3..
이런식으로 해서 모든 그룹의
퍼즐들을 맞추면 다음 스테이지로
넘어가게끔 수정할 것이다
![](https://blog.kakaocdn.net/dn/R1i2C/btsE6RXqUAS/7aOZVrtoR5LZFzhkYAQ0e1/img.png)
근데 이름보면 알 수 있듯이..
너무 보편적인 이름들이다..
그렇다 난 네이밍 센스가 없다;;;;
진짜 이름 짓는거 너무 어렵다
![](https://blog.kakaocdn.net/dn/ZCEoo/btsE7oACLtm/IIGBS0KhQfkgFyxAZ2t9U1/img.png)
오늘도 돌아온 Scriptable Object
![](https://blog.kakaocdn.net/dn/oJaR3/btsE7nhrOXp/8H7EULcWwl25hhQErol4z0/img.png)
기존 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);
예를 들어 이런식으로 쓰면
아마 좌표값이 난리날게 분명.
![](https://blog.kakaocdn.net/dn/rPTUV/btsE99bCEQx/3SGgKbILwAoFUTvHzfmUyK/img.png)
Group Script를 넣어주고
Storage와 ID를 할당해주었다
![](https://blog.kakaocdn.net/dn/cr7fOC/btsFaKWWlCe/b9inGRJ2GEheGTodwwg0SK/img.png)
자신의 그룹 객체들을 잘 생성했고
퍼즐도 잘 맞춰진다
![](https://blog.kakaocdn.net/dn/bakMPa/btsE9NUalNI/rTApjUao68FapkVzAdkKq0/img.png)
그리고 Board에 puzzleNum이라는
int형을 하나 추가했다
이건 현재 자신의 판에
속한 퍼즐 조각들의 갯수를 말한다
![](https://blog.kakaocdn.net/dn/dmcVrY/btsFabHgOVI/eoAe0D2P31sFbNEl8vERbk/img.png)
![](https://blog.kakaocdn.net/dn/CGNB2/btsE8N72NNo/BBINKN61Af2LS7E13kOv10/img.png)
왜 이 기능을 추가했냐면
퍼즐을 맞는 위치에 추가하면
퍼즐이 자신의 부모에 맞게
Instantiate되기 때문에
현재 내 자식의 개수가
전체 자식의 개수와 동일하다?
그건 곧 현재 판에 있는
퍼즐들을 모두 맞췄다는 뜻이기 때문이다
![](https://blog.kakaocdn.net/dn/p4FNQ/btsE7pGlv04/kMkaoOoO8NVovMxJHtQTfk/img.png)
그리고 bool 클래스를 하나 추가했다
이 클래스는 CorrectPuzzle 맨 마지막에 붙였다
이게 뭔 소리냐면
퍼즐 정답! -> 퍼즐 다 맞췄어요? -> 네/아니오
이 뜻이다
![](https://blog.kakaocdn.net/dn/F95NC/btsE9ZUqpxb/ZmE2yEUPyb05ixNnt6CSOk/img.png)
실험을 위해 Debug를 하나 심었다
![](https://blog.kakaocdn.net/dn/YGQAz/btsE6WqPHBx/bmaOlztdkTNR7JEJkejkrK/img.png)
![](https://blog.kakaocdn.net/dn/lYl41/btsFaOrwzrp/okT9u22Lkk0NB7bSfdvsK1/img.png)
왼쪽 사진을 보면 퍼즐이
맞았을 때만 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 |