일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Toon Shader
- 가상 바이트
- Rim Light
- URP로 변경
- VR
- 3d
- working set
- Cartoon Rendering
- 프로그래밍 기초
- Windows Build
- Cell Shader
- 벡터
- OculusMotionVectorPass
- Virtual Byte
- 메모리 누수
- ASW(Application SpaceWarp)
- Three(Two) Tone Shading
- Private Bytes
- URP
- Cell Look
- ColorGradingLutPass
- 게임 수학
- AppSW
- 개인 바이트
- C언어
- Specular
- 작업 집합
- Today
- Total
목록Unity/Unity 관련 (25)
WinCNT
서론 CI와 빌드 자동화를 위한 무언가(?)를 작업 중이었다 유니티에서는 빌드하는 스크립트를 간편하게 짤 수 있고, 참고 자료도 많아서 문제는 없었다 그런데 빌드 옵션에 BuildOptions.AutoRunPlayer를 지정했을 경우, 빌드 시에 연결된 디바이스가 없으면 빌드 파일 자체가 안 만들어진다는 것을 알게 되었다 안드로이드 기기에 연결되어 있으면 Build And Run, 그렇지 않으면 Build만 하고 싶었기에 그 방법을 찾아봤다 방법 1) UnityException: No Android devices connected 체크 우선 처음으로 성공한 것은 BuildPipeline.BuildPlayer의 리턴 값인 BuildReport를 체크하는 방법이었다 빌드 시에 디바이스가 연결되어 있지 않으면..

