본문 바로가기

분류 전체보기638

언리얼엔진5 10장 [For Loop] ▣ 안녕하세요. 이번장에서는 For Loop 함수에 대해 공부해 보겠습니다. ▣ 블루프린트에서 For Loop이라고 검색을 하시면 For Loop, For Loop with Break라는 함수 두 개가 나옵니다. ▣ 먼저 For Loop을 공부해 보겠습니다. For Loop 함수를 보면 왼쪽에 First Index, Last Index 원이 있습니다. 이건 시작과 끝 숫자를 의미하는데 1~11이라고 하면 1,2,3,4,5,6,7,8,9,10,11까지 11번을 반복한다고 생각하시면 됩니다. Completed는 반복문이 끝나면 호출되는 노드입니다. 다음에 PrintText를 연결한 다음 컴파일 저장을 해보겠습니다. ▣ 씬에서 플레이를 클릭하면 1~11까지 출력되고 End가 출력되는 걸 확인할 수 있습니다. .. 2023. 1. 25.
언리얼엔진5 9장 [While 반복문] ▣ 안녕하세요. 이번장에서는 While 반복문에 대해 공부해 보도록 하겠습니다. ▣ 먼저 변수를 생성합니다. 기본값은 10으로 지정합니다. ▣ 노드바탕에서 오른쪽마우스를 클릭하고 whlie을 검색하면 Whlie Loop이라는 함수가 나옵니다. ▣ 클릭해서 이런 식으로 코딩합니다. Branch를 공부해서 아시겠지만 While Loop 함수블록에 왼쪽에 보면 원이 하나 있습니다 빨간색은 Bool 자료값 받아오는 원입니다. 다시 말해 While Loop은 조건이 True 경우 작동됩니다. Num으로 0보다 클 경우에 대한 조건을 연결합니다. 그럼 10이 0보다 크기 때문에 While 문이 작동합니다. 그리고 --를 이용하여 Loop Body를 연결해 줍니다. Loop Body는 While Loop에 조건이 T.. 2023. 1. 25.
언리얼엔진5 8장 [MAX, MIN, Clamp] ▣ 안녕하세요. 이번장에서는 MAX, MIN, Clamp 블루프린트 함수에 대해 공부해 보겠습니다. ▣ 먼저 num1, num2 변수를 생성합니다. 자료형은 integer로 지정하고 변수의 값인 Default Value를 num1 = 10, num2 = 20로지정합니다. ▣ 그리고 노드바탕에서 오른쪽마우스를 클릭하고 Max, Min을 각각 검색하면 이렇게 MAX와 MIN에 관련된 여러 함수들이 나옵니다. 여기서 (Integer)로 구분하는 Max, Min 함수를 가지고 옵니다. ▣ 그리고 Max, Min 블록 함수 왼쪽에 첫 번째 두 번째 원에 각각 num1, num2를 연결합니다. 그리고 Max, Min 블록 함수 오른쪽원에 있는 반환값을 FormatText를 이용하여 출력하는 코드를 작성합니다. Pr.. 2023. 1. 25.
언리얼엔진5 7장 [AND, OR, NOT, branch] ▣ 안녕하세요. 이번장에서는 블루프린트에 논리연산자를 공부해 보겠습니다. ▣ LevelBluePrint에서 두 개의 변수를 생성합니다. playerPower, playerLevel로 이름을 각각 지정하고 자료형을 Integer로 지정합니다. playerPower에 기본값을 100으로 ▣ playerLevel 기본값은 5로 지정합니다. ▣ 다음에 변수를 각각 Get 하여 바탕에 넣어주시고 바탕에서 오른쪽마우스 클릭하여 > 관계연사자를 가지고 옵니다. ▣ 그리고 노드바탕에서 오른쪽 마우스를 클릭하고 bool이라 검색하겠습니다. 그럼 Boolean에 관련된 논리연산자가 나오는 걸 확인할 수 있습니다. 이중에 먼저 AND를 사용해 보겠습니다. ▣ 위에 이미지처럼 AND 블록에 왼쪽 원에 두 개의 관계연산자에 빨.. 2023. 1. 20.
언리얼엔진5 6장 [Switch] ▣ 안녕하세요. 이번장에서는 Switch문을 공부해 보도록 하겠습니다. ▣ 레벨 블루프린트에서 integer 형으로 변수를 하나 생성합니다. 그리고 변수를 Get 한 다음에 변수에서 원을 드래그 하고 배경에서 마우스를 떼면 여러 가지 기능들 창이 나오는데 여기서 switch라고 검색을 하면 위에 이미지처럼 switch on int 있습니다. 일반적으로 노드바탕에서 오른쪽마우스를 클릭해서 검색해도 되지만 변수를 생성하고 연결하여 검색한 이유는 integer변수에 연결가능한 switch가 바로 나오기 때문에 위에서 처럼 코드를 진행했습니다. switch on int 이걸 클릭해 주세요. ▣ 그럼 위에 이미지처럼 Switch on int 블록이 생성됩니다. Add pin을 눌러 case 조건을 생성할 수 있습.. 2023. 1. 19.
언리얼엔진5 5장 [keyboard event, Random, Branch] ▣ 안녕하세요. 이번장에서는 키보드를 클릭하는 이벤트, Branch에서 bool 변수를 생성하는 방법, 랜덤함수에 대해 공부해 보겠습니다. ▣ 키보드이벤트를 사용하기 위해서는 블루프린트 바탕에서 오른쪽마우스를 클릭하고 Keyboard라고 검색하면 Keyboard Events가 나옵니다. 여기서 우리는 1번 키를 누르는 이벤트를 사용하기 때문에 1번 키를 선택합니다. ▣ 그리고 num이라는 변수를 생성하고 1번 키를 누르면 +1을 하는 코드를 작성합니다. ++는 +1과 동일한 연산자입니다. 1번키를 누르는 이벤트블록을 보면 Pressed는 키를 클릭하면 호출하는 이벤트이고 Released는 키를 누르고 떼면 작동하는 이벤트입니다. 코드를 다 완성했다면 컴파일 저장을 하고 ▣ 씬 화면에서 플레이버튼을 클릭하.. 2023. 1. 19.
언리얼엔진5 4장 [Branch, if, 관계연산자, 주석] ▣ 안녕하세요. 이번장에서는 Branch(조건문)에 대해 그리고 주석에 대해 공부해 보겠습니다. ▣ 프로젝트를 생성해 주시고 Level BluePrint를 열고 노드바탕에서 오른쪽마우스를 클릭하고 if를 검색하면 Branch가 나옵니다. Branch는 조건문입니다. if문과 동일하기 때문에 if라고 검색하면 Branch가 나옵니다. Branch는 많이 사용하기 때문에 단축키도 있습니다. ▣ B키를 클릭한 상태에서 + 마우스왼쪽클릭 하면 Branch가 생성됩니다. ▣ Branch에 조건문을 사용하기 위해서는 관계(비교) 연산자가 필요합니다. 참(True), 거짓(False)을 구분하기 위함입니다. 노드배경에서 마우스오른쪽버튼을 클릭하고 > 기호를 검색해 보겠습니다. 그럼 Greater라는 연산자가 나옵니다.. 2023. 1. 18.
언리얼엔진5 3장 [산술연산자, SET, ++] ▣ 안녕하세요. 이번장에서는 블루프린트에서 간단한 산술연산을 공부해 보겠습니다. ▣ 처음에 프로젝트를 열어 BluePrint를 열어주시고 integer 변수를 생성합니다. 그리고 컴파일버튼을 클릭한 다음 변수의 기본값을 100으로 지정합니다. CTRL키를 누르고 변수를 드래그 한 다음에 변수의 GET을 ALT키를 눌러 변수를 드래그 한 다음에 변수의 SET을 가져옵니다. 그리고 (-) 산술연산자를 검색해서 가져온 다음에 왼쪽 밑에 값을 1로 지정하여 변수 값에 -1을 출력하는 노드를 작성해 보겠습니다. ▣ 여기서 한가지 팁을 드리면 노드를 연결할 때 조금 지저분하게 연결되는데 정렬하고 싶은 노드를 블록을 지정한 다음에 Q키를 누르면 간단하게 정렬이 됩니다. 그리고 컴파일 버튼을 클릭하고 CTRL키를 누른.. 2023. 1. 14.
언리얼엔진5 2장 [블루프린트, 변수, get, set, formatText] ▣ 안녕하세요. 이번장에서는 블루프린트 변수 그리고 변수를 get, set에 대한 부분 formatText에 대해 공부해 보도록 하겠습니다. ▣ level bluePrint를 열어주시고 Event Graph에서 왼쪽메뉴를 보면 VARIABLES 변수에 대한 메뉴가 있습니다. 여기서 + 버튼을 누르시면 ▣ 이렇게 변수가 생성된 걸 확인할 수 있습니다. 여기서 Boolen이라고 되어 있는 자료형을 누르면 많은 자료형들이 나와 있는 걸 확인할 수 있습니다. ▣ 기본적으로 많이 사용하는 몇 가지만 살펴보겠습니다. Byte형는 1byte 크기 정수로 0~255까지만 표현이 가능합니다. 보통 주인공의 능력치, 캐릭터 커스텀할 때 쓰이는 게이지 0~255를 표현할 때 사용합니다. integer도 동일하게 정수이지만 .. 2023. 1. 13.
언리얼엔진5 1장 [프로젝트생성, 레벨블루프린트] ▣ 안녕하세요. 언리얼엔진 5 공부를 시작해보려고 합니다. 언리얼엔진 5에는 너무 많은 기능들이 있기 때문에 제가 공부하면서 중요했고 핵심이라고 생각하는 실습 위주로 큰 틀로 업데이트를 진행하겠습니다. 공부하실 때 언리얼엔진 5 문서 API를 읽으시면서 공부하시면 많은 도움이 됩니다. 공부하시다가 모르시는게 있으시면 댓글을 남겨주시면 저도 함께 공부해서 댓글 남기도록 하겠습니다. https://docs.unrealengine.com/5.0/ko/ 언리얼 엔진 5 문서 언리얼 엔진 5 학습을 위한 종합 리소스 docs.unrealengine.com ▣ 먼저 프로젝트를 생성함에 있어서 중요한 부분을 공부해 보겠습니다. 설치하는 방법은 인터넷에 자료가 많으니 생략하도록 하겠습니다. ▣ 프로젝트를 생성 시 St.. 2023. 1. 12.
C vs C++ 입출력 차이 ▣ C언어, C++ 입력, 출력 차이 헤더를 선언 방법 : C언어 C++ , C++에서는. h 확장자를 붙이기 않는다. C언어 입력 : scanf("%d", &number), scanf함수 안에 어떤 데이터 타입으로 입력받을지 데이터 타입(형식)과 변수의 주소를 넣어야 한다. C++ 입력 : cin >> number , >> 추출 연산자를 이용하여 어디 변수에 저장하는지만 지정해준다. C언어 출력 : printf("%d", number), printf함수 안에 어떤 데이터 타입(형식)으로 출력할지를 지정 그리고 변수나 숫자를 넣어서 출력한다. C++ 출력 : cout 2022. 12. 8.
C++ 18장 [템플릿1] ▣ 안녕하세요. 이번장에서는 템플릿에 대해 공부해보도록 하겠습니다. C++에서 함수를 작성하다 보면 함수의 이름을 동일하게 만드는 경우가 있습니다. 같은 의도로 다른 자료를 받는 경우에 그렇습니다. 그걸 오버 로딩이라고 하는데 이럴 경우 반환형이나 매개변수에 자료형(데이터 타입)을 모두 다 다르게 하여 구분을 해서 함수를 만들기도 합니다. 하지만 우리가 모든 자료형(데이터 타입)의 경우의 수를 다 생각하고 함수를 만들 수는 없습니다. 그렇기 때문에 템플릿을 사용해야 합니다. 템플릿은 형판이라는 뜻을 가지고 있으며, 함수에서 매개변수에 자료형 타입만 다른 중복된 함수들을 일반화시킨 틀을 템플릿이라고 합니다. 설명만 들으면 어려울 수 있으니 코드를 작성하며 공부해보도록 하겠습니다. ▣ 템플릿을 작성하려면 t.. 2022. 11. 24.
C++ 17장 [프렌드 함수] ▣ 안녕하세요. 이번장에서는 프렌드 함수를 공부해보도록 하겠습니다. C++에서 객체(클래스)의 private 멤버에는 해당 객체가 public 멤버 함수를 통해서만 접근이 가능했습니다. 하지만 상황에 따라 객체의 멤버 함수가 아닌 일반 함수도 private 멤버에 접근해야만 할 경우가 있습니다. 이럴 때 프렌드 함수를 사용합니다. 프렌드 함수를 사용하기 위해서는 프렌드(friend)라는 접근 제어 키워드를 사용해야 합니다. 코드를 작성하며 공부해보도록 하겠습니다. ▣ 먼저 클래스를 선언해주시고 public: 접근 연사자에서 friend 키워를 넣어 접근할 함수를 작성합니다. 그리고 함수의 매개변수에 (Calculator c)를 매개변수로 주시고 sum(Claculator c) 코드에서 처럼 매개변수 클래.. 2022. 11. 18.
C++ 16장 [static 멤버 변수, 함수] ▣ 안녕하세요. 이번장에서는 static 멤버에 대해 공부해보도록 하겠습니다. static을 공부할 때는 메모리 영역과 정적, 동적 이런 이야기를 해야 하지만, 이번장에서는 static에 사용 방법과 용도를 간단하게 공부해보겠습니다. ▣ static 멤버 변수와 멤버 함수를 선언하는 건 간단합니다. 선언할 멤버 변수 자료형 앞에 static 키워드를 붙어주시면 됩니다. 여기서 중요한건 static 멤버 변수는 모든 객체를 공유합니다. 그래서 반드시 int Calculator::number = 500; 코드에서처럼 전역 범위에서 정의 및 초기값을 지정해야 합니다. ▣ 메인 함수에서 객체를 각각 선언해주시고 선언한 객체로 static 멤버 변수를 접근하여 static 변수 주소를 출력하는 코드와 sum() .. 2022. 11. 16.
C++ 15장 [디폴트 매개변수] ▣ 안녕하세요. 이번장에서는 디폴트 매개변수(기본 매개변수)에 대해 공부해보겠습니다. 디폴트 매개변수는 말 그대로 매개변수를 기본으로 정의하는 걸 의미합니다. 코드를 작성하며 공부해보겠습니다. ▣ 클래스를 생성하는 코드를 작성해주시구요. 클래스에 멤버 함수를 생성해주세요. 멤버 함수 매개변수에 int n=10 이런 식으로 디폴트 매개변수를 정의합니다. 그리고 메인 함수에서 객체를 생성하고 c1.sum(), c1.sum(20) 이렇게 호출해주세요. 그럼 sum() 함수처럼 매개변수에 값을 전달하지 않아도 오류 없이 기본으로 지정되어 있는 10을 더한 값을 출력하고 sum(20) 함수 호출은 매개변수를 20으로 전달했기 때문에 디폴트 매개변수는 무시하고 내가 전달한 값 20을 저장하게 됩니다. 그리고 출력 .. 2022. 11. 11.
C++ 14장 [복사생성자] ▣ 안녕하세요. 이번장에서는 복사 생성자(Copy Constructor)를 공부해보겠습니다. 복사 생성자란 다른 객체의 내용을 복사해서 만드는 생성자를 의미합니다. 다시 말해 객체를 복사해서 사용한다라고 생각하시면 됩니다. ▣ 복사 생성자는 컴파일러에 의해 자동으로 만들어집니다. 그리고 모든 멤버 변수를 자동 복사합니다. 직접 코드를 작성하며 공부해보겠습니다. ▣ 먼저 클래스를 생성하고 멤버 함수를 선언했습니다. 코드를 작성하다가 주의해야한껀 private으로 멤버 변수를 지정했기 때문에 this->num = n를 기본 생성자에 넣어주셔야 내가 기본생성자 호출로 받아온 매개변수 값을 멤버 변수에 대입할 수 있습니다. ▣ 그리고 이렇게 Calculator c2(c1), Calculator c3 = c1 코.. 2022. 11. 11.
C++ 13장 [참조변수] ▣ 안녕하세요. 이번장에서는 참조 변수를 공부하도록 하겠습니다. 참조란 무언가 가리키는 걸 의미합니다. 참조 변수의 개념은 C언어의 포인터와 같은 방식입니다. 그럼 코드를 작성하고 이야기를 이어가겠습니다. ▣ C++에서 참조 변수는 int &p 코드처럼 & 기호를 넣어주면 됩니다. C언어의 포인터 int*p와 거의 비슷합니다. &는 참조자를 의미합니다. 우리가 C언에서 공부했던 것처럼 &를 기호를 변수 이름 앞에 &변수 이름 하면 주소를 의미합니다. 참조 변수를 만들 때 중요한 건 int&p = n; 코드처럼 참조 변수 초기화 시 변수를 대입해줘야 합니다. 대입하지 않으면 오류가 나게 됩니다. 그리고 Calculator& pCal = cal; 코드처럼 객체 클래스도 참조 변수로 사용이 가능합니다. 이제 .. 2022. 11. 4.
C++ 12장 [함수객체] ▣ 안녕하세요. 이번장에서는 함수를 호출할 때 매개변수를 객체로 전달하는 코드를 공부해보도록 하겠습니다. ▣ 클래스의 소멸자와 생성자를 각각 지정해주고 메인 함수에서 객체를 정의한 다음에 디버그를 하면 이렇게 클래스 생성 시 생성자와 소멸자가 호출되는 걸 확인할 수 있습니다. 이번에는 클래스 멤버함수가 아닌 따로 함수를 만들고 그 함수의 매개변수에 클래스 객체를 전달하는 코드를 작성해보겠습니다. ▣ 코드를 작성했다면 이제 코드를 살펴보겠습니다. sum(cal) 코드를 살펴보면 sum()이라는 함수에 매개변수에 cal 클래스 객체를 전달했습니다. 그럼 클래스가 전달됩니다. 여기서 중요한 건 그 클래스의 생성자는 호출되지 않고 소멸자만 호출된걸 확인할 수 있습니다. 그 이유는 전달 받은 원본의 클래스 객체의.. 2022. 11. 3.
C++ 11장 [string] ▣ 안녕하세요. 이번장에서는 string클래스에 대해 공부해보도록 하겠습니다. 문자열은 문자를 여러 개를 관리하는 문자 배열을 의미합니다. 다시 말해 문자를 여러 개 관리하는 메모리를 의미합니다. C언어에서는 char라는 자료형으로 char str [5] 이렇게 문자열을 다뤘습니다. 배열은 처음에 선언할 때 메모리의 크기를 먼저 정하기 때문에 문자열을 저장하고 다루기가 어려웠고 관리하기도 어려움이 많았습니다. 그래서 C++에서는 그점을 개선하기 위해 표준 라이브러리에서 제공하는 클래스, 문자열 객체가 바로 string입니다. string클래스는 문자열의 크기에 맞춰서 메모리 크기를 조절하기 때문에 앞에 이야기한것처럼 메모리의 크기를 지정하고 미리 생각했야 했던 문제들은 쉽게 해결됩니다. 이제 코드를 작성.. 2022. 10. 28.
C++ 10장 [this 포인터] ▣ 안녕하세요. 이번장에서는 this포인터를 공부해보도록 하겠습니다. this 포인터는 말 그대로 포인터를 의미하며 단순한 포인터가 아닌 멤버 함수를 호출한 객체 자신을 가리키는 포인터, 객체 자신에 대한 포인터를 의미합니다. 코드를 작성하며 공부해보도록 하겠습니다. ▣ 기본적인 클래스와 멤버 함수를 만들어주세요. this->n = n;코드를 보시면 이게 무슨 코드이지?라고 생각하실 거라 생각합니다. 이 코드를 해석하면 this(자신의 객체 주소를 의미하고), ->는 주소에 접근하는 연산자입니다. 그리고 = n 은 멤버 함수에 있는 int n 매개변수의 값을 현재 객체에 있는 멤버 변수에 대입을 하라는 의미입니다. 디버그하고 출력을 해보면 각각 객체마다 지정했던 멤버 함수에 값이 출력되는 걸 확인할 수 .. 2022. 10. 27.
C++ 9장 [메모리 할당] ▣ 안녕하세요. 이번장에서는 메모리 할당에 대해 공부해보겠습니다. 메모리 할당은 프로그래밍에서 실행하는 동안 사용할 메모리 공간을 할당(배정, 몫을 나누는 것) 의미합니다. ▣ 그럼 왜 메모리 할당이 필요할까요? 우리가 프로그램을 만들 때 "내가 몇 기가짜리를 만들어야지"라고 계획을 하지 않습니다. 그렇게 계획을 하고 만들더라도 프로그램에 텍스트 입력 수, 이미지나 도형 크기 등등 메모리를 어느 정도 사용할지에 대한 부분을 모두 다 생각하며 제작하는 건 불가능합니다. 그렇기 때문에 프로그램을 만들고 실행 중 내가 필요한 메모리를 할당받고 필요 없을 때 반환하는 메모리 할당을 진행해야 합니다. 그럼 이제 코드를 작성하며 공부하겠습니다. ▣ int* p = (int*) malloc(sizeof(int)) 이.. 2022. 10. 26.