본문 바로가기

c++124

C++ 33 [const 메소드, 멤버변수] ▣ const 메소드 : int 함수이름() const {} ▣ const 메소드는 해당 객체 안에 어떠한 값도 바꿀 수 없다. 2023. 10. 18.
C++ 32 [생성자 멤버변수 초기화리스트] ▣ 생성자에서 멤버변수 초기화 리스트 방법 : 클래스이름::생성자이름() : 멤버변수(값), 멤버변수(값) {} ▣ 매개변수가 있는 생성자 초기화 리스트 방법 : 클래스이름::생성자이름(매개변수) : 멤버변수(매개변수), 멤버변수(매개변수) ▣ { } 괄호에 위치가 멤버 변수 리스트 밑에 있어야 하고 : 초기화 리스트시 콜론을 붙이기 ▣ 그럼 number = 20; length = 20 이런 식으로 대입해도 되는데 초기화 리스트를 사용하는 이유는 (=) 대입은 초기화가 된 이후에 대입을 의미하고 () 리스트초기화는 오브젝트가 만들어질 때 초기화하는 것 다시 말해서 멤버변수 대입 없이 초기화, 상수, 참조변수를 초기화할 수 있다. 일반 대입은 불가능하다. ▣ 예시 const int number; , Pla.. 2023. 10. 18.
C++ 31 [스트림 객체 상태 플래그] ▣ 스트림 상태 플래그 ▣ 네임스페이스 : ios_base ▣ 비트플래그 ▣ goodbit : 아무 문제없고 잘 동작할 경우 0 ▣ eofbit : 파일에 끝, 읽을 문자가 없으면 에러 반환 ▣ failbit : 입력 실패시, string을 int로 읽는 경우 0 아니면 1 ▣ badbit : 문제가 있을 경우, 에러 반환 ▣ cin.clear() : 스트림 버퍼 초기화 ▣ cin.ignore(streamsize, 문자 EOF) : size만큼 문자를 버리고 문자를 버리면 멈춤 ▣ 입력 받은 문자열을 반대로 만들기 2023. 10. 4.
C++ 30 [Manipulator 조정자] ▣ 조정자를 통해 여러 방식으로 출력 가능 https://www.apiref.com/cpp/cpp/io/manip.html Input/output manipulators - C++ - API Reference Document Manipulators are helper functions that make it possible to control input/output streams using operator>. The manipulators that are invoked without arguments (e.g. std::cout > std::hex;) are implemented as func www.apiref.com ▣ 입력 출력 조정자 API 참고 2023. 10. 3.
유니티 - [AddForce 종류] https://docs.unity3d.com/kr/530/ScriptReference/Rigidbody.AddRelativeForce.html Rigidbody-AddRelativeForce - Unity 스크립팅 API Adds a force to the rigidbody relative to its coordinate system. docs.unity3d.com ▣ AddRelativeForce() : 로컬좌표 기준으로 힘을준다. ▣ AddForce() : 월드좌표 기준으로 힘을 준다. 2023. 7. 1.
언리얼엔진5 66장 [C++ 회전] ▣ .h 헤더파일에서 FRotator 선언, 어느 방향으로 회전할지를 지정하기 위한 변수 ▣ FRotator : F는 블루프린트를 의미, Rotator는 회전값 https://docs.unrealengine.com/4.26/en-US/API/Runtime/Core/Math/FRotator/ FRotator Implements a container for rotation information. All rotation values are stored in degrees. docs.unrealengine.com ▣ AddActorLocalRotation() : 로컬회전값을 기준으로 회전, 괄호 안에 회전할 FRotator값 * DeltaTime https://docs.unrealengine.com/4.26/e.. 2023. 6. 23.
언리얼엔진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 58장 [C++ Tick함수] ▣ Tick : 액터나 컴포넌트에 일정 간격, 한 프레임에 한 번 코드 또는 블루프린트 스크립트를 실행시키는 것 ▣ MyVector.Z +=1을 하여 프레임마다 Z값이 1씩 증가하고 SetActorLocation(MyVector)으로 넣어주어 Z값이 계속 바뀌는 코드 https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Actors/Ticking/ 액터 틱 매 프레임 액터를 업데이트하는 데 사용되는 Tick, 틱 시스템에 대한 설명입니다. docs.unrealengine.com ▣ 컴파일 후 시작버튼을 클릭하면 MyVector.Z에 값이 1씩 증가하면서 매프레임마다 큐브에 Z위치가.. 2023. 6. 16.
언리얼엔진5 57장 [C++ 엑터위치함수] ▣ SetActorLocation() : 엑터의 위치는 변경하는 함수, 매개변수 안에 FVector에 값을 넣어야 한다. ▣ +Add 버튼을 클릭하고 컴포넌트 추가 및 모양 추가도 가능 ▣ 컴파일 후 시작버튼을 클릭하면 지정한 Location으로 위치 이동 ▣ 매개변수에 FVector 변수로도 지정 가능 ▣ 컴파일 후 시작하면 MyVector 위치로 이동 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 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 52장 [씬 뷰 미리보기 카메라 사이즈 조절] ▣ 3인칭으로 카메라를 넣을 경우 위에 이미지처럼 컴퓨터 해상도에 따라서 레벨씬에 미리 보기 카메라가 너무 크게 보이는 경우가 있다. 이럴 때 미리 보기 카메라 사이즈를 줄이는 방법이 있다. ▣ Camera Preview Size를 조절하면 위에 이미지처럼 미리 보기 뷰 카메라 사이즈를 줄일 수 있다. 2023. 6. 10.