728x90

프로그래밍/Unity 19

2022 LTS Component_컴포넌트 추가 변경

MeshRenderer에서 Motion Vectors를 선택할 수 있는 항목이 추가됨. Motion Vector는 HDRP에서 사용되던 속성임. 한 프레임에서 다음 프레임으로 게임객체가 이동할때 (Vertex가 이동할때) 픽셀단위로 계산을 해주는 쉐이더 이것을 오브젝트 단에서 여러가지 방식으로 변경이 가능해졌다. 2D Sprite Shape Renderer Sort Point의 중심을 선택할 수 있도록 변경 Line Renderer MaskInterection이 설정 가능해졌다. 원하는 영역에서만 이펙트 랜더러가 보일 수 있도록 설정할 수 있다. LineRenderer , TrailRenderer 둘다 가능 Lens Flare가 초보자들도 손쉽게 이용이 가능하도록 변경되었다. Video Player에서 ..

카메라와 컬링 이해

컬링의 기본 컨셉 보이지 않는 것은 그리지 말자 MVP Transformation Frustum Culling Spatial Partition Occlusion Culling Culling Layer Multi Camera Cinemachine vs Camera 게임을 개발하며 어떤식으로 카메라가 랜더되는지 설명한다고 한다. MVP Transformation (Vertex Transformation) 쉐이더 쪽 이야기 카메라에 오브젝트가 보여주기 위해서 오브젝트는 매 프레임 그릴때마다 변환을 거치게 된다. 수학적인 얘기가 끼어들수밖에 없으나 개념적인 얘기만 들어보자 쉐이더를 거칠때 꼭 알아야 할 내용인데 예습하는 느낌으로 들어보자. 카메라도 가만히 있고 오브젝트도 가만히 있지만 내부적으로는 계속 변환이 ..

Unity 2022 LTS 하이라이트 기능

1. Brief history of DOTS (데이터 지향 기술 스택) -> DOTS가 무엇인지 알아봐야 이해할 수 있을것으로 생각됨 ECS for Unity 2022, 정식버전? -> 이것도 알아봐야 할것같음 토네이도 시뮬레이션을 보여주고 있다. 객체지향에 익숙한 사람들은 데이터 지향에 익숙하지 않을것이라고 얘기한다. 2. URP (Universal Render Pipeline) Forward +. rendering path -> 성능이 취약한 플랫폼에서 동적라이트를 다양하게 사용가능 LOD crossfade -> LOD를 이용하게되면 메쉬가 바뀌게 되며 시각적인 팝핀형상이 발생되는데, 그게 부드럽게 변환된다. Decal -> 데칼이 맺혀야 할 곳에만 맺히되록 한다. Temporal 안티엘리어싱 -> ..

[유니티 Tip] Transform 트랜스폼

씬을 봤을때 우리가 눈으로 보이고 코드를 짜는 C#공간이 있고 그 아래에 C++로 만들어진 엔진 공간이 있고 콜라이더와같은 Physics 물리 공간이 있다고 한다. (2D용, 3D용 따로 있다고 한다.) transform.position을 하면 C#에서 먼저 움직이고 C++과 Physics에 영향을 주고 Animator 는 C++에서 rigidbody.AddForce 는 Physics에서 먼저 움직이고 세가지 공간이 모두 싱크를 맞추면서 움직인다고 보면 된다고 한다. 트랜스폼 스케일, 로케이션이 따로 있어 보이지만 엔진 내부에서 보면 매트릭스라는 4x4 행렬로 표현이 된다고 한다. 서로 다 영향을 미치는 존재라고 보면 된다고 한다. 수포자를 위한 게임수학 #17 검색하면 좋다고 함. 최적화 팁 위의 Up..

내가 보고싶은 Unity 코리아 영상

유니티짱과 함께하는 시네머신 튜토리얼! https://www.youtube.com/watch?v=0uDROvxOQ0w Unity 2017.2부터 탑재된 타일맵 기능 소개 https://www.youtube.com/watch?v=G4whuUkJvQk 모바일 환경에서의 포스트 프로세싱 퍼포먼스 가이드 https://www.youtube.com/watch?v=nNWRhsOAdB8 누구나 쉽게 하는 유니티 모바일 빌드 자동화 https://www.youtube.com/watch?v=LU7CMWlJOR4 /이득우 - 수식없이 게임 수학 이해하기 https://www.youtube.com/watch?v=nY6cZOY3VOs 이승환 공준식 - 모바일 게임 최적화 테크닉 - Vulkan과 Unity Adaptive P..

유니티 팁 & 트릭

