본문 바로가기

Unity3D/Tip5

유니티 이벤트 시스템 최적화하기 - Graphic Raycaster 제거하기 이벤트 시스템이 렉을 유발하다 어느 순간부터 유니티에서 EventSystem.Update()가 엄청난 렉을 유발했다. 원인은 바로 그래픽 레이 캐스터(Graphic Raycaster)였다. 아무 생각 없이 캔버스를 생성해놨는데, 미처 그래픽 레이 캐스터를 지우지 못하고 방치했더니 프로파일러가 엄청난 스파이크를 발생시키고 있었다. 그래픽 레이 캐스터(Graphic Raycaster) 그래픽 레이 캐스터는 캔버스에 레이저(Ray)를 발사하여 UI에 마우스가 올려졌는지, 클릭하였는지 등을 검사하는 컴포넌트이다. 그래픽 레이 캐스터 - Unity 매뉴얼 (unity3d.com) 그래픽 레이캐스터 - Unity 매뉴얼 그래픽스 레이캐스터는 캔버스에 레이캐스트를 하는 데 사용합니다. 레이캐스터는 캔버스의 모든 그래.. 2021. 8. 10.
유니티 2D에서 Collider와 Rigidbody 최적화에 관하여 ***테스트 결과와 결론이 궁금하신 분들은 마지막 3줄 요약을 확인해주세요! 개요 불과 얼마 전까지, Rigidbody는 물리 연산을 사용하기 때문에 중력 같은 물리 처리가 필요 없다면 Rigidbody를 부착하지 않는 것이 더 효율적이라 생각했다. 그러나 최적화 팁을 보면 오히려 반대였다. ★ 10. Unity 최적화 기법 :: 큰 꿈을 그리는 프로그래머의 공간. (tistory.com) ★ 10. Unity 최적화 기법 Unity 3D :: 게임 최적화 기법 [최적화의 시작은 병목 파악부터] # CPU - 너무 많은 DP CALL - 복잡한 스크립트나 물리 연산 # Vertex Processing - 너무 많은 버텍스들 - 버텍스당 너무 많은 연산 (Verte.. loadofprogrammer.tis.. 2021. 8. 9.
Unity VSCode에서 오류가 날 때: CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 이번 글은 아래의 Unity Answer에 있는 답변글을 참조하였습니다. VS Code does not find some classes. cs0246/cs0103 - Unity Answers VS Code does not find some classes. cs0246/cs0103 - Unity Answers answers.unity.com Unity VSCode에서 오류가 날 때 유니티에서 VSCode를 사용할 때 다음과 같은 오류가 발생할 때가 있습니다. 한글 cs0246: 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 영문 cs0246: The type or namespace name could not be found (are you mi.. 2020. 12. 26.
유니티 프로파일러(Profiler)를 이용해 성능 개선하기 게임을 만들 때 제일 골치 아픈 것은 최적화이다. 최적화가 정말 잘 된 게임, 이른바 갓적화인 게임은 낮은 성능의 컴퓨터로도 아주 섬세한 3D 그래픽을 60 프레임으로 표현할 수 있다. 반대로 최적화가 안 된 게임, 속된 말로 개적화 게임은 아주 단순한 2D 도트 그래픽 게임조차 엔비디아 RTX 그래픽 카드에서 40 프레임이 나오지 않을 수 있다. 물론 PUBG 같은 배틀 로얄 장르는 최적화를 잘해도 저사양 컴퓨터에서는 프레임 드롭이 심할 수 있다. 이는 타 장르에 비해 플레이어의 수가 많고 맵이 넓어서 처리해야 할 연산량이 많은 데다가, 실시간으로 게임을 진행하기 때문이다. 이러한 장르적 차이나 게임 시스템 상의 차이로 인해 피치 못하게 성능 저하가 일어나기도 한다. 그러나 이렇게 원인을 알 수 있는 .. 2020. 10. 4.
VSCODE (Visual Studio Code) 자동 완성 기능이 안 될 때(2023.9.11 추가) 해당 글은 Vscode를 사용하는 유니티 C# 유저들을 위한 가이드입니다. 자동 완성이 안 될 때 참고해주시면 좋을 거 같아요. +++ 2023.9.11 추가: 먼저 읽어주세요!! 아래 내용은 22년도까지는 유효한 방법이었지만 지금은 Vscode에서 Unity를 제공하게 되면서 조금 사정이 달라진 것 같습니다. 이미 아시는 분들이 많으시겠지만 vscode의 익스텐션에 Unity가 추가되었습니다. 유니티에서 사용할 수 있는 Visual Studio Code 익스텐션으로 기존의 C#이 제공해주던 기능을 유니티에 특화하여 제공해주는 것으로 보입니다. 만약 해당 익스텐션이 설치되어 있지 않다 하시는 분들은 바로 설치해주시면 좋을 것 같습니다. Assets->Open C# Project를 눌러서 해결되었던 것들이.. 2020. 8. 12.