반응형 분류 전체보기39 [Unreal Engine / Vector Ops] 01.캐릭터 추가 / 움직임 구 캐릭터 생성 구조 캐릭터 클래스 상속 SpringArmComponent CameraComponent 움직임 구현 Enhanced Input 적용 void ASCharacter::Move(const FInputActionValue& Value) { FVector2D MovementVec = Value.Get(); if(IsValid(Controller)) { const FRotator Rot = Controller->GetControlRotation(); const FRotator YawRot = FRotator(0.f,Rot.Yaw,0.f); const FVector ForwardDir = FRotationMatrix(YawRot).GetUnitAxis(EAxis::X); const FVector Rig.. 2024. 3. 18. Awake()와 Start()의 차이 개요 Awake(), Start()는 MonoBehaviour에서 파생된 클래스의 이벤트 함수이다. 기본적으로 Awake()→Start()로 진행되며 초기화와 관련이 있다는 것은 모두 알고 있을 것이다. 그렇다면 Awake(), Start()함수들이 한 번에 사용해도 되는데 왜 구분을 하였을까? 차이점부터 알아보자. Awake()와 Start()의 차이 Awake()는 해당 스크립트가 있는 오브젝트가 초기화 될 때 호출된다. Start()는 Update가 실행되기 전 첫 프레임에 호출된다. 초기화를 위해서 Awake()만 실행하면 되지 않을까 생각되지만 그렇지 않은 이유가 있다. 컴포넌트 참조 문제 Awake는 실행이 될 때, 각 오브젝트들의 Awake()가 언제 실행될지 모른다. Awake()에서 참조.. 2022. 7. 25. Physcis.CheckBox와 OnTriggerEnter Physcis.CheckBox 해당 함수가 포함되어 있는 오브젝트는 다른 콜라이더와 겹치는지를 확인한다. 리턴 값은 bool로 겹침 여부만 반환한다. 박스 콜라이더를 추가하지 않고도 특정 레이어와 겹침여부를 확인을 할 수 있으며 오브젝트와 순간적인 판정에 사용하면 좋다. 사용방식 Physics.CheckBox(Vector3 center,Vector3 halfExtents,Quaternion orientation=Quaternion.identity,int layerMask = DefaultRaycastLayers) center 박스의 중심 halfExtents 박스 길이의 절반 orientation 박스의 회전 layermask 충돌했을 때 무시할 레이어 단점 설정된 범위는 시각적으로 보이지 않기 때문에 .. 2022. 6. 10. 구조체를 통한 메모리관리 유니티에서 Vector를 new 연산자로 호출하지만 가비지에 영향을 주지않는다. 왜 그렇게 될지에 대해 생각을 하게되었다. 메모리 타입 객체는 생성 시 메모리 구조 중 Stack과 Heap에 저장된다. Stack 객체가 값 형식으로 메모리에 할당되며, 해당 형식에서는 할당된 동일한 메모리 위치의 변수의 값이 변경된다. 또한 함수 호출이 될 때마다 변수는 Stack에 할당 된 값을 가져온다. 함수 호출이 끝날 때 마다 변수에 대해 할당된 메모리는 해제가 되며 함수 속 선언된 변수들도 모두 해제된다. Heap 객체가 참조 형식으로 메모리에 할당되며, 할당된 객체의 메모리 주소를 참조를 한다. 그렇기에 변수가 전역으로 접근이 가능하다. Heap은 동적으로 할당되며 끝이나면 메모리를 해제를 해야된다. 메모리를 .. 2022. 4. 7. Draw call은 무엇일까 오브젝트를 그릴 때 정보들(정점의 위치, normals, color 등)을 GPU로 보낸다. 이 정보들을 가지고 카메라 frustum안에 존재하는 오브젝트를 그린다. GPU에 위의 정보들이 들어간다. 데이터를 VRAM으로 전송한다. 화면에 오브젝트를 그리도록 요청한다. 오브젝트를 그리는 과정이 실행되며 이러한 과정을 “Draw Call”이라고 한다. 특징 셰이더가 많이 패스되면 렌더링을 할 때 많은 draw call이 발생한다. 하나의 패스 = 하나의 draw call이다. 이 의미는 패스의 개수는 draw call의 개수와 동일하다. 2022. 4. 4. Mesh란 무엇일까? 메시 폴리곤들이 모인 하나의 3차원 물체 메시에 정보를 저장하기 위해서는 3가지 요소들이 필요하다 Vertices: 3D 공간상의 좌표 Edges: 각 vertex를 연결한 선 Faces: 각 선들을 3개 이상 연결하여 만들어진 면 메쉬의 면들은 모든 2D형태로 만들 수 있다. 간단하고 빠르게 만들기 위해서 게임 엔진들은 삼각형을 사용하여 제작한다. 메시는 코드로 정의하기 쉽다. 메시의 정점들만 메모리에 저장을 한다. 선분들과 면들은 정점들의 순서로 요약해서 정의 된다. 정점들의 순서 정점들의 메시의 형상 데이터에 저장되어있는 순서일 때도 있고, index buffer 데이터 구조로 정의되기도 한다. 메시가 그려지는 방향에 따라서 “전면”과 “후면”이 결정된다. 각 엔진과 3d프로그램에 따라서 방향이 다.. 2022. 4. 1. 이전 1 2 3 4 5 ··· 7 다음 반응형