사생활 보호 설정
https://gamjia.tistory.com
Updated News
Mini Rooms
답글수 [0]
What Friends Say
한마디로 표현해봐~
1촌평 관리
퍼즐게임 개발일지 - 10
GamJia 2024. 2. 20. 20:47
퍼즐게임 개발일지 10편개발자의 네이밍 센스
전에 그림으로 설명하면서게임의 구조를 변경 했었는데오늘은 거기에 그룹이라는걸 더 추가했다 일단 1씬에만 들어가는 퍼즐 조각만 해도약 870개 정도 된다870개 정도의 퍼즐들을한 씬에 다 때려넣으면에반데.......하고유저들이 나갈 가능성이 높기에.. 그룹 0에 있는 퍼즐들을모두 맞추면 그룹 1을 맞출 수 있게 됨그룹 1을 맞추면 2..3..이런식으로 해서 모든 그룹의퍼즐들을 맞추면 다음 스테이지로넘어가게끔 수정할 것이다
근데 이름보면 알 수 있듯이..너무 보편적인 이름들이다..그렇다 난 네이밍 센스가 없다;;;;진짜 이름 짓는거 너무 어렵다
오늘도 돌아온 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일 때다음 그룹으로 넘어가게 할 것이다 그렇게 모든 그룹이 완성되면다음 스테이지로 넘어가는 것이다!