본문 바로가기

유니티72

언리얼엔진5 56장 [C++ Vector] ▣ FVector : 자료형이름 앞에 F가 붙으면 블루프린트를 의미, 블루프린트 Vector자료형, 블루프린트 Vector데이터타입 ▣ FVector 초기화 방법 : Fvector 변수이름 = FVector(x, y, z) ▣ ATestActor : 자료형이름에 A가 앞에 붙으면 엑터를 의미 ▣ FVector : FVector에 x, y, z 값 각각 접근하여 대입 가능 ▣ 레벨에 배치 후 컴파일 ▣ 컴파일 완료 후 C++엑터를 확인하면 Vector와 변수 생성 확인 ▣ 플레이를 클릭하고 확인하면 num 변수에 대입 확인 2023. 6. 16.
언리얼엔진5 54장 [C++ Class, uproperty] ▣ 생성한 C++ Class를 확인하고 더블클릭하여 실행 ▣ .h 헤더파일을 클릭하여 UPROPERTY(EditAnywhere) : 에디터에서 접근가능하게 하는 코드 int32 MyInt = 10; float MyFloat = 3.14; bool MyBool = true; 변수 정의 ▣ CTRL + S 키를 눌러 저장 ▣ 언리얼 에디터에서 컴파일 및 리로드 버튼 클릭 ▣ 이런 식으로 Live coding succeeded 나오면 완료 ▣ 만약 실패할 경우 3가지 확인 ▣ 비주얼스튜디오 저장 경로에 한글이 있는지 확인 ▣ 프로젝트 위치가 한글이 있는지 확인 ▣ 코드에 오타가 있는지 확인 2023. 6. 14.
언리얼엔진5 51장 [Visual Studio 설치 및 설정] ▣ 설치 시 설치 세부 정보에서 Unreal Engine 설치관리자 체크 https://docs.unrealengine.com/5.1/ko/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine/ Visual Studio 구성하기 언리얼 엔진에서 Visual Studio 사용을 위해 구성하기 위한 팁, 트릭, 기술을 소개합니다. docs.unrealengine.com ▣ 위에 API에서 나온 것처럼 설치, 언리얼엔진 설치 위치가 다 영어로 되어 있는지 확인 ▣ 설치완료 후 에디터에서 Ediltor Preferences에서 Source Code 설정 Visual Studio 구성하기 언리얼 엔진에서 Vi.. 2023. 6. 9.
언리얼엔진5 50장 [Level Open, Get Level] ▣ Open Level : Level Name에 레벨 열기 ▣ Delay : Duration 초만큼 딜레이 ▣ Get Current Level Name : 현재 있는 레벨 이름을 반환 2023. 6. 9.
언리얼엔진5 49장 [Self, Target] ▣ 블루프린트로 생성 시 BP_ 이름을 붙여서 생성 ▣ Self : 자기 자신에 대한 인스턴스 레퍼런스(주소)를 의미 ▣ Get Display Name : 인스턴스에 이름을 가져오고 반환한다. ▣ SpawnActor BP_Cube : 어떤 Class 객체를 생성할지, Location 위치를 어디로 할지 지정 ▣ Return Value : 생성된 오브젝트 주소 반환 ▣ Target 입력핀에는 객체를 연결 ▣ 시작버튼을 클릭하고 스페이스키를 누르면 큐브가 생성되면서 생성된 큐브 오브젝트 이름 출력 2023. 6. 9.
언리얼엔진5 48장 [Pure Function] ▣ 함수를 생성한 상태하고 클릭한상태에서 디테일에 Pure를 활성화를 하게 되면 Pure Function 된다. ▣ Pure Function는 실행핀이 없다. ▣ Pure Function 함수에서 inputs, output을 추가하게 되면 Get변수와 동일한 노드가 된다. 2023. 6. 8.
언리얼엔진5 47장 [Collapse to Function] ▣ 블루프린트에서 여러 블록을 클릭한 다음에 오른쪽 마우스를 누르면 Collapse to Function라는 메뉴가 있습니다. ▣ 클릭하면 이렇게 여러블록이 하나의 함수로 묶이게 된다. ▣ 만든 함수를 더블 클릭하면 이렇게 함수에 내부를 편집할 수 있습니다. 2023. 6. 8.
언리얼엔진5 46장 [Collision] ▣ 씬메뉴에서 Wireframe, Collision 등 여러 모드로 화면을 설정해서 볼 수 있다. ▣ Mesh에 들어가서 보면 Collision을 설정하는 메뉴가 있고 여러 형태로 자동으로 지정해 줄 수 있다. 2023. 6. 7.
언리얼엔진5 45장 [Actor에 자식추가] ▣ 언리얼 마켓플레이스에서 Pack6을 다운로드합니다. 매달 무료로 제공하는 에셋 체크 ▣ 다운로드하고 프로젝트에 import 합니다. 그리고 프로젝트에 Content에 Meshes 폴더를 찾습니다. ▣ SM_Rack01를 레벨에 드래그하여 불러온 후 SM_Rack02를 레벨에 있는 SM_Rack01 컴포넌트에 StaticMesh에 드래그합니다. 그럼 SM_Rack02가 SM_Rack01 엑터에 자식으로 추가된다. ▣ 그리고 SM_Rock01 엑터에서 Physic를 활성화하여 하늘에서 떨어뜨리게 되면 SM_Rock01과 SM_Rock02가 같이 붙어서 떨어지게 된다. 2023. 6. 6.
유니티 - [2D 오브젝트 따라다니는 AI] ▣ 2D 스프라이트를 생성해 주세요. Square로 Player이름으로 , Circle를 Zombie로 생성합니다. ▣ Zombie 오브젝트에 ZombieManager라는 스크립트를 생성하고 코드처럼 작성합니다. ▣ Vector2.MoveTowards(자신에 위치, 타깃위치, 이동스피드 * 경과시간); ▣ 저장하고 시작버튼을 클릭하면 Zombie 오브젝트가 Player오브젝트 방향으로 이동합니다. https://assetstore.unity.com/top-assets/top-new?aid=1101lvILc 2023. 5. 9.
C++ 16 [객체 반환] ▣ this : 자신에 객체 주소를 의미 ▣ *this : 포인터와 동일하게 자신에 객체 주소에 있는 값 ▣ return *this;으로 객체를 반환하게 되면 그 객체의 멤버변수들에 모든 값들이 반환된다. 2023. 4. 13.
C++ 13 [함수오버로딩, 디폴트 매개변수] ▣ 함수 오버로딩 : c++에서 이름이 같은 함수를 여러 개 만들 수 있다. ▣ 함수 오버로딩 : 함수이름을 중복해서 만들 수 있지만 매개변수 타입이랑 변수의 개수를 다르게 해야 한다. ▣ 디폴트매개변수 : 매개변수의 기본값을 설정 ▣ output(int num1, int num2 = 20) : 함수 호출 시 output(10, 100);처럼 호출하게 되면 함수를 호출해서 전달한 100이 매개변수의 기본값이 된다. output(10); 함수를 호출할 때 매개변수 값을 전달하지 않으면 디폴트매개변수 값으로 지정된다. ▣ 디폴트 매개 변수를 지정할 때 매개변수의 끝부분에 지정해야 오류를 방지할 수 있다. ▣ 함수를 호출할 때 매개변수를 전달해주지 않으면 오류가 발생한다. 2023. 4. 6.
C++ 09 [call by value, call by reference] ▣ 변수나 객체를 매개변수로 전달하면 값에 의한 호출이 된다. ▣ 객체를 매개변수로 값을 전달하면 객체가 복사되어서 전달하기 때문에 전달한 함수에서 객체의 값을 바꾸어도 원본에는 지장이 없다. ▣ 매개변수 객체의 생성자는 호출되지 않고 소멸자만 컴파일에 의해 호출되고 소멸된다. ▣ 객체의 주소로 매개변수를 전달하면 주소의 의한 호출이 된다. ▣ 객체의 주소를 전달했기 때문에 호출된 함수에서 값을 변경하면 원본객체에 영향을 준다. ▣ 객체의 주소로 매개변수를 전달해도 원본 객체의 생성자와 소멸자만 호출된다. 2023. 3. 28.
C++ 08 [string] ▣ string 클래스를 사용을 사용하기 위해서는 #include 헤더가 있어야 한다. ▣ string str(문자열) : 괄호를 통해 초기화 가능 ▣ string *p = new string(문자열) : 메모리 할당으로 string 객체 사용 가능 ▣ string에 속해 있는 getline() 함수 ▣ getline(cin, str, '\n') : getline(cin, 입력받을 객체, 구분문자(구분문자까지 입력)) ▣ str2 = str1 : 대입연산자를 통해서 문자열을 치환(대입)해서 바꿀 수 있다. ▣ 대표적인 string 함수들 객체.append(연결 문자) : 문자열 연결 함수 반환형 객체.length() : 문자열 길이 함수 stoi(객체) : 숫자로 된 문자열을 숫자로 변환 함수 객체.cl.. 2023. 3. 28.
C++ 07 [this 포인터] ▣ this 포인터 : 객체 자신에 주소 포인터 ▣ this->num 코드는 test객체의 포인터(클래스 Test의 int num = 0)를 접근하여 대입 ▣ 클래스의 멤버함수와 생성자함수에서만 this 사용이 가능하다. ▣ 멤버변수와 멤버함수의 매개변수의 이름이 동일할 때 this로 객체 자신을 접근하여 사용한다. ▣ 멤버 함수에서 자신의 주소를 리턴해야 할 때 사용한다. ▣ this는 정적 멤버함수(static 함수)에서는 this를 사용할 수 없다. ▣ 멤버함수에서 객체의 주소를 this로 접근이 가능하다. ▣ 위에 코드를 풀어서 작성하면 이렇게 test.testfunc(&test, 10);처럼 주소를 매개변수로 전달하고 컴파일러가 void testfunc(Test* this, int num) 코드.. 2023. 3. 24.
C++ 06 [메모리 할당] https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9 동적 메모리 할당 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 동적 메모리 할당 또는 메모리 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 운영체제가 쓸 ko.wikipedia.org ▣ 메모리 할당 : 필요한 메모리를 힙이라는 메모리 영역에서 가져와 사용하는 것 ▣ 동적메모리 : 상황에 따라 원하는 크기만큼의 메모리가 할당 가능 ▣ 정적메모리 : 메모리의 크기가 코딩되어 있어서 나중에 조절할 수 없다. ▣ 메모리 할당 방법 : 데이터타입 *포인터이.. 2023. 3. 24.
C++ 05 [객체배열] ▣ 객체배열 만들기 : 클래스이름 배열이름[크기]; ▣ 객체배열을 초기화하는 방법 : 클래스이름 배열이름[크기] = { 클래스이름(), 클래스이름(값)}; ▣ 객체배열 인덱스 수만큼 초기화를 해야 한다. ▣ Test() : 매개변수가 없는 생성자 호출 ▣ Test(10) : 매개변수가 있는 생성자 호출 ▣ 소멸자는 큰 숫자 인덱스부터 소멸한다. 그렇기 때문에 매개변수가 있는 소멸자가 먼저 호출되었다. 2023. 3. 24.
유니티 [부모,자식오브젝트 분리] ▣ 안녕하세요. 이번장에서는 부모, 자식 오브젝트를 분리하는 코드를 공부해 보겠습니다. ▣ 먼저 게임 오브젝트 2개를 생성해 주시고 게임오브젝트2를 게임오브젝트1에 자식으로 넣습니다. 그리고 게임오브젝트 2에 스크립트를 하나 생성합니다. ▣ 게임오브젝트 2의 스크립트에서 Start() 함수에 gameObject.transform.SetParent(null); 를 작성합니다. SetParent() 함수는 부모오브젝트를 정해주는 함수인데 매개변수 값에 null 를 입력합니다. 저장을 하고 ▣ 플레이를 누르면 위에 이미지처럼 오브젝트가 분리된 걸 확인할 수 있습니다. 2023. 1. 26.
유니티 - [Header] ▣ 안녕하세요. 이번장에서는 Header를 공부해보겠습니다. ▣ 우선 스크립트에서 [Header("Weapon")] Header키워드를 넣고 괄호 안에 제목을 넣어주세요. 저장을 하고 Inspector에 스크립트 화면을 확인하면 ▣ 이렇게 그룹화를 할 수 있습니다. 2022. 8. 25.
유니티 - [점프 예시1] ▣ 안녕하세요. 이번장에서는 2D오브젝트를 점프하는 코드 중 한 가지를 공부해보겠습니다. 점프를 하는 방법은 여러 가지 방법이 있습니다. 상황에 따라 다양한 코드로 할 수 있습니다. 점프 코드를 할 때 핵심은 내가 어느 좌표로 할 것인가?를 생각해봐야 합니다. 저희는 2D에서 Y값을 바꿔 점프를 구현하겠습니다. ▣ 먼저 2D프로젝트를 생성해주시고, 2D Object에서 Sprites 두 개를 만들 만들어주세요. Player(원), Ground(사각형) ▣ 원과 사각형에 이름을 각각 Player와 Ground로 이름을 지정해주시고, Player오브젝트에 스크립트와 Rigidbody2D 그리고 ▣ Capsule Collider2D 컴포넌트를 추가해주세요. ▣ Ground에는 BoxCollider2D 컴포넌트.. 2022. 8. 25.
유니티 - [이동, 방향, 키입력] ▣ 안녕하세요. 이번장에서는 오브젝트 이동 코드, 오브젝트 방향 전환, 키 입력 코드 방법 중 한 가지씩을 공부해보겠습니다. 밑에 코드를 하나씩 작성하고 실행해보면 어떻게 작동하는지는 눈으로 직접 보며 공부해보세요. 2022. 8. 22.