퍼즐의 정답을 전달하는 메서드를 인터페이스화 하여 확장성을 늘려주었습니다.
public interface INetworkPuzzle
{
public void SetPuzzleByNetwork(int[] hintNumbers);
}
public class NetworkPuzzleRepeater : NetworkBehaviour
{
//...생략
[ClientRpc]
public void SynchronizePuzzle1ClientRpc(int[] numbers, int puzzleIndex)
{
//TODO : 게임 매니저 싱글톤에 Puzzle 올려서 퍼즐에 이 내용 넣어주고 작동시키기
INetworkPuzzle puzzle = (INetworkPuzzle)PuzzleManager.Instance.subPuzzleList[puzzleIndex];
puzzle.SetPuzzleByNetwork(numbers);
}
}
public class Puzzle1 : Puzzle, INetworkPuzzle
{
//...생략
//다시 시작하거나 라운드를 통과하였을 때 리스트를 다시 배정하는 코드
private void SetRound()
{
//...생략
if(isNetwork)
{
int[] ints = numbers.ToArray();
GameManager.Instance.repeater.SynchronizePuzzle1ServerRpc(ints, listIndex);
Debug.Log("힌트 송신");
}
}
//...생략
public void SetPuzzleByNetwork(int[] numbers)
{
if (GameManager.Instance.networkGameManager.StudentId == NetworkManager.Singleton.LocalClientId) return;
Debug.Log("힌트 수신");
for(int i = 0; i < numbers.Length; i++)
{
Activatables.Add(Alters[numbers[i]]);
Observables.Add(candles[numbers[i]]);
}
StartHintCoroutine();
}
}
이후 추가할 퍼즐의 정답 정보를 int 리스트, 혹은 int 배열로 보낼 수 있다고 가정할경우 인터페이스를 통해 퍼즐의 정답 설정 메서드에 접근하면 확장성을 확보할 수 있다는 판단하에 메서드를 인터페이스화 하여 결과를 수신할 수 있게 해주었습니다.
이후, 인터페이스에 퍼즐의 성공, 실패시 사용할 메서드를 추가하여 퍼즐과 관련된 내용을 인터페이스를 통해 전달할 수 있도록 만들어줄 예정입니다.
오늘은 중간 발표로 인해 내용이 짧습니다.
중간 발표 결과 받은 피드백은 이렇습니다.
- 유저입장에서 컨셉을 알아보기 힘들다. 스토리 라인을 보여줄 방법을 찾는것이 좋아보인다.
- 멀티플레이의 경우 면접관이 테스트를 진행하기 힘들수 있다. 리드미나 다른 방법을 통해 면접관에게 게임을 어필할 방법을 만들어주어야한다.
- 현재 발표내용에 기술스택 관련 내용이 미비하다, 이 내용 역시 리드미에 적어주어야한다.
- 개발적으로만 설계되어 유저들에게 친화적이지 않다. 유저가 게임에 더 잘 접근할 방법을 주어야한다.
현재 게임 진행에 필요한 UI가 제작되지 않은 상태이다보니 여러모로 접근성이 떨어진다고 생각하고 있기 때문에, 퍼즐 결과 전달등의 내용을 마무리하면 UI를 본격적으로 제작해주어야 할 것 같습니다.
또한, 스토리라인을 보여줄만한 내용을 고민중입니다.
현재로써는 게임 시작후, 간단하게 자신이 무슨 역할인지, 어떤 플레이를 해야하는지 텍스트로 보여주는 방법을 사용하면 어느정도 스토리를 알려줄 수 있다고 생각하고 있습니다.
'내일배움캠프 > 프로젝트' 카테고리의 다른 글
팀 프로젝트 - 퍼즐 관련 멀티플레이 연결 (1) | 2024.12.19 |
---|---|
팀 프로젝트 - 유령 배치, Navmesh 동적 생성 (0) | 2024.12.17 |
팀 프로젝트 - 맵 데이터, 맵 생성 (0) | 2024.12.16 |
팀 프로젝트 - 아이템 기반 (1) | 2024.12.13 |
팀 프로젝트 - 맵 에디터 기반 제작 (0) | 2024.12.11 |