본문 바로가기

분류 전체보기

(76)
[Unity] InputAction 내 이벤트 초기화 InputAction 내의 이벤트들을 모두 지워야하는 상황이 있었다. InputAction 클래스의 메소드를 살펴보니, 다음과 같은 두 함수가 있었다. inputAction.Reset(); inputAction.RemoveAction(); 직접 실험해본 결과, inputAction.RemoveAction(); 함수는 해당 InputAction의 모든 Actions를 삭제하는 함수였다. inputAction.Reset(); 함수는 inputAction 내의 등록된 이벤트들을 깔끔하게 지워주는 함수였다. 씬이 넘어갈 때 오브젝트가 사라지더라도 등록된 Input 이벤트들은 그대로였다. 유지할 필요없다면 Reset() 함수로 지워주자.
[Unity] UI Text 가비지 제거, 삽질의 기록 ※ 해당 글은 ToString()으로 인해 발생한 가비지를 제거하려는 시도로, 삽질이 많습니다. 결론은 3. 결과부터 참고하시면 됩니다. ※ 테스트 시 자주 프레임 드랍이 되는 것을 목격하고, 유니티 프로파일러로 분석하고 있었다. 원인은 자주 일어나는 가비지 콜렉터 실행. 프로파일러로 가비지가 쌓이는 부분을 추적했다. void UpdateScorePanel() { scoreText.text = GameManager.Instance.score.ToString(); } 해당 함수의 내용은 위와 같았다. int값인 score를 ToSting()으로 변환시킬 때마다, 가비지가 생성된 것. 이 함수는 플레이어가 점수를 얻을 때마다 실행되므로, 계속된 플레이 시 부담이 클 것 같았다. 그래서 이 부분을 없애보기로 ..
[Unity] DOTween - 회전하지 않고 물체 주위 맴돌기 ※본 글에서는 유니티 에셋 스토어의 DOTween (HOTween v2) 무료 버전을 사용합니다. ※본 글에선 DOTween 에셋의 설치 및 사용법에 대해선 다루지 않습니다. 먼저, 스프라이트와 버튼 하나를 생성하겠습니다. 결과를 잘 보여주기 위해 버튼으로 했지만, 스프라이트나 다른 오브젝트로 만들어도 상관 없습니다. 하이어라키 창에서 우클릭 - Create Empty로 빈 오브젝트를 생성한 후, 이름을 Button Object로 바꿔줬습니다. 미리 생성해둔 버튼을 Button Object 아래에 넣어 자식 오브젝트로 만들어줍니다. ※자식 오브젝트로 넣기 전, 인스펙터 창에서 Button Object의 Transform 컴포넌트 조정해, 반드시 위치를 0, 0, 0으로 만들어줍니다. Button Obje..
[Unity] 9-Slicing Sprites - 하나의 이미지로 여러 UI 디자인하기 먼저 스프라이트를 적용할 버튼을 만들겠습니다. 그다음, 그려둔 UI를 Project 창에 임포트합니다. 저는 미리 그려둔 파일을 가져왔습니다. 가져온 이미지를 선택하고, 인스펙터 창의 Sprite Mode 아래 Sprite Editor 버튼을 눌러줍니다. 처음 열어보면 이미지가 이렇게, 하나로 나타나게 됩니다. 여기서 상하좌우에 있는 초록색 네모를 드래그하거나, 아래쪽 Border의 L/T/R/B에 값을 넣으면 초록색 선이 생깁니다. 이 선들은 이미지를 나눌 경계를 뜻하며, 오른쪽처럼 전부 했다면 이미지는 총 9칸으로 나눠지게 됩니다. (Sprite Mode를 Multiple로 설정할 때와 달리, 이미지가 여러 장이 되지는 않습니다.) 위쪽의 Apply를 눌러 저장하고 닫아줍니다. 이제 하이어라키 창에서..