관련 링크 피드백에 따른 UI Manager 리팩토링Unity 개발 주제의 다양한 내용의 개인성장 개발 블로그jhoon8903.github.io해당 블로그에 UI 바인딩 코드를 참고하는 도중 오류가 발생하였다.문제 코드public void Binding(GameObject parent) where T : UnityEngine.Object{ T[] objects = parent.GetComponentsInChildren(true); // 오류 부분 Dictionary objectDict = objects.ToDictionary(comp => comp.name, comp => comp as Object); _objects[typeof(T)] = objectDict; Ass..
BUILD 2048게임 플레이개발 기간23.12.26 ~ 23.12.29개발 환경Unity 2022.3.2Visual Studio 2022Git (GitHub Desktop)1920 x 1080 FHD담당 기능타일 생성 및 관리URP를 활용한 3D 광원 효과DOTween 애니메이션관련 링크Github 링크 GitHub - psw1305/2048: 유니티로 만든 2048유니티로 만든 2048. Contribute to psw1305/2048 development by creating an account on GitHub.github.com가브리엘레 치룰리의 원작 2048 GitHub - gabrielecirulli/2048: A small clone of 1024 (https://web.archive.or..
1500000000000의 번제 개발 기간23.12.15 ~ 23.12.21개발 환경Unity 2022.3.2Visual Studio 2022Git (GitHub Desktop)1920 x 1080 FHD담당 기능게임 매니징전체적인 게임 로직 구성던전 방 랜덤 생성 & 진행 구현적, 아이템, 장애물 통합 작업오디오 시스템 & 사운드 리소스 추가코드 리팩토링 및 버그 수정관련 링크Github 링크 GitHub - psw1305/TeamProject-2DRoguelike: 팀프로젝트 2D 로그라이크팀프로젝트 2D 로그라이크. Contribute to psw1305/TeamProject-2DRoguelike development by creating an account on GitHub.github.com로..
로그라이크 방 오브젝트 생성방이 생성될 때 해당 방 타입에 맞는 오브젝트 생성 [아이템, 장애물, 적]기능 구현RoomBlueprint.cs[CreateAssetMenu(fileName = "RoomBlueprint", menuName = "Blueprint/Room")]public class RoomBlueprint : ScriptableObject{ [SerializeField] private Sprite floor; [SerializeField] private bool isReward; [Header("Object Position")] [SerializeField] private Vector2 rewardPosition; [SerializeField] private Lis..
기능 구현미니맵 구현에 필요한 Fields#region Fields[SerializeField] private Transform miniRoomContainer;private float cellWidth;private float cellHeight;private GameObject miniRoomPrefab;private GameObject[,] miniRoomArray;private Vector2Int currentPlayerCoordinate;private List visitedCoordinates = new List();#endregionminiRoomContainer : 미니맵 셀들이 배치되는 Transform ParentcellWidth : 미니맵 셀의 너비cellHeight : 미니맵 셀의 높..
기능 구현MoveToDesignativeRoom/// /// 방에 진입할 시, 좌표 설정 및 문 활성화 체크/// /// 들어간 방향/// 카메라 움직임 딜레이private IEnumerator MoveToDesignativeRoom(Vector2Int MoveDirection){ int x = _currentRoom.Coordinate.x + MoveDirection.y; int y = _currentRoom.Coordinate.y + MoveDirection.x; _currentRoom = _roomArray[x, y]; _currentRoom.OpenActivatedDoor(); Main.Game.Player.transform.position += new Vector3(M..
📌 연결된 문 생성 📄 Dungeon.cs private void CreateDungeon(){ // 방 생성을 위한 좌표 리스트 List alternativeRoomList = new(); List hasBeenRemoveRoomList = new(); // 특수 방 리스트 List specialRoomList = new(); ... ... ... LinkDoors(); // 방 문이 1개인 경우 => 특수 방으로 추가 foreach (Room room in _roomArray) { if (room != null && room.ActiveDoorCount == 1 && room != currentRoom) {..
기능 구현GameScene.cspublic class GameScene : MonoBehaviour{ #region Field [SerializeField] private int roomAmount; private Room _roomPrefab; private Room[,] _roomArray = new Room[20, 20]; #endregion #region Init private void Start() { Main.Resource.Initialize(); // #1. 방 생성 _roomPrefab = Main.Resource.GetObject("Room").GetComponent(); CreateLevel(..
기능 소개유니티에는 여러 데이터 저장 방식 중, Json으로 데이터를 저장하는 기능을 구현하도록 한다기능 구현DataManager.cspublic class DataManager{ public Dictionary Items = new(); public void Initialize() { Items = LoadJson("ItemData").MakeData(); } private TLoader LoadJson(string path) where TLoader : ILoadData { TextAsset textAsset = Main.Resource.Load(path); return JsonConvert.DeserializeObject(text..
기능 소개단순 Stat 값을 더하고 빼는게 아닌 Stat Modifier를 통한 관리더티플래그(Dirty Flag) 디자인 패턴 사용기능 구현StatModifierpublic enum StatModType{ Flat, PercentAdd, PercentMult,}public class StatModifier{ public readonly float Value; public readonly StatModType Type; public readonly int Order; public readonly object Source; public StatModifier(float value, StatModType type, int order, object source) ..