본문 바로가기

Unity Engine

(14)
유니티 Fog of War 전장의 안개 구현하기 이 포스트에서는 아래의 저장소 소스코드를 토대로 통해 전장의 안개를 구현하는 한 가지 방법을 제시한다. https://github.com/LeLocTai/Fog-of-war GitHub - LeLocTai/Fog-of-war Contribute to LeLocTai/Fog-of-war development by creating an account on GitHub. github.com 필요 지식 이 포스트를 읽기 전에 Field Of View를 구현하는 방법을 알고 있어야 한다. 위의 저장소가 Field Of View 구현을 기반으로 안개를 구현하고 있기 때문이다. 아래 시리즈를 보지 않았으면 먼저 공부하도록 한다. https://nicotina04.tistory.com/197 https://nicoti..
유니티 vscode 자동완성 안 되는 경우 intellisense 해결 유니티의 스크립트 에디터로 vscode를 쓰는 사람은 어느 날 겪는 문제가 있다. 바로 자동완성이나 메서드 추적을 하는 intellisense가 되지 않는 것 유니티를 처음 세팅하는 경우 다음 사항을 체크해봐야 한다. Omnishapr log 살펴보기 vsocde의 output 탭을 보면 Omnisharp Log가 자동으로 뜰 텐데 여기를 먼저 보자. 어셈블리를 찾을 수 없다고 나오면 필요한 설치가 아직 되지 않은 경우이다. 로그에 뜬 닷넷 프레임워크의 개발자 팩을 다운로드 하도록 하자. 반드시 로그에 뜬 버전으로 받아야 한다. https://dotnet.microsoft.com/en-us/download/dotnet-framework Download .NET Framework | Free officia..
유니티 UI 프리팹을 부모와 맞추기 유니티에서 C# 코드로 UI 프리팹을 instantiate 하여 SetParent를 하면 의도치 않은 결과를 볼 수 있다. 위는 그리드 레이아웃으로 정렬이 된 오브젝트에 새로운 이미지를 추가했을 때 레이아웃을 무시하고 배치된 경우다. 이 문제가 왜 일어나는지 알기 위해선 SetParent에 worldPositionStays라는 매개변수에 대해 이해할 필요가 있다. 유니티 공식 docs에는 이 매개변수에 대해 다음과 같이 설명하고 있다. If true, the parent-relative position, scale and rotation are modified such that the object keeps the same world space position, rotation and scale as b..
유니티 엔진 JsonUtility 다루기 - JSON 읽기 이 포스트에서는 유니티 엔진에서 자체적으로 JSON을 다루게 해주는 JsonUtility를 통해 저장된 JSON 파일을 읽는 법을 배울 것이다. 읽는 사람이 JSON의 구조를 이해하고 있다고 가정하고 작성한다. JSON을 잘 모르면 모질라 재단에서 친절하게 설명하고 있으니 보고 오도록 하자. 자바스크립트도 어느 정도 공부하면 더욱 좋을 것이다. 유니티 엔진을 다루면서 특정 데이터를 보관할 일이 있다. 아이템의 능력치나 기타 유니티 내 스크립트에 하드 코딩하기 껄끄러운 대상은 보통 XML 또는 JSON으로 보관한다. 유니티 엔진에는 자체적으로 JsonUtility 모듈을 가지고 있어 JSON 포맷을 관리할 수 있게 해 준다. 지원하는 기능이 적다는 단점이 있지만 충분히 작은 프로젝트에서는 JsonUtili..
유니티 Shaderlab CGPROGRAM VS CGINCLUDE 남의 셰이더 코드를 보면 셰이더 언어를 사용할 때 ~PROGRAM으로 시작하거나 ~INCLUDE로 시작하는 경우가 있다. 이 둘의 차이는 공식 docs에서 설명하고 있다. 쉽게 말해 INCLUDE는 전역 코드, PROGRAM은 지역 코드라고 볼 수 있다. INCLUDE 블록에서 작성된 코드는 다른 셰이더 블록에서 재사용할 수 있지만 PROGRAM 블록에서 작성된 셰이더 코드는 다른 블록에서 재사용을 할 수 없다.