본문 바로가기

Unity29

[C#] SOLID 원칙 :리스코프 치환 원칙(LSP) 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 지난 게시물 [C#] SOLID 원칙 : 개방 폐쇄 원칙 - OCP (Open Closed Principle)공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 전편- 단일 책임 원칙 SRP [C#] SOLID 원칙 : 단일 책임 원칙(SRP)공부용으로 작성되는 페이지입니다.hungrykang.tistory.com 리스코프 치환 원칙이란?LSP 원칙은 서브 타입은 언제나 기반(부모) 타입으로 교체할 수 있어야 한다는 원칙이다. 이는 곧 자식 클래스는 최소한 부모 클래스가 가능한 행위를 자식 클래스도 수행할 수 있어야 함을 의미한다. 결국 리스코프 치환 원칙은 다형성 원리와.. 2025. 8. 27.
[Shader] Compute shader 개념과 예제 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Compute Shader란?컴퓨트 셰이더는 일반 렌더링 파이프라인과 별도로 그래픽 카드에서 실행되는 프로그램이다. GPU의 계산 능력을 활용해 물리 시뮬레이션, 복잡한 수학 등을 비교적 빠르게 처리하기 때문에 렌더링 효율성과 최적화 문제를 해결하는데 용이하다. 나의 경우에는 이전에 만들었던 Boids의 최적화 문제를 해결해보고자 Compute Shader를 공부하기로 했다. 요약하자면 -> - GPGPU(Gneral-Purpose computing on GPU)를 이용한 대규모 병렬처리 쉐이더- 병렬처리가 가능하기 때문에 동시에 수많은 객체를 처리해야할 때 사용한다! Compute Shader 기본 구조 URP.. 2025. 8. 25.
[C#] 스레드(Thread)의 기본 개념 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Thread의 개념과 관련 용어 Thread의 개념을 알기 위해서는 운영체제와 프로세스의 의미에 대해서 먼저 알아야한다. 운영체제윈도우, 리눅스 등 사용자의 하드웨어와 시스템 리소스를 제어하고 프로그램에 대한 일반적인 서비스를 지원하는 시스템 소프트웨어다. 프로세스 프로세스는 운영체제 안에서 실행되는 프로그램이다. 프로세스들은 서로 독립된 객체이기 때문에 각각 메모리를 할당받고 서로에게 접근할 수 없다. 서로의 상태 정보를 받기 위해서는 별도의 커뮤니케이션 필요하다. 이러한 프로세스는 반드시 하나 이상의 스레드로 구성되어있다. 스레드프로세스 내부에서 실행되는 작은 작업 단위이다. 위에서 말했듯이 프로세스는 반드.. 2025. 8. 19.
[C#] Boids 군집 알고리즘 공부 : 구현 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. [C#] Boids 군집 알고리즘 공부 : 개념과 구현 방법공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Boids란?새들이 떼를 지어 다니는 행동에 대한 군집 이동 알고리즘(시뮬레이션)을 의미한다. Boids는hungrykang.tistory.com -Cohension(응집) -Alignoment(정렬) Separation(분리) 규칙 기반으로 Boids를 구현해본다.준비 나의 경우에는 1. 객체 1000개 2. VR(Quest 3)에서 돌아갈 것을 고려 3. 특정 오브젝트 위치로 도달해야함 (= Target Object Position 존재) 등을 조건으로 진행.. 2025. 8. 18.
[C#] 인터페이스 vs 추상 클래스 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 두 가지의 차이점은 알고 있지만, 자꾸 언제 어떻게 써야하는지 헷갈려서 공부할겸 작성하게되었다. 추상화란?어떤 클래스의 공통된 기능을 추출하는 것을 의미한다. 예를 들어 학교를 생각해보자. 국어 선생님은 국어를, 수학 선생님은 수학을, 과학 선생님은 과학을 가르친다. 모든 선생님이 '수업'을 하지만 수업의 타입은 전부 다르다. 이때 공통된 기능인 '수업'을 추상화 시키고 이를 각 선생님이 상속받게 한 다음 과목에 맞게 재정의하여 구현하는 과정을 거치게 된다. 추상 클래스 (abstract Class) 추상 클래스는 abstract 함수를 선언할 수 있다는 점을 제외하면 일반 클래스와 크게 다를 바가 없다. 여기.. 2025. 8. 18.
[C#] Boids 군집 알고리즘 공부 : 개념과 구현 방법 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Boids란?새들이 떼를 지어 다니는 행동에 대한 군집 이동 알고리즘(시뮬레이션)을 의미한다. Boids는 기본적으로 Separation(분리)-Alignoment(정렬)-Cohension(응집) 단계로 나눠진다. 1. Separation (무리를 피하는 방향으로 이동) 자신 주변의 객체들이 붐비는 것을 피하기 위해 주변 객체들에게 벗어나는 규칙 2. Alignoment (무리의 진행 방향으로 이동) 주변 객체들의 평균 방향으로 이동하는 규칙. 3. Cohesion (무리의 중심 방향으로 이동)모든 객체 사이의 평균점을 찾고 평균점을 향해 이동하는 규칙 이 규칙들이 동시에 고려되면서, 동료들과 비슷한 방향으로.. 2025. 8. 6.
[VR] Meta XR SDK Building Block 기반 멀티 만들어보기 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Meta XR SDKMeta XR SDK의 가장 좋은 점은 빌딩블록 덕분에 VR Interaction 구현이 쉬워진다는 점이다. 설치 및 빌딩 블록 사용Meta XR All-in-One SDK를 다운받은뒤, Meta- Tool에서 Building Block을 선택해서 사용할 수 있다. 이전에 Grab, Passthrough, Ray등을 사용해본 바가 있는데 오늘은 빌딩 블록을 사용해서 멀티플레이를 만들어보려고 한다. Colocation이란?코로케이션은 데이터 센터에서 기업이 자신의 서버와 기타 IT 장비를 설치, 운영할 수 있도록 공간, 전력, 냉각, 그리고 네트워크 연결을 제공하는 서비스를 의미하는데 Meta.. 2025. 8. 4.
[Normcore] Normcore와 VR Multi 테스트 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. VR 프로젝트에 적합한 멀티 플레이 SDK가 어떤건지 테스트해보고 있는 중이다. 사용 기기는 Meta Quest3이다.Normcore란? Normal에서 만든 멀티 플레이 SDK로, 다른 멀티플레이 SDK에 비해서 VR 친화성이 높은 것이 특징이다.또한 RPC 방식으로 동기화하지 않고 데이터베이스에 모든 상태를 저장하는 방식을 사용한다. 이 방식이 어떻게 가능한지 의아했는데 Normcore 에서는 Room 단위로 세션을 관리하고 실시간 데이터만 저장해두고, 마지막 인원이 퇴장하는 동시에 Room 상태를 삭제하며 모든 데이터를 삭제하는 방식으로 굴러간다. 사실 제일 궁금했던 점은 몇 명까지 지원이 되냐는 것.. 2025. 8. 3.
[Unity] 내장 함수 정리 : Vector3 & Mathf 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 매번 구글링하기도 귀찮아서 Vector 관련 함수를 정리해봤다. 찾아보지 않아도 될 정도로 익숙해지면 더 좋고! Vector Function 이름의미Vector3.zeroVector3(0,0,0)Vector3.oneVector3(1,1,1)Vector3.downVector3(0,-1,0)Vector3.rightVector3(1,0,0)Vector3.leftVector3(-1,0,0)Vector3.forwardVector3(0,0,1)Vector3.backVector3(0,0,-1)Vector3.nomalizedVector3의 magnitude를 1로 만들어 반환 (정규화)Vector3.sqrMagnitudeVec.. 2025. 7. 23.