본문 바로가기

코딩공부26

언리얼엔진5 65장 [C++ 함수] ▣ .h 헤더파일에서 void Moveing() const로 함수 선언 ▣ 함수 선언 방법 : void(반환형) Moveing(함수이름) (매개변수) const 정적설정, 순으로 선언 ▣ 함수 끝에 const를 붙이면 함수 안에서 값 수정 불가 ▣ ATestActor : A는 엑터를 의미 ▣ ::는 멤버함수로 정의하기 위함 ▣ BeginPlay() 함수 안에 Moveing(); 함수 호출 ▣ 컴파일 저장 후 확인 2023. 6. 23.
언리얼엔진5 64장 [C++ 출력로그] ▣ UE_LOG(로그유형, 로그 수준, 출력해야 할 텍스트) : 로그출력 함수 ▣ UE_LOG(LogTemp, Display, TEXT("%f"), 변수); : 이런 식으로 변수도 출력가능 ▣ 컴파일 저장 후 Content Drawer옆에 Output Log 클릭하면 확인 ▣ Display, Error, Warning : 같이 각각 경고 문구 색이 다르다. https://docs.unrealengine.com/5.0/en-US/API/Plugins/NeuralNetworkInference/UE_LOG/1/ UE_LOG docs.unrealengine.com ▣ FString : 스트링 클래스 ▣ TEXT("Name : %s"), *name) : *name는 포인터로 접근한다고 생각하시고 붙이시면 됩니다... 2023. 6. 23.
언리얼엔진5 63장 [C++ 블루프린트 생성 및 매쉬생성] ▣ C++ 클래스에서 오른쪽마우스를 클릭 -> Create Blueprint 선택하여 블루프린트로 생성 ▣ 이름 및 저장 위치 지정 후 생성 ▣ 블루프린트에서 Viewport에 내가 원하는 Mesh를 드래그하여 지정 ▣ 원이 엑터의 중심축입니다. 중심축을 맞춰서 매쉬를 배치 후 디테일탭에 값 조절 후 컴파일 ▣ 완성한 블루프린트를 두 개를 놓고 각각 다른 값을 적용한 다음에 플레이 2023. 6. 22.
언리얼엔진5 62장 [C++ 오브젝트좌우이동] ▣ GetSafeNormal() : 벡터의 값을 정규화, 예로 복잡한 벡터값은 필요 없기 때문에 우리 방향을 지정하기 위해 값을 1, -1, 0 이런 식으로 정규화 ▣ 이동거리보다 크면 이동한 위치가 시작위치로 변경돼야 하기 때문에 정규화를 곱하여 StartLocation에 더해서 대입 ▣ BoxVeloctiy = -BoxVeloctiy : 변수에 -변수를 대입하면 -변수로 되고 -변수에 -변수를 대입하면 +가 된다. https://docs.unrealengine.com/4.26/en-US/API/Runtime/Core/Math/FVector/GetSafeNormal/ FVector::GetSafeNormal Gets a normalized copy of the vector, checking it is .. 2023. 6. 22.
언리얼엔진5 61장 [C++ 벡터사이 거리 Distance, VisibleAnywhere] ▣ UPROPERTY(VisibleAnywhere) : 편집할 수 없고 에디터에서 데이터를 보기만 하게 하는 기능 ▣ DistanceNumber = FVector::Distance(StartLocation, CurrentLocation); : 벡터 1과 벡터 2 사이의 거리를 반환하는 함수 ▣ FVector::Dist(StartLocation, CurrentLocation) : 벡터 1과 벡터 2 사이의 거리를 반환하는 함수 위에 함수와 동일 ▣ :: 콜론 두 개는 범위지정 연산자, 클래스에 접근 ▣ 컴파일 저장 후 확인 2023. 6. 21.
언리얼엔진5 60장 [C++ DetaTime, 플랫폼지정] ▣ UPROPERTY(EditAnywhere, Category = "Player Moving") : Category 플랫폼 이름 추가 ▣ FVector에 값을 + 더하기 하여 위치 변경가능 ▣ DetaTime : 마지막 프레임 업데이트 이후 경과된 시간, 다시 말해서 각 렌더링 프레임 사이의 시간 ▣ DetaTime을 곱해야지 컴퓨터 사양별로 다르게 보이는 게 아닌 프레임을 맞춰서 작동 ▣ 컴파일 저장 후 플랫폼 추가 및 이동 확인 https://www.parallelcube.com/2017/10/25/why-do-we-need-to-use-delta-time/ Why do we need to use Delta Time? – Parallelcube You’ve probably seen an old gam.. 2023. 6. 20.
유니티 - [충돌시 tag 변경] ▣ gameObject.tag = "Hit" , collision.gameObject.tag = "Hit" ▣ 충돌 시 나의 tag 뿐만 아니라 상대방에 tag도 변경가능 2023. 6. 20.
유니티 - [GetComponent 비활성화] ▣ GetComponent().enabled = false; ▣ GetComponent().useGravity = false; 로 해당 컴포넌트 비활성화 ▣ MeshRenderer m_renderer, Rigidbody rb : 참조 캐싱, 원하는 기능을 메모리에 저장해서 사용 ▣.으로 접근하여 해당 컴포넌트에 다양한 기능 사용가능 2023. 6. 20.
유니티 - [Time] ▣ Time.time : 프로젝트 재생 시작 후 경과한 시간 초 단위로 반환합니다. ▣ Time.detaTime : 마지막 프레임이 완료된 후 경과한 시간을 초 단위로 반환합니다. 이 값은 게임이나 앱이 실행될 때 초당 프레임(FPS) 속도에 따라 다릅니다. https://docs.unity3d.com/kr/2021.3/Manual/TimeFrameManagement.html 중요 클래스 - Time - Unity 매뉴얼 Unity의 Time 클래스가 제공하는 중요한 기본 프로퍼티를 사용하여 프로젝트에서 시간과 관련된 값으로 작업할 수 있습니다. docs.unity3d.com 2023. 6. 20.
유니티 - [오브젝트 색 변경] ▣ GetComponent().material.color = Color.red; 로 Mesh Renderer컴포넌트에 Material를 접근하여 색 변경, Color. 로 접근하게 되면 여러 색으로 변경 가능 ▣ 컴파일 저장후 플레이버튼을 누르고 닿게 되면 색 변경 2023. 6. 20.
언리얼엔진5 59장 [C++ GetActorLocation, SetActorLocation] ▣ GetActorLocation() : 엑터의 위치를 반환해 주는 함수, 블루프린트와 동일 ▣ SetActorLocation() : 엑터의 위치를 지정하는 함수, 블루프린트와 동일 ▣ 컴파일 후 시작버튼을 클릭하면 현재위치에서 Z +1씩 이동 2023. 6. 16.
언리얼엔진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 52장 [씬 뷰 미리보기 카메라 사이즈 조절] ▣ 3인칭으로 카메라를 넣을 경우 위에 이미지처럼 컴퓨터 해상도에 따라서 레벨씬에 미리 보기 카메라가 너무 크게 보이는 경우가 있다. 이럴 때 미리 보기 카메라 사이즈를 줄이는 방법이 있다. ▣ Camera Preview Size를 조절하면 위에 이미지처럼 미리 보기 뷰 카메라 사이즈를 줄일 수 있다. 2023. 6. 10.
언리얼엔진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.
API란 무엇을까요? ▣ API란 Application Programming Interface에 약자입니다. Application Programming 소프트웨어 프로그램을 의미하며, Interface 영어 뜻 그대로 정보를 의미합니다. 이걸 합쳐서 해석하면 소프트웨어의 정보, 사용 설명서를 의미합니다. ▣ 그럼 API는 어떨 때 사용할까요? 우리가 모든 프로그램에 사용법을 알 수 없습니다. 예를 들어 UnityEngine.AI에 있는 NavMesh 클래스를 사용한다고 생각해보겠습니다. UnityEngine 라이브러리 안에 많은 클래스와 함수들이 존재하기 때문에 우리가 이걸 업데이트할 때마다 하나하나 외우며 공부할 수 없습니다. 그렇기 때문에 API 설명서를 찾아서 봐야합니다. 그럼 직접 찾아보겠습니다. ▣ 구글에 unity.. 2022. 8. 15.