Posts
Rito15
Cancel

Fisher-Yates Shuffle 간단 정리

1. Original Fisher-Yates Shuffle 알고리즘 … 길이 n인 배열이 있다. [0, n-1] 범위에서 무작위 인덱스를 뽑아, 그 위치의 원소를 새로운 배열의 인덱스 0 위치에 넣는다. 기존 배열에서 n-1 인덱스에 있는 원소를 구멍 뚫린 위치에 채워 넣는다...

유니티 - 깔끔하고 보기 좋은 변수명 짓기

Intro 코딩을 하다보면 변수의 이름을 지을 때 많은 고민을 하게 되고, 생각보다 많은 시간이 소요된다. 아무 의미 없는 이름을 짓게 되면 개발을 이어 나가면서 스스로도 혼란을 겪게 될 수 있으며 만일 협업을 하고 있었다면, 솔직히 혼나도 할 말이 없다. 그러니 ‘보기에도 깔끔하고 한 눈에 의미를 알아볼 수 있는 이름’을 짓기 위해 언제나 ...

(Amplify) Screen Effect - Pixelation

Summary 화면 전체를 도트로 찍은 듯한 픽셀화 효과를 적용한다. 스크린 이펙트 적용 애셋 : Link Preview Properties Pixelation 픽셀화 강도(0 ~ 0.99) Nodes Download ...

유니티 - 드로우 콜과 배칭 개념 간단 정리

1. CPU와 GPU의 상호작용 CPU에서 GPU에 명령하기 일반적으로 CPU에서 렌더링, 상태 변경 등의 명령을 GPU에 전달한다. 그런데 GPU가 바쁘게 작업하는 도중이라면, CPU는 GPU의 작업이 끝나기를 하염없이 기다리게 될 수 있다. 따라서 커맨드 패턴(Command Pattern)과 메시지 큐(Message Queue)에 ...

유니티 - FixedUpdate()에서 이동, 회전 구현 시 버벅임 현상 해결하기

Update()와 FixedUpdate() Update() Update() 메소드는 프레임 당 한 번씩 호출된다. 그리고 이동, 회전 등을 구현할 경우 프레임 간의 호출 간격을 고려하고 단위 시간 당 일정한 수치로 기능을 구현하기 위해 Time.deltaTime을 사용한다. FixedUpdate() 리지드바디를 사용할 때, 즉 물리 엔...

유니티 - Time.deltaTime과 Time.fixedDeltaTime

deltaTime과 fixedDeltaTime 델타타임의 용도 타겟 디바이스마다 성능 격차로 인해 프레임 수행 시간이 다를 것을 대비해 보정하기 위해 사용된다. 예를 들어 A 디바이스는 1초에 10프레임, B 디바이스는 1초에 20프레임이 재생된다면 그냥 Update() 내에서 프레임마다 거리를 1씩 가도록 구현했을 경우, 1초에 A는 10,...

(Amplify) Screen Effect - Chromatic Aberration

Summary 색수차 효과 스크린 이펙트 적용 애셋 : Link Preview Properties Red Offset R 채널 색상의 화면 UV 진행 방향 Green Offset G 채널 색상의 화면 UV 진행 방향 ...

유니티 - 쉐이더에서 파티클 시스템 커스텀 데이터(Custom Data) 사용하기

커스텀 데이터(Custom Data) 파티클 시스템의 Custom Data 모듈에서 지정한 값을 쉐이더로 가져와 사용할 수 있다. 1. 파티클 시스템 설정 [1] Custom Data 모듈 Custom Data 모듈에 체크한다. Mode를 Vector 또는 Color로 설정한다. V...

유니티 - 반드시 고쳐야 하는, 잘못된 코딩 방식들

Intro 별 생각 없이 흔하게 작성할 수 있지만, 제대로 알고 보면 ‘절대 이렇게 작성하면 안되겠다’라고 생각할 수 있는 유니티 C# 코딩 방식들에 대해 다룹니다. 편의상 본문에서는 평어로 서술합니다. Note 본문에서의 ‘자주’는 Update(), FixedUpdate(), 코루틴 내부의 while(true) 문 등에...

유니티 - Transform의 공간 변환 메소드 간단 메모

1. 로컬-월드 변환 [1] TransformPoint() 위치, 회전, 크기 변환을 적용한다. 방향 벡터가 아니라, 위치 벡터를 월드 위치로 변환할 때 사용한다. 메시의 로컬 정점 좌표로부터 월드 정점 좌표를 구할 때처럼, 오브젝트에 완전히 종속적인 위치 벡터를 변환할 때 사용된다. ...