전체 글 5

어떤 경우에 포인터를 쓰는 것 보다 참조자를 쓰는 것이 적합할까?

가능하면 참조자를 쓰고, 어쩔 수 없다면 포인터를 써라!! 그렇다면 포인터를 쓸 수 밖에 없는 경우는 무엇일까요? 아래의 두가지 경우에 포인터를 사용해야 합니다. 참조자는 선언과 동시에 초기화 되어야해서 NULL이 허용되지 않기 때문이다. 1. 매개변수에 NULL 포인터를 넘겨주는 경우 2. 리턴값으로 NULL 포인터를 반환하는 것이 허용될 경우

C++ 2024.02.25

const 위치에 따른 차이점

1. 일반 변수 의미를 직역하면 아래의 주석과 같이 말할 수 있지만 사실상 차이가 없습니다. const int num1 = 0; //num1의 int 형식의 값을 변경할 수 없습니다. int const num2 = 0; //num2의 값을 변경할 수 없습니다. num1 = 1; //ERROR!!! num2 = 1; //ERROR!!! 2. 포인터 포인터의 경우에는 다릅니다. int num = 0; const int* ptr1 = # // ptr1이 가리키고 있는 int형 값을 바꿀 수 없다, int* const ptr2 = # // ptr2의 값(int형 주소)을 바꿀 수 없다. const int* const ptr3 = # // 둘다 바꿀 수 없다. 3. 레퍼런스(참조자) 일반변수..

C++ 2024.02.25

SoundCue를 이용한 램덤 사운드 재생

랜덤 사운드를 재생할 사운드웨이브 파일중 하나를 선택해서 SoundCue를 생성해 줍니다. 생성된 사운드큐 파일을 더블클릭하여 에디터를 열고 나머지 추가할 사운드 파일들을 선택해서 열려있는 사운드큐 에디터로 드래그앤 드랍 해서 넣어 줍니다. 추가가 완료되면 추가된 사운드에셋들을 Random 노드에 연결해 주고 Random노드의 output핀을 Output 노드에 연결해 줍니다. 아래의 예제는 발사 버튼을 눌렀을 경우 SoundCue를 재생해서 랜덤 사운드가 출력되도록 하고 있습니다. UCLASS() class AShooterPlayerCharacter : public AShooterCharacter { ... protected: ... /** Called when the Fire Button is pre..

Unreal Engine 2024.01.29

Skeletal Mesh 위치, 방향 맞추기

캐릭터에 Skeletal Mesh를 추가하면 아래와 같이 Mesh의 피봇이 캡슐컴포넌트의 중앙에 있어서 Mesh가 공중에 떠있게 되는 경우가 있습니다. Skeletal Mesh의 피봇은 바닥에 있는데 Character class에 속해 있는 CapsuleComponent의 피봇이 중앙에 위치하기 때문입니다. 여러가지 방법이 있겠지만 가장 손쉬운 방법을 설명하겠습니다. 이런 경우 캡슐의 절반 높이값을 확인하여 그만큼 내려 주면 됩니다. Rotation도 현재 Y축 방향으로 되어 있습니다. 전방 방향인 X축을 향하도록 90도 회전해 줍니다. 이제 캐릭터의 캡슐과 Skeletal Mesh의 위치와 방향이 잘 맞는 것을 볼 수 있습니다.

Unreal Engine 2024.01.29