본문 바로가기

Old/Unity18

Object Pool 메모리는 좌측에서 우측으로, 위쪽에서 아래쪽으로 데이터를 저장하는 특징이 있음 이 때 첫번째 이미지와 네번째 이미지를 메모리에서 제거해보면 아래 이미지 처럼 됨 만약, 3번 이미지를 추가로 로드하려면 3번 이미지가 메모리에 로드될 때 필요한 공간은 6칸이 되고 확보하고 있는 빈 공간은 1번과 4번을 제거했으므로 7칸이 남아있음 그러면 3번 이미지를 로드할 때, 이렇게 오버 플로우가 발생함 2번 이미지는 데이터의 손실이 발생해 문제가 생김: 메모리 파편화 / 메모리 단편화 문제 이를 방지하기 위해 C# / JAVA는 가비지 콜렉터를 돌려 메모리를 정리해주지만, 이는 CPU를 낭비하는 일이므로 비효율적 따라서, 사용할 데이터를 미리 메모리에 올려 메모리에서 삭제하지 않음 그러면 메모리를 정리할 필요도 없으니.. 2023. 5. 6.
C# / 싱글톤 디자인 패턴 해당 객체의 메모리를 정적으로 할당하여 하나의 객체에만 접근하는 방법 프로그램이 동작하는 동안 최초로 생성된 객체 하나에만 접근하게 되므로 데이터를 접근하고 수정하는데 아주 용이한 특징이 있음 생성자를 다른 곳에서 새롭게 선언하더라도 이미 정적으로 선언된 객체가 반환되므로 중복 생성을 방지 초기 객체를 생성하게 되면 정적 메모리에 올라가므로 이후 호출하는데 빠르게 접근 가능 정적 메모리에 할당된 객체로 해당 객체에 너무 큰 메모리가 쌓이게 되면 프로그램 성능이 현저하게 낮아질 수 있음 (정적 메모리에 할당할 수 있는 메모리 크기가 제한적) 프로그램이 복잡해지면서 서로 다른 데이터를 공유하게 되는데 이때 다른 객체들과 결합도가 낮아지게 됨 하나의 정적 메모리를 사용하므로 병렬 처리나 동기화와 같이 여러 방.. 2023. 5. 6.
Raycast Physics.Raycast 직선을 씬에 투영하여 대상에 적중되면 true를 리턴하는 물리 함수 캐스팅 성공 실패에 따른 결과만 리턴하는 간단한 형태에서 부터 대상과 Ray의 충돌에 관련된 자세한 정보를 (직선과 객체의 교차 정보. 거리, 위치, 캐스팅에 검출된 객체의 Transform에 대한 참조 등) 리턴하는 다양한 버전이 제공되고 있음 Ray 변수 RaycastHit 변수 Raycast 함수 Ray 구조체 사용법 : Ray는 직선의 시작점(origin)과 방향(direction)을 가지고 있는 단순한 구조체 시작점(origin)은 Vector3 타입의 월드 포지션이며 방향(direction)은 직선 Ray 생성 방법 1) new 이용해 직접 생성 Ray ray = new Ray(transform.p.. 2023. 4. 5.
deltaTime & fixedDeltaTime deltaTime 용도 : 타겟 디바이스마다 성능 격차로 인해 프레임 수행 시간이 다를 것을 대비해 보정하기 위해 사용됨 전 프레임이 완료되기까지 걸린 시간을 말함 컴퓨터의 성능이 나쁠수록 값이 커짐 한 프레임이 완료되기까지 걸린 시간이 1초면 1, 10초면 10이 됨 deltaTime Time.deltaTime을 통해 참조 : 이전 프레임의 발생 시각과 현재 프레임의 발생 시각 사이의 시간 간격, 즉 이전 프레임의 수행에 걸린 시간 의미 Update() 내에서 시간의 진행에 따른 일정한 기능을 구현하기 위해 Time.deltaTime을 이용해 보정 fixedDeltaTime Time.fixedDeltaTime을 통해 참조 : 기본적으로 물리 업데이트 발생 주기, 즉 Fixed Time Step 값을 의.. 2023. 4. 5.
OnCollision & OnTrigger OnCollision OnCollisionEnter: 물체 간의 충돌이 처음 일어났을 때 호출 OnCollisonStay: 물체 간의 충돌이 일어난 후 충돌이 지속될 때 호출 OnCollisionExit: 물체 간의 충돌이 끝나는 그 순간에 호출 OnCollision은 물리적 계산과 충돌을 함께 감지 OnTrigger OnTriggerEnter: 물체 간의 충돌이 처음 일어났을 때 호출 OnTriggerStay: 물체 간의 충돌이 일어난 후 충돌이 지속될 때 호출 OnTriggerExit: 물체 간의 충돌이 끝나는 그 순간에 호출 OnTrigger는 물리적 계산은 하지 않고 충돌만 감지 OnCollision vs OnTrigger Collision 충돌 처리를 할 때, 두 객체 모두 컴포넌트에 Rigid.. 2023. 4. 5.
VR / VR 360 Player 인생 유니티 VR/AR 교과서 - VR 360 Player VR 공부 제대로 해보려고 책 사서 하나씩 해보는 중... 개인 프로젝트가 목표인데 올해 안에 꼭 해보는 걸로 코드 onenewkong/VR360Player (github.com) GitHub - onenewkong/VR360Player Contribute to onenewkong/VR360Player development by creating an account on GitHub. github.com 플레이 영상 2023. 1. 10.