서론 이른바 커맨드 라인(macOS 터미널이나 Windows 커맨드 프롬프트 등)을 이용해서 유니티의 스크립트의 메소드를 실행하는 방법에 대해 조금 조사해봤다 지금 환경이 Windows니 커맨드 프롬프트(CMD)로 실행하는 방법을 조사했다 참고로 커맨드 라인으로 Unity를 실행하는 건 보통 테스트나 빌드 자동화를 구축할 때 사용되곤 하지만…지금은 이미 더 좋은 툴이 많아서 커맨드 라인만으로 구축하는 경우는 많이 없을 듯 하다 Unity 에디터 커맨드 라인 인자 이건 역시 공식 문서에 모든 게 나와있긴 하다😇 Unity 에디터 커맨드 라인 인자 - Unity 매뉴얼 Unity 에디터 커맨드 라인 인자 - Unity 매뉴얼 Mac OS의 경우, 다음을 터미널에 입력하여 Unity를 실행해야 합니다. doc..
서론 빌드 리포트에서도 잠깐 다뤘지만, 유니티에서 빌드 전 혹은 빌드 후에 실행하고 싶은 처리가 있을 때 어떻게 하면 되는지에 대해서 간단하게 정리해보고자 한다 빌드 직전인 경우! IPreprocessBuildWithReport using UnityEditor.Build; using UnityEditor.Build.Reporting; public class PreprocessBuildTest : IPreprocessBuildWithReport { // 실행 처리 순서(작은 순서로 먼저 호출됨) public int callbackOrder => 1; public void OnPreprocessBuild(BuildReport report) { } } 빌드 직후인 경우! IPostprocessBuildWith..

서론 커스텀 셰이더에 대해서 커스텀 GUI를 작성하고 Assets > Editor 파일에 저장한 적이 있었다 일반적인 경우라면 이걸로 끝이었겠지만, 문제는 커스텀 셰이더가 Packages에 있는 일종의 커스텀 패키지였다는 점이었다 이 같은 경우에는 Assembly Definition이란 것을 만들고 설정해야 한다는 이야기를 사수한테 들어서 실제로 해본 내용을 정리해보려고 한다 Script will not be compiled because… Assets > Editor에 있던 스크립트를 Packages/대충 커스텀 패키지 폴더/Edior로 옮겨보니 다음과 같은 경고가 발생했다 💡 Script 'Packages/대충 커스텀 패키지 폴더/Edior/대충 커스텀 셰이더 GIU.cs' will not be co..

서론 유니티(의 에디터)에 여러 리소스를 임포트한다고 해도, 그것이 실제로 빌드한 파일에 포함될지는 다른 이야기이다 또한 폴더에 따라 실제로 사용되지 않는 리소스가 포함되기도 하고, 사용하고 있는 리소스가 제외되기도 한다 Plugin이나 Package의 리소스까지 고려하게 되면 끝이 없다 하지만 유니티가 빌드 시에 작성하는 빌드 리포트(Build Report)에는 실제 어떠한 리소스가 포함되었는지, 어느 정도의 용량을 차지하고 있는지가 상세히 나온다 이 글에서는 그 빌드 리포트(Build Report)를 확인하는 방법을 메모해보려고 한다 빌드 리포트(Build Report)를 확인하는 방법 서론을 거창하게 작성한 것 치고는 빌드 리포트(Build Report)를 확인하는 방법 자체는 정말로 간단하다 그냥..

서론 유니티의 게임 오브젝트, 컴포넌트에 대한 == null 체크가 무겁다는 것은 Rider조차 알고 있는 사실 몰라도 Rider가 알려주는 사실이라도고 한다 그렇다고 Null 체크를 아예 안 할 수도 없고, 남의 코드를 최적화하는 상황에 처해서, 굳이 여기서 Null 체크 안 해도 같은데…라고 생각해도, 코드를 마음대로 고칠 수 없어서 대안책만 제시할 수 있는 상황일 수도 있다지금 필자의 상황 이번에는 그 대안책을 조사하다가 알게 된 내용을 정리하려고 한다 Fake Null, ReferenceEquals() 등의 이야기는 안 합니다 Fake Null 등에 대해서는 이미 좋은 글이 많아서 밑의 참고 사이트에 정리해봤다 알아두면 좋은 내용이었지만 아쉽게도 현재 필자의 상황과는 맞지 않았다 그래서 Fake ..

서론 퍼포먼스 체크한 것을 Slack으로 보내서 저장하는 일에 착수했다 아무것도 모르는 필자에게 사수가 “해줘”를 시전했지만, 레퍼런스가 없으면 너무 빡센 일이 될 게 분명해서 꼬치꼬치 캐물으니 다른 프로젝트에서 비슷한 처리를 하는 파일을 소개시켜줬다 왜 처음부터 알려주지 않는거지? Slack에서 토큰 취득하기 우선은 Slack API에서 APP을 만들고 토큰을 받아야 한다는 것 같다 https://api.slack.com/apps Slack API: Applications | Slack Your Apps Don't see an app you're looking for? Sign in to another workspace. api.slack.com 일단 기능은 봇을 선택 OAuth & Permission..

서론 어느 VR 게임의 프로젝트를 최적화 작업을 하던 도중, UI가 무겁다는 사실을 알게 되었다 (무거운 이유는 기회가 있다면 따로 작성하려고 한다) 하지만 문제는 필자 자신이 아직 유니티의 UI에 대해서 잘 모른다는 것! …사실 UI 자체를 잘 모른다는 느낌도 든다 아무튼 최적화 작업을 위해 우선 유니티의 UI 시스템에 대해 공부하기로 했다 참고로 Unity에는 UI 툴킷, Unity UI 패키지(uGUI), IMGUI라는 3개의 UI 시스템이 있다고 한다 사용자 인터페이스(UI) 생성 - Unity 매뉴얼 사용자 인터페이스(UI) 생성 - Unity 매뉴얼 Unity는 Unity 에디터에서 제작된 애플리케이션과 Unity 에디터를 위한 사용자 인터페이스(UI)를 생성하는 데 사용되는 다음의 세 가지 ..

서론 Bakery라는 에셋을 적용하면서 삽질했던 것을 정리해봤다 참고로 Bakery는 라이트 맵을 생성해주는 에셋이며 아래의 페이지에서 구입할 수 있다 Bakery - GPU Lightmapper Bakery - GPU Lightmapper | 레벨 디자인 | Unity Asset Store Get the Bakery - GPU Lightmapper package from Mr F and speed up your game development process. Find this & other 레벨 디자인 options on the Unity Asset Store. assetstore.unity.com DllNotFoundException unitypackage의 에셋을 임포트하면 메뉴 바에 Bakery라는..

서론 스크립트 통해서 특정 카메라에 특정 오브젝트만 렌더링하기 위해 여러가지 조사하고 삽질한 내용을 정리하고자 한다 소스 코드 결론부터 말자하면 게임 오브젝트의 레이어(GameObject.layer)와 카메라의 컬링 모드(Camera.cullingMask)는 다르게 설정해야 한다 예를 들어 게임 오브젝트의 레이어와 카메라의 컬링 모드를 스크립트를 통해 4: Water(기본 설정 중 하나)로 설정하려면 다른 방식을 사용해야 한다 // GameObject gameObject.layer = LayerMask.NameToLayer("Water"); // LayerMask 사용 gameObject.layer = 4; // 하드 코딩 // Camera camera.cullingMask = LayerMask.GetM..