UE5
c++ const 매개변수 , 아웃매개변수
1. const 매개변수 단점 : 함수내부에서 데미지 수정시 원본데미지의 값도 바뀌어버림 해결 : const // 함수내부에서는 조회만 가능토록 제한. 2. 아웃매개변수 특징 : float&인데 const가 안붙어있음, 매개변수이름이 Out변수명임. 변수초기화를 안하고 함수에 넘김 왜사용? : 함수내부에서 값을 넣어주기를 원하는 경우
c++ & 참조타입 vs *포인터 비교
1. 참조타입은 일종의 별명이다. a의 별칭을 another_a 라고 지은것. a가바뀌면 another_a도 바뀜. float a = 3; float& anohter_a = a; UE_LOG(LogTemp, Display, TEXT("a is %f another_a is %f"), a, anohter_a); 2. 포인터 : 여러곳에서 참조해야되는 경우에만 사용 참조타입 : 널불가능 => 안전성 up 웬만하면 참조타입을 사용하라.
언리얼엔진 트레이스 디버깅용 빨간선 찍는방법
0. 트레이스란? 그림과 같이 물체등을 추적 => 플레이어가 뭘 가르키고 있는지 추적한다. 종류 : 라인, 원형, 트레이스채널(추적가능한 오브젝트목록 등록, 그것만 추적 / 나머지는 무시함) 등. 1.Grabber cpp만들고 2. BP_Player의 카메라에 달아준다. FVector Start=GetComponentLocation(); FVector End= Start +GetForwardVector()*MaxGrabDistance; DrawDebugLine(GetWorld(), Start, End, FColor::Red); 3.실행결과 F8을 눌러 빙의를 풀어야 빨간선이 보인다.
c++ -> 연산자 사용방법
*예시1 (*Owner).멤버함수 를 간소화한것이 -> 연산자이다. Owner -> 멤버함수 //위와동일 //이 cpp 파일의 주인인 Actor의 주소 가져오기 AActor* Owner = GetOwner(); //같은코드임. //1. Owner의 주소를 타고가서 (*Owner) //2. 실제객체의 맴버함수실행 FString Name=(*Owner).GetActorNameOrLabel(); FString Name2 = Owner->GetActorNameOrLabel(); UE_LOG(LogTemp, Display, TEXT("Mover Onwer Address : %s"), *Name2); * 예시2 //이 cpp 파일의 주인인 Actor의 주소 가져오기 AActor* Owner = GetOwner();..
언리얼 엔진 로그찍는방법
1. UE_LOG(카테고리, 심각도, 텍스트) 2. 문자열 변수 저장은 FString을 이용하면된다. 주의 : 접근시 변수앞에 *을 붙여야됨. 포인트 형식으로 저장되는 듯 하다. 3. 예시 float OverShoot = DistanceMoved - MoveLimit; FString Name = GetName(); UE_LOG(LogTemp, Display, TEXT("%s Platform overshooted by %f"),*Name, OverShoot);
언리얼엔진에서 캐릭터 충돌 인식버그 해결방법
1. 문제 : 언리얼에서는 움직이는 캐릭터만 충돌감지를한다. => 정지한 캐릭터와 물체가 겹치면 버그발생 (보기안좋고 어지럽다) 2.해결 : 캐릭터 블루프린트에서 +1이동, -1이동을 주면 -> 위치는 그대로이고 계속이동중이다. Sweep체크 => 충돌감지 On 3. 문제2 : 회전방향이 없어서 캐릭터가 정면만 바라본다 4. 해결 2: get actor rotation을 받아서 주면된다.