728x90
반응형

전체 글 38

10. The Pawn Class & Enhanced Input System (2)

1. Enhanced Input System 우선 새롭게 InputAction과 InputMappingContext를 만들어준다 InputMappingContext를 이용하여 InputAction을 연결해준다 IA_Move라는 InputAction을 W키로 Mapping시킴 이제 PlayerController의 EnhanceInputLocalPlayerSubSystem에서 만든 InputMappingContext를 Add해주어야 사용이 가능하다 만든 InputAction을 Event로 사용할 수 있다 이를 C++로 변환하면 아래와 같다 InputMappingContext는 UInputMappingContext타입이다 //Bird.h class UInputMappingContext //전방선언 UPROPE..

Unreal 2024.01.03

9. The Pawn Class & Enhanced Input System (1)

1. Binding Input 게임을 시작하게 되면 AController가 생성되고 Player에 할당된다 그리고 Controller는 Possess(빙의)할 Pawn을 선택한다 Pawn은 Actor와 다르게 Controller에 의해 빙의될 수 있다 Pawn에 Controller가 빙의하면 해당 Pawn을 제어하고 입력을 받을 수 있다 Pawn은 Auto Possess Player라는 변수가 있고 이를 Player0로 지정하면 Pawn의 Player를 월드의 첫번째 Player로 지정할 수 있다 (멀티플레이 게임같은 경우 순서대로 Player0, Player1, Player2로 늘어나게 된다) Pawn의 DetailTab에서 Auto Possess Player를 지정할 수 있다 (기본은 Disabled..

Unreal 2024.01.03

8. Control Program Flow (2)

1. Conditional Operator (조건부 연산자) 조건식이 참이면 ? 뒤의 명령을 실행하고 거짓이면 : 뒤의 명령을 실행한다 한줄로 if-else문 처리를 할 수 있다 (조건식) ? 명령1 : 명령2 int main() { int a{ 10 }; int b{ 20 }; int result{ 0 }; result = (a > b) ? a : b; //a가 b보다 크면 a, a 가 b보다 작으면 b를 result에 할당 result = (a < b) ? (b - a) : (a - b); //a가 b보다 작으면 b-a, a가 b보다 크면 a-b 처리 cout

C++ 2023.12.21

8. The Pawn Class (1)

1. The Pawn Class Pawn은 Controller가 Possess할 수 있다 (직접 컨트롤 할 수 있다) ex) 마우스, 키보드 클릭으로 Pawn을 제어할 수 있다 Pawn Class는 Actor Class를 상속받는다 Pawn Class를 만들기 위해서는 APawn을 상속받아 클래스 생성을 해주면 된다 생성하게 되면 APawn을 상속받은 클래스가 만들어진다 UCLASS() class STUDYUE_API ABird : public APawn //APawn 상속 { GENERATED_BODY() public: ABird(); protected: virtual void BeginPlay() override; public: virtual void Tick(float DeltaTime) overr..

Unreal 2023.12.15

7. Expose Variable & Function, Template Function, Components

1. Expose Variable To BP 변수를 BP에 노출시키면 BP의 DetailTab에서 제어가 가능하다 월드에 배치된 Actor를 선택하고 각각의 변수값을 DetailTab에서 변경할 수 있다 UPROPERTY()키워드로 해당 변수를 ReflectionSystem으로 제어할 수 있게 해준다 UPROPERTY()변수들은 전부 0으로 초기화가 된다 UPROPERTY(EditDefaultsOnly) //BP Class의 DetailTab에서만 값 수정이 가능하다 (월드에 배치된 Actor Instance의 DetailTab에서는 수정이 불가하다) float Amplitude = 0.25f; UPROPERTY(EditInstanceOnly) //World에 배치된 Actor Instance의 Deta..

Unreal 2023.12.14

6. Operators (연산자)

1. Assignment Operator (대입 연산자) C++의 연산자는 대부분 binary operator이다 (2개의 피 연산자로 연산하는 연산자), unary operator는 1개의 피연산자로 연산하는 연산자이다, ternary operator는 3개의 피연산자로 연산하는 연산자이다 대입연산자(assignment)는 객체에 값을 대입해 값을 수정/대입하는 연산자이다 (값에는 literal값뿐 아니라 객체(변수), 긴 수학식도 가능하다) 대입연산자는 =으로 사용한다 (equal의 의미가 아님), 오른쪽의 값을 왼쪽의 변수로 대입한다는 의미이다 (타입이 맞지 않으면 컴파일에러 발생) (값을 변수의 메모리 위치에 저장하는 개념이다) const변수는 대입연산자로 값을 대입할 수 없다 (const(상수)..

C++ 2023.12.12

5. Array And Vector

1. What is an Array? Array (배열)이란 복합 데이터 타입 or Data Structure이다 -> 배열은 다른 데이터 타입으로 만들어진 데이터 타입이다 ex) 정수들로 만들어진 배열은 정수타입 배열이다 배열의 모든 요소들은 같은 타입이어야 한다, 각 요소들에 직접 접근할 수 있다 (배열 요소들의 위치 인덱스를 이용한다) 배열은 같은 타입의 데이터들 여러개를 관리하기 쉽게 하기 위해서 사용한다 ex) 100명의 시험점수를 관리할 때 -> 1개씩 변수로 만들어 관리하면 컨트롤하기 힘드며 실수가 발생할 확률이 높다 배열은 원하는 만큼의 요소들을 제공하고 하나의 이름으로 관리한다 (각각의 요소에 이름을 붙히지 않는다) 배열의 크기는 고정되어 있다 (한번 사이즈를 정해서 만들면 저절로 변하지..

C++ 2023.12.09

6. Moving Object & Trig Function(삼각함수)

1. SetActorLocation & SetActorRotation SetActorLocation : 원하는 Actor를 원하는 위치로 이동시킨다 원하는 타겟 위치 (FVector)를 인자로 가진다 SetActorLocation(FVector(0.f, 0.f, 50.f)); SetActorLocation() : 원하는 위치 (FVector), 해당 Actor를 움직일 때 다른 오브젝트에 충돌하는지 감지하고 충돌한다면 직전에 멈추게 할지 (bool), FHitResult*, ETeleporType을 인자로 가진다 (추후에 자세히 설명) SetActorRotation : 원하는 Actor를 원하는 회전값만큼 회전시킨다 원하는 회전값 (FRotator), 이 Actor가 충돌 콜리젼이 허용될 때 회전이 이 ..

Unreal 2023.12.08

4. Variables and Constants

1. What is a Variable 변수는 메모리 위치의 추상화이다 (실질적으로 데이터는 특정 메모리 위치에 존재하고 변수가 이를 추상화 한다) 변수는 값을 나타내는 의미있는 이름을 사용하게 해준다 변수는 타입과 값으로 구성된다, 타입은 변수가 저장할 수 있는 값의 타입을 의미하며 값은 변수에 들어갈 값이다 변수는 사용전에 반드시 선언되어야 한다 (static typing -> 런타임에 선언되지 않고 미리 선언된 걸 컴파일할 때 실행한다) 프로그램이 실행되며 변수의 값은 변할 수 있다 2. Declaring and Initializing Variable 변수 선언은 타입 변수이름;으로 선언한다 int는 정수, double은 실수, string은 문자열 타입이며 C++에서는 사용자 정의 타입도 만들어 ..

C++ 2023.12.07
728x90
반응형