https://www.youtube.com/watch?v=-ACzLA4mh4Q 1. Play에서 설정값 저장하기 -> Play 상태에서 카피하고 게임정지 상태에서 Paste하면 된다. 2. Grid Snap Grid Snap 간격을 조절해서 회전값과 떨어뜨릴 값을 지정한 다음 Ctrl를 누르고 객체를 움직이면 정해놓은 Grid만큼씩 조정이 가능하다. Map에서 레벨디자인할때 유용하게 사용할 수 있다. 3. Align with View : 씬뷰에서 보는 각도로 카메라 위치 시키는 방법 씬뷰에서 원하는 카메라나 오브젝트가 위치할 위치와 각도로 설정 후 Ctrl + Shift + F 4. Shift + F -> 시점 따라가기. // Focus 따라가기 5. Inspector를 2개 띄우기 한 Inspector..

IL2CPP 2장

Generic Sharing 문제가 되는 부분이다. 제네릭 함수를 처리할때 좀 많은 애로사항들이 있다고 한다. 제네릭이 문제다!? Cpp와 C#하고는 언어가 많이 다르기 때문에 그중 제네릭이 차이가 난다. 하나의 클래스, 하나의 코딩을 통해서 여러 타입에 일반화시켜서 재사용을 할수있어 코딩시간을 단축시켜주는 기능이다. C# 제네릭을 처음 접했을때, cpp를 하던 사람들의 경우는 템플릿을 떠올린다고 한다. 사용법이 비슷하다고 한다. 그런데 Cpp에서는 코드에서는 한번만 작성하지만, 컴파일러 내부에서는 위의 사진에서 우측처럼 버전마다 함수를 다시 작성을 해주는 방식으로 구성된다고 한다. 클래스나 기본적인 원시타입 모두 지원을 한다. 따라서 템플릿을 많이 사용하면 많이 사용할 수록 그만큼 코드가 길어진다고 한..

IL2CPP 1장

IL2CPP & Burst 최적화거나 프로파일링을 이해하기 위한 지식이다. 많은 사람들이 하는 오해? -> 유니티는 C#이라서 느리다?? 유니티 내부는 Cpp로 되어있다. 따라서 느리지 않다. 겉은 C#이고, 내부 엔진은 Cpp로 되어있다. IL2CPP 라는 요즘은 이야기를 많이 들을것이다. 도입되며 유저 코드부분도 Cpp로 돌릴 수가 있다. 엔진 내부도, 유저 코드도 Cpp로 돌릴 수가 있어서 전반적인 성능이 높아지는것이다. IL2CPP란 C# / C++ / C 가 있다. 쌩 C의 경우에는 거의 쓰이지 않는다. Cpp아니면 C#을 이용하는데 Cpp에서 객체지향이 적용되기 시작하였다. Cpp는 메모리 관리를 직접 해주어야 한다. new / delete 쓰레드도 직접 고민을 해줘야 하는 부분이 많다. ->..

Overloading과 Overriding / method Signature 알아보기

Overriding의 핵심은 상속이다. - 부모 클래스의 속성과 기능을 그대로 사용하고 상속 받은 자식클래스에서 overriding한 해당 기능만 다시 수정하여 사용할 수 있게 하는것이다. 부모클래스에서 virtual 키워드를 사용한 함수에 대해서 재정의가 가능하다. Overloading의 핵심은 Method Signature이다. 나는 기억속에 return값 또한 overloading에 영향을 주는 것으로 기억하고있었다. 하지만 중요한것은 method Signature였다. Method Signature는 메소드 명과 그 함수의 매개변수를 뜻하는데 Method Signature가 다르지 않다면 같은 함수로 인식하게 되어 return값이 다르더라도 빨간 밑줄이 생기게 된다. 따라서 다형성을 위해 Over..

코루틴 조금 더 자세한 내용

이전글은 여기서 참조하시기 바랍니다. https://kyungtaek.tistory.com/90 코루틴 정의 및 LifeCycle에서의 순서 코루틴 IEnumerator 반환 타입과 바디 어딘가에 포함된 yield 반환문으로 선언하는 메소드이다. yield return null 라인은 실행이 일시 정지되고 다음 프레임 에서 다시 시작되는 지점이다. 코루틴을 실행 kyungtaek.tistory.com 코루틴 분석 코루틴은 다른 스크립트 코드와 다르게 실행된다고 합니다. 대부분의 Unity 스크립트 코드는 단일 위치의 성능 트레이스 내, 특정 콜백 호출 아래에 나타나지만 반면, 코루틴의 CPU코드는 항상 트레이스의 두 곳에서 나타난다고 합니다. * 두 곳에서 나타난다는 부분은 아직 이해하지 못했습니다. 코..

728x90