- 필수 파일
Config
,Content
,Source
,~.uproject
(언리얼 프로젝트를 우클릭하고 Generate Visual Studio project files를 눌러 다른 파일들을 재생성)
w
a
s
d
로 이동q
e
로 수직 이동q
w
e
r
로 선택, 이동, 회전, 크기 변경f8
로 캐릭터 시점에서 벗어날 수 있고, esc
로 플레이 모드를 종료.cpp
, .h
파일을 지운 뒤, 해당 경로의 폴더에서도 .cpp
, .h
를 지워주고 필수 파일인 Config
, Content
, Source
, ~.uproject
를 제외하고 나머지 파일을 삭제해서 Generate Visual Studio project files을 하면 된다고 함~..액터 클래스 생성
클래스를 생성하면 유니티와 유사한 스크립트가 생성
유니티 | 언리얼 |
---|---|
Start() | BeginPlay() |
Update() | Tick() |
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"
UCLASS()
class PRACTICEUNREAL_API AMyActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AMyActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
};
// Fill out your copyright notice in the Description page of Project Settings.
#include "MyActor.h"
// Sets default values
AMyActor::AMyActor()
{
// 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;
}
// Called when the game starts or when spawned
void AMyActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AMyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
class PRACTICEUNREAL_API AMyActor : public AActor
{
. . .
private:
UPROPERTY(VisibleAnyWhere) //외부에서 보이고 수정할 수 있도록하는 리플렉션
UStaticMeshComponent* Mesh;
}
AMyActor::AMyActor()
{
. . .
Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MESH"));
}
Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MESH"));
RootComponent = Mesh;
//원하는 메시 로드(원하는 메시의 경로를 붙여넣기)
static ConstructorHelpers::FObjectFinder<UStaticMesh> SM(TEXT("StaticMesh'/Game/StarterContent/Props/SM_Couch.SM_Couch'"));
//성공적으로 로드했다면
if(SM.Succeeded())
{
//Mesh에 SetStaiticMesh함수를 호출하여 로드한 메시를 적용
Mesh -> SetStaticMesh(SM.Object);
}
VisibleAnyWhere
를 사용하면 디테일에 보이긴 하지만 수정할 수 없으므로 EditAnyWhere
을 사용Category = ~~
로 카테고리를 생성하여 변수를 정리할 수 있음private:
UPROPERTY(VisibleAnyWhere)
UStaticMeshComponent* Mesh;
UPROPERTY(EditAnyWhere, Category = BattleStat)
int32 HP;
UPROPERTY(EditAnyWhere, Category = BattleStat)
int32 MP;
C++를 사용한 데스크톱 개발
, C++을 사용한 게임 개발
을 설치 -> 이에 해당하는 오류는 사라졌지만 완전 해결은 못함 디버깅을 위한 편집기 기호
옵션 설치 -> 설치 후 빌드 딱 한번 성공하고 다시 안됨..#include <iostream>
int main(int argc, const char * argv[]) {
int N, ans = 0;
std::cin >> N;
for (int i = 1; i < N; i++) {
int sum = 0;
int num = i;
while (num) {
sum += num % 10;
num /= 10;
}
if (sum + i == N) {
ans = i;
break;
}
}
std::cout << ans << std::endl;
return 0;
}
방 개수 | N | N의 개수 |
---|---|---|
2개 | 2~7 | 6 (0+6×1) |
3개 | 8~19 | 18 (6+6×2) |
4개 | 20~37 | 36 (18+6×3) |
5개 | 38~61 | 60 (36+6×4) |
#include <iostream>
int main(int argc, const char * argv[]) {
int N;
int num = 0;
int ans = 1;
std::cin >> N;
for (int i = 0; num < N; i++) {
num += 6 * i;
if (N <= num + 1) {
ans = i + 1;
break;
}
}
std::cout << ans << std::endl;
return 0;
}