Unreal Engine(33)
-
[Unreal] 15일차 - C++ 플레이어 이동, 총알 생성 및 발사하기
14일차 복습메모리 관리가 필요한 부분은 U로 시작한다. UPROPERTY(), UStaticMeshComponent** 은 메모리 주소를 저장하는 변수이다.:: 은 소속을 뜻한다. 왼쪽 안에 있는 오른쪽의~F 붙으면 구조체나 표준 C++ 클래스를 만들어내는 오브젝트 (ex) FObjectFinder)-> 는 기능에 접근하는 표시 (ex) SpaceShipMesh->SetStaticMesh() BP_CPlayer 구성헤더 파일 코드 추가UPROPERTY(VisibleAnywhere)class USceneComponent* FirePosition; 전체 코드// Fill out your copyright notice in the Description page of Project Settings.#pr..
2024.08.03 -
[Unreal] 14일차 - 블루프린트로 만들어진 것을 C++로 만들기 (StaticMeshComponent, Details, SubObject, RootComponent, 위치값)
C++ 주의할 점class SHOOTING_API ACPlayer : public APawn콜론은 상속을 의미한다. A가 앞에 붙는 이유는 Actor이기 때문.최상단 상속은 UObject이다. #include "CoreMinimal.h"#include "GameFramework/Pawn.h"#include "CPlayer.generated.h""CPlayer.generated.h"는 항상 맨 아래에 있어야 한다. 순서를 바꾸면 에러가 발생한다. BP_Player 하위의 Cube로 붙어있는 StaticMesh Component를 CPlayer C++에서 붙여본다. CPlayer.h 헤더파일에서, 코드를 추가한다.public: class UStaticMeshComponent* BodyMesh;*은 ..
2024.08.02 -
[Unreal] 13일차 - C++ 시작, Hello World 출력, 자료형
블루프린트로 만들었던 슈팅 게임 C++ 사용으로 변경하기Player 스크립트 생성[Tools] - [New C++ Class...] 선택 [Pawn] 선택 [Class Type] - [Public]으로 설정하고 "CPlayer" 이름으로 생성한다. Visual Studio Installer 설정이 되어있지 않아서 오류가 발생했다. 설정은 아래와 같다. 잘 되었다면 .cpp 파일이 열릴 것이다. .h는 헤더파일이다. Hello World 출력하기아래의 코드를 추가한다.UE_LOG(LogTemp, Warning, TEXT("Hello World")); 전체 코드// Fill out your copyright notice in the Description page of Project Settings...
2024.08.01 -
[Unreal] 12일차 - 적 모델링 교체, 적끼리 충돌 방지, 트리거 박스, 적이 나를 보면서 오도록 수정, 사운드 추가, 폭발 이펙트, 배경 스크롤
적 모델링 교체 계속바로 전 글에서 진행했던 적 모델링 교체를 완료했지만 실행하면 적이 생성되지 않는다. [Toggle Breakpoint] 설정을 하면 실행했을 때 여기서 이상이 있다는 것을 알 수 있다. 문제는 [Cube]와 [Drone_low]가 충돌하기 때문에 바로 생성되자마자 없어지는 것이다. "Drone_low" 오브젝트의 [Details] - [Collision Presets]를 [NoCollision]으로 설정한다. 이제 적이 생성된다. 적끼리 부딪혔을 때 죽지 않게 하기이제는 적끼리 부딪혔을 때 죽지 않도록 설정한다.[New Object Channel...]에서 [Overlap] 설정으로 "Enemy" 채널을 만든다. 새 프리셋을 추가해서 아래와 같이 수정한다. "BP_E..
2024.07.30 -
[Unreal] 11일차 - 일정시간에 한 번씩 적 만들기, 적이 플레이어 따라오게 설정, 초반 방향만 따라오게 설정, 확률 추가, 플레이어 모델링 교체
일정시간에 한 번씩 적 만들기저번 시간에 만들었던 "BP_EnemyGOD"의 [Event Graph]를 편집한다.Variables에 "CreateTime", "CurrentTime" 추가, 시간이 흐르도록 노드를 배치했다. 경과 시간이 생성 시간을 초과했다면, 타이머를 0으로 다시 Set 한다. 그리고 "BP_Enemy"를 나의 Location에 Spawn한다. "BP_EnemyGOD"를 Viewport에 배치하고 플레이하면 2초마다 적이 생성된다. 하지만 실행을 끝내면 오류가 난다. Target에 대한 오류. Target을 동적으로 설정해주어야 한다. "BP_Enemy" 블루프린트에서 수정한다. 정상적으로 플레이가 되면 오류가 뜨지 않는다.하지만 플레이어가 죽으면 다시 오류가 뜬다. 플레이..
2024.07.28 -
[Unreal] 10일차 - 총알 생성과 발사, 충돌과 겹침
총알 발사하기사용자가 발사 버튼을 누르면 총알을 발사하게 만들어야 한다. Object Pooling을 이용한다.BP_Bullet이 총알 공장이 된다. 발사 버튼 입력 받기[Project Settings...] - [Input] - [Action Mappings]에 + 키를 눌러 "Fire" 이름으로 새로 추가한다.Action 입력은 단발성, Axis 입력은 지속성 입력을 받는다. 키보드 버튼 누르고 마우스 왼쪽 버튼 눌러서 마우스 왼쪽 버튼을 입력한다. "BP_Player" 더블클릭해서 연다."Fire" 입력해서 노드 추가. "spawn"을 검색하여 [Spawn Actor from Class] 노드 추가. [Class] 부분에 "BP_Bullet"을 설정하여 총알이 생성되도록 설정하고 [Pres..
2024.07.26