스파르타 내배캠54 스파르타 내배캠 Unity 3기 37일차 끝이 보인다~~(아님) PoolManager - 2 어제는 PoolManager의 내부 클래스 Pool 에 대해 작성했다. 그렇다면 PoolManager 자체에선 어떤 역할을 하는지 오늘 작성해보자. 일단 내부클래스에 Pool 이 있다는것은... PoolManager 에서 각 오브젝트에 대해 모든 Pool 을 관리한다는 뜻이고 이 Pool 들을 관리하기 위해선 어떠한 자료구조가 필요한데 Dictionary를 쓰도록한다. private Dictionary _poolDict = new Dictionary(); Key 로 string을 사용한다. 그럼 string은 어떤것이 들어가는 것일까? 바로 프리팹 원본의 이름이다. public void CreatePool(GameObject origin, int cou.. 2024. 2. 14. 스파르타 내배캠 Unity 3기 36일차 이번 과제는 진짜... 어렵다고 느끼는건 로직을 처음 써보는거라 그렇겠지??? 익숙해지면 나아질거야... PoolManager - 1 자동화의 두번째 PoolManager... 오늘은 PoolManager의 내부 클래스인 Pool을 작성해본다. PoolManager는 Pooling을 사용하는 모든 오브젝트에 대한 Pool을 가지고 그 Pool들을 총괄하는 역할이다. 그리고 내부 클래스 Pool 은 각각의 오브젝트에 대한 Pool이다. 기본적으로 가지고있어야 하는 것에는 해당 오브젝트의 오리지널. public GameObject Origin { get; private set; } 그리고 실제 사용 시, 오브젝트가 들어있는 자료구조에서 하나씩 써야한다. 여기선 Queue를 사용. Queue _poolQueu.. 2024. 2. 13. 스파르타 내배캠 Unity 3기 35일차 (빨리 쓰고 본가 가야 함) 다들 새복많! UI 자동화 3 - UI를 씬에 보여주기 (UI Manager) 어제까지 한 내용에서는 UI 내부의 자동화 방식을 보여줬다. 그렇다면 그렇게 자동화 해놓은 UI를 아무것도 없는 씬에 불러오는 방법은? 다음은 예시 화면이다. 다음과 같은 메인 화면에서 Sign Up 버튼을 누르게 되면 회원가입 창이 나오게 된다. 이 때 회원가입 UI가 생성되는 방식은? UIManager 코드를 보자. public class UIManager { public GameObject Root { get { GameObject root = GameObject.Find("@UI_Root"); if (root == null) { GameObject go = Resources.Load($"Pr.. 2024. 2. 9. 스파르타 내배캠 Unity 3기 34일차 연휴라고?!?! 아 본가가면 그 동안 프로젝트 못하는데... 아... 아... ㅏ... UI 자동화 2 - 원하는 이름의 T 타입을 가진 자식 찾기 저번에 자동화 TIL 에서 Bind 와 Get 함수로 UI 오브젝트의 자식들을 검사해 원하는 UI 컴포넌트들을 사용하는 방법을 썼다. 그런데 Bind 에서 자식을 검색할 때 어떤 방식으로 검색을 할까? 그걸 알아보자. 다음은 names[i] 라는 이름의 T 컴포넌트를 가진 자식오브젝트를 찾기위해 쓰인 코드이다. objects[i] = Util.FindChild(gameObject, names[i], true); Util 클래스는 범용적으로 쓰일 유틸리티 클래스이므로 static으로 만들었다. 그리고 다음은 실제 자식을 찾는 FindChild 함수이다. pub.. 2024. 2. 8. 스파르타 내배캠 Unity 3기 33일차 자동화 완전 편함 ㅋㅋ 오늘은 과제하면서 기능적으로 몰랐던 부분이 있었는데 생각해보니 어제 미니 발표회를 진행하며 팀원분께서 꿀팁으로 알려주신 부분이었고 바로 적용해서 해결한 것만 쓰고 자동화는 다음에 이어서 써야겠다. Content Size Fitter 인벤토리를 만드는 방식에는 여러가지가 있겠지만 인벤토리 창이 있고 보이는 창은 제한되어 있지만 스크롤을 통해 안 보이는 부분을 보이게 하는 방식도 있다. (줄여서 폰으로 웹툰 보는 방식) 유니티에서 이 방식으로 구현을 하기 위해서 Scroll View 를 사용하면된다. Scroll View 를 만들어 주고 어느정도 꾸며주면 다음과 같은 화면이 된다. Scroll View 오브젝트에 Scroll Rect 컴포넌트가 있고 인스펙터 상에서 여러 기능을 다룰 .. 2024. 2. 7. 스파르타 내배캠 Unity 3기 32일차 생각났다! 뭐였더라? 오늘은 챌린지 세션에서 튜터님이 해주신 말씀이 너무 와 닿았다. "기능만 구현하고 나중에 포트폴리오를 쓰려고 하면 의외로 쓸 게 없어요." 이젠 어떻게 구조를 잡을 것인지 생각하면서 코딩하는 연습을 해야 할 때가 온 것이겠지... ui 자동화 첫 걸음 이제껏 모든 UI 관련을 [SerializeField] 나 public 으로 Inspector 상에서 드래그 드롭 방식으로 연결해 줬었다... 혼자 작업할 땐 혼자 하고 그냥 당장 내가 편하니까 이런 방식을 고수해왔었지만 이제 이 방식도 졸업해야겠지. 어휴 어지럽다;;; 동적 생성과, UI 자동화를 위해 새로운 방법을 써보자. UI_Base 클래스와 Bind / Get 그리고 Type UI_Base 클래스는 모든 UI 가 상속받을 부모.. 2024. 2. 7. 스파르타 내배캠 Unity 3기 31일차 캠프 시작하고 한 동안 체중계 건전지가 없어서 몸무게를 못재고 있었다. 저번주에 사우나에서 쟀을 때 2달전보다 5kg 줄어있던데... 사실이면 진짜 심각한데??? 내일은 건전지 꼭 사야지 [System.Serializable] 그리고 래핑 클래스 오늘은 짧게! 개인과제를 하면서 날 괴롭혔던 두 가지를 알아보고자 한다. 유니티에서 Json을 이용하여 PlayerPrefs 저장 근데 저장해야 되는게 class 를 담은 List 리스트에 담길 Account 클래스 public class Account { public string id; public string name; public string pw; public int cash; public int balance; } public List _saveAcco.. 2024. 2. 5. 스파르타 내배캠 Unity 3기 30일차 (애써 외면해 본다...) UI쪽과 관련된 일은 정말정말 노가다성이 많긴 하구나...(사실 다 그럴지도?) Phase.Started / Phase.Performed 어제에 이어 InputSystem을 조금더 알아보자. 플레이어의 인풋을 받아오는 과정에서 Invoke Unity Events 방식의 다른 점 중, phase 부분에서 의문이 생겼다. public void OnMoveInput(InputAction.CallbackContext context) { if (context.phase == InputActionPhase.Performed) { _curMovementInput = context.ReadValue(); } else if(context.phase == InputActionPhase.Cance.. 2024. 2. 2. 스파르타 내배캠 Unity 3기 29일차 그런거였어??? 오늘 특강 내용 중 일부는 예전에 독학할 땐 영상을 몇 번을 돌려봐도 이해가 안 됐던 것들... 이번 특강에서 이해 해버렸다. 그 강의도 다시 봐야겠는걸? InputSystem... 근데 Unity Events 를 곁들인 저번에 TIL로 작성을 했던 주제이지만 이번엔 강의에서 이벤트를 호출하는 방식이 SendMessage 방식에서 InvokeUnityEvents 로 바뀌어서 다시 쓴다. 사실 SendMessage가 성능면에서 많이 안 좋다고 들었기 때문에 배우면서도 찜찜했는데 잘 됐다. 이번엔 Player의 움직임을 PlayerController 로 모두 해결한다. 코드가 조금 기니 기능별로 잘라서 보도록 하자. using UnityEngine.InputSystem; 먼저 InputSys.. 2024. 2. 1. 이전 1 2 3 4 5 6 다음