반응형 유니티 공부/Unity124 Unity - 커스텀 에디터(Custom Editor) +) 전처리기(Preprocessor) 커스텀 에디터(Custom Editor) Unity는 게임 개발뿐 아니라 에디터 자체도 커스터마이징할 수 있는 기능을 제공한다. Inspector 창의 UI를 바꾸거나 새로운 창을 만들어서 툴처럼 쓸 수 있다.이 기능은 대부분 Editor 폴더 안에 스크립트를 넣고 사용한다. 핵심 클래스들 Editor: 기존 컴포넌트의 Inspector 커스터마이징 EditorWindow: 독립적인 에디터 창 생성 GUI/GUILayout: 즉시 모드 GUI 시스템 (레거시) EditorGUI/EditorGUILayout: 에디터 전용 GUI 컨트롤 에디터 편집을 위해 작성한 스크립트들을 저장하는 Editor 폴더가 존재한다. Editor 폴더란? Unity에서 Editor 전용 API를 사용할 수 있도록 만든 .. 2025. 6. 11. Unity - Unity에서 수학 개념을 이해해보자 2편 - 행렬,동차 좌표계,TRS, 아크 탄젠트 행렬이란?수학적으로 2차원 배열이며 Unity에서는 오브젝트의 위치, 이동, 회전, 크기 변환을 계산할 때 이 행렬을 사용한다.2×2 행렬 예시[ a b ][ c d ]4×4 행렬 예시[ m00 m01 m02 m03 ][ m10 m11 m12 m13 ][ m20 m21 m22 m23 ][ m30 m31 m32 m33 ]1. 행렬의 차원과 용도01 2×2 행렬2D 공간에서의 회전과 크기1) 회전 - Transform.rotation2D에서는 Z축 회전만 적용된다. 내부적으로 2×2 회전 행렬처럼 동작한다.2D 회전 행렬 (각도 θ만큼 회전)[ cos(θ) -sin(θ) ][ sin(θ) cos(θ) ]// 회전 예시 (2D)transform.rotation = Quaterni.. 2025. 6. 9. Unity - 캐싱(Caching) +) FSM 패턴,GetComponent ,Distance 캐싱(Caching)이란? 자주 사용하는 데이터나 연산 결과를 한 번만 계산하고 저장해두었다가 다음에 또 필요할 때 다시 계산하지 않고 빠르게 꺼내 쓰는 기법이다. 간단한 비유캐싱 안하는 경우 : 매번 요리할 때마다 레시피책을 찾아서 펼쳐보기캐싱 하는 경우 : 자주 만드는 요리 레시피를 냉장고에 붙여두고 바로 보기 왜 필요할까? Unity는 매 프레임(초당 60~144번 이상) 빠르게 많은 계산을 해야 하는 실시간 게임 엔진이다. 아래와 같은 예시의 작업들을 매번 수행하면 성능 병목이 발생할 수 있다.1) GetComponent()로 컴포넌트 찾기 모든 컴포넌트를 순회하며 검색void Update(){ GetComponent().Play("Run");}2) Vector3.Distance()로 매 .. 2025. 6. 4. Unity - Unity에서 수학 개념을 이해해보자 1편 - 벡터,내적,외적 벡터(Vector)란?벡터는 크기와 방향을 동시에 가지는 수학적 개념이다. Unity에서의 쓰임오브젝트의 위치 방향, 속도 등을 표현할때 벡터를 사용한다. 오브젝트의 위치(Position) 벡터transform.position = new Vector3(0, 1, 2);방향(Direction) 벡터 어디를 바라보는지 알려주는 단위 벡터Vector3 forward = transform.forward;속도(Velocity) 벡터 방향과 속도를 가진 벡터로 표현되며 움직임을 구현할때 주로 사용한다.Vector3 velocity = new Vector3(1, 0, 0); // 오른쪽으로 1만큼 이동하는 속도transform.position += velocity * Time.deltaTime;벡터의 구성 요소크기(.. 2025. 5. 23. Unity - velocity vs addForce +) Velocity 덮어쓰기 , AddForce 무시 문제 들어가기 앞서 간단한 비유로 먼저 이해해보자velocity는 마치 누군가가 자동차를 강제로 시속 50km로 설정해버리는 것과 같다. 브레이크, 중력, 마찰 같은 물리 법칙은 전혀 무시되고 곧바로 그 속도로 움직인다. AddForce는 운전자가 엑셀을 밟아서 점점 시속 50km에 도달하는 것과 같다. 이 경우 중력, 마찰, 차량의 무게(질량)같은 물리 요소들이 모두 반영되어 자연스럽게 가속된다.Rigidbody.velocityRigidbody의 현재 속도를 직접 덮어써서 지정하는 Vector3이다. 물리 엔진 결과가 아니라 사용자가 이 속도로 움직여!라고 명령하는 값이다. velocity는 매 FixedUdpate마다 Rigidbody의 위치를 계산할 때 사용된다. 이 값을 덮어쓰면 기존에 적용하고 있던 .. 2025. 5. 22. Unity - Lighting을 활용한 낮과 밤 시스템 구현 방법 낮과밤 시스템게임에서 시간의 흐름(해가 뜨고 지고)를 표현하면 플레이어게 더욱더 생동감있는 몰입감을 제공해줄 수 있다. 환경 조명 설정(Environment Lighting)Unity에서 씬 전체의 조명 효과는 Lighting Settigs에서 크게 좌우된다.1. Skybox Material : 하늘 텍스처 설정2. Sun Source: 태양 담당을 하는 Direction Light 오브젝트를 지정3. Realtime Shadow Color: 실시간 그림자 색상을 바꿀 수 있어 해 질 무렵이나 밤에는 살짝 푸르게 변경 가능4. Intensity Multiplier: 전체 조명 강도 조절 이 값이 낮아질 수록 어둡게 표현5. Environment Reflections: 모든 오브젝트에 기본적으로 적용되는 .. 2025. 5. 19. 이전 1 2 3 4 ··· 21 다음 반응형