전체 글 (733)     블로그 내 검색 검색     글쓰기     관리자 썸네일형 리스트형 충돌이벤트와 델리게이트 Delegate 키보드가 눌리면 InputAction과 Binding된 함수가 실행되게 했죠. 이런걸 Deligate라고 합니다.이때는 binding될 함수만 만들어 사용하면 되었지만 나중에 처음부터 만들경우 Deligate 매크로를 사용해 Deligate화 하고 바인딩후 실행해야 합니다. (키보드 처리 로직이 선언, Deleifate화, 실행을 해서 안보일뿐이지만) 델리게이트 장점 예를 들어 설명하자면, 애님인스턴스 클래스에서 캐릭터의 콤보 카운트를 전달받아 해당 몽타주 섹션을 재생하고, NextAttackCheck 노티파이가 발생할 때마다 캐릭터에 이를 전달할 델리게이트를 선언하였다고 가정하자. 노티파이 함수에서 이 델리게이트를 호출해주면 애님 인스턴스는 자신의 델리게이트를 사용하는 객체(캐릭터)가 어떤 것인지 .. Ureal C++ Collision처리 블루프린트 슈팅개발시 했던것처럼 프로젝트세팅 콜리젼에 Player, Enemy, Bullet New Object 채널을 생성합니다. 기본 응답은 Ignore로 합니다.2025.03.10 - [게임프로젝트/슈팅게임 블루프린트] - 충돌처리 Collision 충돌처리 Collision액터들의 충돌처리를 해줍니다.BP_Bullet을 열고 Box Collision을 추가하고 root로 해줍니다. Shape Extent를 조정해 박스를 싸줍니다. BP_Enemy를 열고 역시 BoxCollisoin을 추가하고 루트로 만들고 사이즈롤 설unreal6.tistory.com오브젝트 채널을 블루프린트에서 지정하지 않고 코드에서 구현해보겠습니다.프로젝트 Config폴더안 DefaultEngine.ini을 ECC_로 검색해보.. EnemyActor Factory 생성하기 Spawn EnemyActor Class를 만들어 속성을 정의했지만 누군가 만들어 줘야 합니다.EnemyFactory라는 Class를 만들어 관리하게 하겠습니다.Unreal Editor에서 EnemyFactory Class를 Actor를 부모로 만듭니다.EnemyActor를 생성할 타이머를 만들기 위해 변수2개를 헤더에 만듭니다. UPROPERTY(EditAnywhere) float delayTime = 2.0f;private: float currentTime = 0.0f;EnemyFactory.cpp Tick()에서 타이머를 구현해줍니다.void AEnemyFactory::Tick(float DeltaTime){ Super::Tick(DeltaTime); if (currentTime > delayTime) { .. Unreal Shooting Game C++ EnemyActor Actor 를 부모로 C++ 클래스를 Public으로 만들자header public:부분에 콜라이더와 스태틱매시 컴포넌트 변수 선언public: UPROPERTY(EditAnywhere) class UBoxComponent* boxComp; UPROPERTY(EditAnywhere) class UStaticMeshComponent* meshComp;EnemyActor.cpp에서 헤드파일을 추가하고 생성자에서 박스컴포넌트와, 스태틱메시컴포넌트 오브젝트를 만들어 연결해줍니다.#include "Components/BoxComponent.h"AEnemyActor::AEnemyActor(){ // Set this actor to call Tick() every frame. You can turn this of.. Unreal Shooting Game bullet 총알제작 USoundBase 총알은 입력을 받을 필요가 없으므로 Pawn이 아닌 Actor를 부모로 제작합니다. 이름은 Bullet으로 정합니다.헤더에서 public:밑에 변수를 추가컴포넌트를 생성 연결해줍니다.ABullet::ABullet(){ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. PrimaryActorTick.bCanEverTick = true; boxComp = CreateDefaultSubobject(TEXT("BoxCollider")); SetRootComponent(boxComp); meshComp = CreateDefaultSubobject(TEXT("S.. Unreal C++ 플레이어 제작하기 플레이어 클래스 제작Pawn으로 C++클래스를 만듭니다. public을 선택하고 이름은 PlayerPawn으로 합니다.C++폴더가 있으니 우클릭을 하고 만들어 봅니다.Visual Studio로 이동합니다. 모두 다시 수정을 누릅니다.플레이어에 충돌체 컴포넌트를 추가해 보겠습니다. PlayerPawn.h로 이동하고 Class 맨아래 public:안에 다음 코드를 추가boxComp는 단순히 UBoxComponent의 인스턴스의 주소를 담을 변수입니다. UPROPERTY(EditAnywhere) class UBoxComponent* boxComp; PlayerPawn.cpp로 이동해서 UBoxComponent의 인스턴스를 만들어 연결해 줍니다.헤더도 인클루드 해줍니다. 오타가 없다면 코드의 UBoxComp.. Unreal Shooting C++ 프로젝트, 게임모드, Orthographic 인생언리얼 1권에 있는 슈팅게임 제작을 따라해 보왔다. 일단 블랜크 템플렛을 선택 C++을 선택 ShootingCPP로 이름 지었다. 사실 C++을 선택 안해도 상관없다 하지만 교재를 따라하기 위해서는 ProjectName이 똑같은게 좋다.인생언리얼에 C++을 사용할경우 빌드방법이나 간단한 설명이 잘되어 있다 꼭 읽어보시길 바란다.레벨을 Empty로 만들고 바로 저장하자 Maps 폴더를 만들고 저장하자 교재는 ShootingMap이라는데 난 LV_Shooting이라고 했다.프로젝트세팅을 열고 기본 맵으로 등록하자GameModeBase클래스 만들기 교재는 C++폴더로 들어가 클래스를 만들라고 했는데 안보여서 위쪽 Tools 툴바를 클릭해 만들었다 게임모드베이스를 선택하고꼭 Public을 선택후 이름.. Unreal Shooting Game 패키징하기 우선 프로젝트세팅을 열고 메인 레벨을 지정합니다.Packaging을 선택하고 옵션을 선택합니다. 현재는 Development용으로 가볍게 합니다. 출시용으로는 Shipping 이나, Full Rebuild를 체크해야 합니다.Supported Platforms 카테고리에서 필요한 플랫폼을 체크합니다.프로젝트세팅을 닫고 에디터 가운데 위를 보면 Platforms를 열어 PakageProject를 선택하면 폴더창이 뜨고 폴더를 선택해주면 됩니다.에디터 오른쪽 아래 팜업창이 뜨고 진행됩니다.전 다음과 같은 에러가 나네요LogCook: Error: GlobalDefaultGameMode contains a redirected reference '/Game/Shooting/GM_Shooting'.GM_Shoot.. 베타타입 버전 Shooting Game, SaveGame, Score 최고점수를 기록하고 불러오는 로직을 작성해 보겠습니다. WBP_Main을 열고 HoriozontalBox를 선택하고 Ctrl-D를 누르면 자식까지 복사됩니다. 텍스트를 변경합니다.최고점수 갱신하기점수를 획득할때 마다 최고 점수와 비교해 큰 경우 Best를 갱신해 줍니다.점수는 게임모드에서 저장하고 있으니 게임모드GM_Shooting 에서 갱신하겠습니다. 점수의 갱신은 BP_Bullet에서 적과 충돌할때 게임모드의 AddScore함수를 Call 했으므로 게임모드내 AddScore함수를 변경하면 됩니다.GM_Score 변수에 최고 점수를 담을 BestScore변수를 Integer로 마련합니다.AddScore 함수안에 CurrentScore를 저장후 다음 노드를 추가해 줍니다. Current가 Best보다 크.. 점수 UI 제작하기 점수는 어디인가 저장되고 계산되어야 합니다.게임 전반의 관리를 GameModeBase에서 실행합니다.이전에 만들었던 GM_Shooting을 엽니다.Integer로 CurrentScore 변수를 만들고AddScore라는 함수를 만들고 Inputs+를 눌러 Integer Type의 Point입력을 만들어 줍니다.다음과 같이 함수를 만들어 줍니다.AddScore를 사용해야할 곳은 적과의 충돌을 관리하는 BP_Bullet입니다.BP_Bullet을 열어 Event ActorBeginOverlap 노드 뒤에 addScore함수를 추가합니다. 이 함수는 GM_Shooting의 메소드이므로 캐스트해서 사용합니다.widget_blueprint를 하나 만들고 이름을 WBP_Main으로 합니다.Cavas를 추가하고 해상도를.. 알파 버전 스태틱메시 교체 https://github.com/araxrlab/lifeunreal/blob/main/%EC%9E%90%EB%A3%8C%EC%8B%A4/2%EC%9E%A5/SpaceShip.zip lifeunreal/자료실/2장/SpaceShip.zip at main · araxrlab/lifeunreal인생 언리얼 교과서 공식 예제. Contribute to araxrlab/lifeunreal development by creating an account on GitHub.github.comSpaceShip을 다운받아UV머터리얼을 열어 정리해주고BP_Ship을 열어 Cube 컴포넌트의 StaticMesh와 Materials를 교체합니다.스케일 로테이션 조정합니다.위 사이트에서 드론을 다운로드 합니다. 언리얼에디터에 .. 배경 만들기 M_Background 머터리얼을 만듭니다. 모드를 UnLit으로 합니다 그럼 EmmisiveColor만 남습니다. 이유는 배경이 조명과 반사되지 않게 하기 위해서입니다.언리얼의 텍스쳐를 이용했습니다. 교재에서는 우주그림을 찾아 사용했네요 플레이시 배경의 그림자가 눈에 거슬린다면 DirectionalLight의 CastShadows를 꺼줍니다. 이전 1 ··· 3 4 5 6 7 8 9 ··· 62 다음