스파르타내일배움캠프 41

[TIL] 내일배움캠프_Unity ToolTip (feat.null 이 널 좋아해) ,내배캠 인터뷰 후기

ToolTip 어제 개인과제를 진행하면서 인벤토리에 ToolTip을 만들면서 새로 배웠던 내용이 생각나서 다시 복습 해보았다 ToolTip이란 ? 인벤토리에 아이템이 든 슬롯에 마우스 커서를 두면 해당 아이템에 대한 정보를 나타내는 패널이다 우선 ToolTip을 설정하는 클래스를 만들고 이 ToolTip 을 컨트롤 하는 클래스를 따로 만들어 분리를 시켜주었다 그리고 위치를 마우스 커서를 따라다닐 수 있게 설정해주고 패널이 화면을 넘어가서 짤리지 않게 인벤토리 패널의 반을 넘으면 피벗을 변경시켜 패널의 좌우를 변경시켜주었다 그리고 IPointerEnterHandler 라는 인터페이스를 상속 받아서 마우스 커서가 이 스크립트가 붙은 slot 오브젝트에 들어가면 발동시켜주는 OnPointerEnter(Poin..

TIL 2023.09.22

[TIL] 내일배움캠프_Unity GroupBy, StringBuilder, UnityEducation Day 2023

알고리즘 코드카타 오늘 숫자짝궁이라는 프로그래머스의 알고리즘을 풀면서 사용했던 방법이 참 인상적이었다 일단 처음에는 이중 for문과 string을 사용하여 문제를 풀어보았다 하지만 시간 초과 !!! 그렇다면 이중 for문을 하지 않고 또 어떤 방법이 있을까 생각하고 찾아보던 중 GroupBy를 통해 이중 for문을 없앨 수 있었다 하지만 또 시간 초과 !!! 그렇다면 뭐가 문제일까 생각하다가 전에 StringBuilder에 대해서 들어보았던 것을 기억해내었고 이에 대해 찾아보며 적용시켜보았고 결국 성공 !! 나는 아직 구현에 대해서 부터도 부족하다고 생각하는데 그래도 이번에는 구현은 잘 했으나 다양한 방법에 대해서 부족했던것 같다 이런 부분은 알고리즘을 많이 풀어보면 익힐수 있으니 기억만 잘 해놓자 Gr..

TIL 2023.09.15

[TIL] 내일배움캠프_Unity 팀과제(feat.코루틴)

플레이어가 스턴에 걸리면 깜빡거리는 효과를 적용하기 위해 코루틴을 공부해서 적용해보았다 코루틴 : 비동기적으로 실행되며, 일시 중단하거나 일정 시간 동안 대기할 수 있다 * 코루틴을 사용할 때 보통 Update 말고 다른 곳에서 반복 실행하고 싶을 때 쓰는 느낌? *비동기적이란? : 다른 작업을 기다리지 않고 계속 진행될 수 있는 상태 즉, 작업이 완료되기를 기다리지 않고 다른 작업을 수행할 수 있도록 함 IEnumerator StunEffect() { // WaitForSeconds 객체를 미리 생성하고 변수에 할당하여 가비지 생성을 최소화 WaitForSeconds waitTime = new WaitForSeconds(0.2f); for(int i =0; i

TIL 2023.09.13

[TIL] 내일배움캠프_Unity 팀과제 (feat.UI 구조설계)

어제 특강에서 유니티에서 Find 함수를 쓰면 편하지만 하이라이키를 다 뒤져서 찾아다니기 때문에 많을 때는 찾기 힘들어져서 메모리상 좋지 않고, 언제든지 변경될 수 있는 부분이라 사용하지 않는게 좋다는 것을 배웠다 그 부분에 대해 튜터님에게 대체할 방법이 무엇이 있을까요? 라는 질문을 했었다 답변 : 한 캔버스 당 스크립트를 만들어 UI 구조를 분리하고 그 분리한 내용을 싱글턴화를 한 UIManager에서 Dictionary에 저장해서 접근 하는 방법이 좋다 또한 [Serialrizefield] private으로 설정하여 인스펙터에 할당해줘도 괜찮다 *추가로 유니티에서 처음 작업할 때 내용을 분리하지 않고 한 스크립트에 몰아서 작성하는데 (바로 나) 이것은 좋지 않은 방법이고 UI는 UI를 관리만 하고 ..

TIL 2023.09.12

[TIL] 내일배움캠프_Unity 깃허브 특강

오늘은 팀과제를 했지만 새로 배운 내용 보다는 로직 구현내용이 커서 깃허브 특강에 대해 메모한 부분을 추려서 적어보려 한다 깃허브 특강 협업할 때 git에 필요한 파일은 Assets Packages ProjectSettings 이 세가지만 있으면 된다 깃허브 만들 때 .gitignore 넣어서 만들기 Conflict 원인 같은 코드라인을 건들면 발생 해결 방법 각자 작업의 파트를 분리 (각 UI별로 할일을 나누는 것도 좋은 방법) 원인 유니티에서 씬 파일은 수정하기 어렵다 해결방안 작업의 씬도 분리하자 해당하는 씬에 필요한 기능과 UI끼리 나누면 된다 씬 위에 오브젝트가 프리팹으로 올라가 있을 때 프리팹을 열어서 수정하면 씬은 수정된것으로 취급되지 않는다 프리팹을 수정하여 프리팹을 올린다 하지만 프리팹도..

TIL 2023.09.11

[TIL] 내일배움캠프_Unity 팀과제 Button할당

팀 과제에서 맡은 StartScene을 만들면서 UI를 어떻게 관리할지 생각하다가 StartSceneController 스크립트를 만들어서 StartScene 의 전체적인 흐름을 관리하였다 아래는 버튼 오브젝트에 스크립트를 직접 할당하지 않고 더 깔끔하게 코드로 할 수있는게 뭐가 있을까 생각하다가 발견한 방법이다 버튼에 이벤트 할당하기 유니티에서 UI에 동작을 할당할 때는 간편하게 인스펙터에서 버튼 컴포넌트에 직접 할당을 해주는 방법이 있다 쉽고 직관적이지만 단점이 존재한다 1. 할당된 메서드가 visual studio에서 참조가 안된다 2. 미리 할당해놔야하기 때문에 동적으로 버튼의 동작을 바꿀 수 없다 AddListener로 버튼에 이벤트 할당하기 이를 해결하기 위해 Button에 onClick.Ad..

TIL 2023.09.09

[TIL] 내일배움캠프_Unity 팀 프로젝트, CommitMessage 규칙

개인과제 막 끝나니까 팀 프로젝트 시작 ! ,,, 사전캠프때 유니티로 팀 프로젝트를 하기는 했지만 그때와는 또 색다른 느낌이었다 이제는 뭔가 진짜 본격적으로 시작하는것 같다 그래서 일단 프로젝트를 시작하기 전에 알아야하거나 원활한 협업을 위해 규칙을 정했다 유니티를 깃허브로 협업할 때 주의할 점 - 팀원들과 유니티 프로젝트의 버전을 통일해야한다 - 유니티에서 파일을 binary 방식과 Text 방식을 통해 저장이 되는데 binary 방식으로는 사람이 읽기 어렵기 때문에 충돌이 나면 수정하기 어렵다 그리고 통일되어 있지 않다면 깃허브에서 변경사항을 받을 때 마다 유니티 에디터가 자기 에디터에 맞는 방식으로 강제로 바꿔버리기 때문에 개발자가 수정하지 않은 변경사항이 발생해서 다시 커밋되게 되고 에디터에 의해..

TIL 2023.09.08

[TIL] 내일배움캠프_Unity 개인 과제2

내일 12시까지 제출 해야해서 너무 바쁘게 만들었다.. https://shy-cover-b75.notion.site/Gather-c4ae8f0325904eecbd667372e018933a?pvs=4 Gather GitHub : https://github.com/phw97123/GatherTown.git shy-cover-b75.notion.site 오늘 버그 내용 Text Mesh Pro 한글 적용 안됨 해결 과정 : 1.원하는 폰트를 다운받아서 TextMeshPro Fonts 폴더에 넣는다 (없다면 하이라키창에 UI->Text 생성해서 Import TMP Essentials를 눌러서 생성) 2. Window- TextMeshPro- FontAssetCreator 눌러서 들어가기 Source Font F..

TIL 2023.09.06

[TIL] 내일배움캠프_Unity 개인 과제

본격적으로 개인과제 시작 ! 쓰고있던 ToDoList로는 점점 관리 하기 힘들어져서 9월 기념으로 노션도 만들었다 ! 오늘 구현한 내용은 노션에 잘 정리되어 있다 https://shy-cover-b75.notion.site/PROJECT-NAME-c4ae8f0325904eecbd667372e018933a?pvs=4 PROJECT NAME GitHub : shy-cover-b75.notion.site 노션에서 제일 중요한 내용을 작성해보자면 애니메이션 추가 기능 구현중 Idle 은 잘 재생되는데 Move 애니메이션은 재생되지 않는 버그를 발견했다 유니티 오류라고 생각하여 껐다 켜보기도 하고 애니메이션을 새로 만들어보기도 했는데 변화 없이 그대로였고, 게임 실행하면서 Animator가 어떻게 돌아가고 있는지..

TIL 2023.09.05

[TIL] 내일배움캠프_Unity 플레이어 저장, 유니티 입문 강의 완강

오늘도 어김없이 팀이 변경되었다 ! 그리고 나는 또 팀장이 되었다 !! 어색할 줄 알았는데 우리 팀 사람들은 활발하다 !!! (행복) 플레이어 정보 저장 저장 기능은 계속 해보고 싶었는데 매번 프로젝트를 진행할 때 마다 시간이 부족해서 구현할 수 없었다 그래서 이번 기회에 개인과제 때 만들었던 프로젝트에 기능 구현을 해보았다! Json이란 데이터 교환을 위한 경량의 텍스트 기반 형식으로 카 - 값 을 저장한다 데이터 저장은 직렬화와 역직렬화를 이용해서 이루어진다 *직렬화 : 객체를 저장 가능한 상태 혹은 전송 가능한 상태로 변환하는 것 역직렬화 : 직렬화의 반대로 특정 포맷 상태의 데이터를 다시 객체로 변환하는 것 Visual Studio에서 프로젝트- NuGet 패키지 - NewtonsSoft.Json..

TIL 2023.09.04