본문 바로가기

강동새싹언리얼수업

(50)         글쓰기    
수업 게임전반에서 머니를 관리하기 위해서 Main Game Instance를 하나 만들고 등록해야함 클래스를 열어보면 변수를 만든다 cpp에서 함수를 구현다 플레이어를 구해야해사 Kismet/GameplayStatics.h를 추가한다. 블루프린트를 만들고 GetGameInstace를 이용해서 cast해주면 접근이 가능하다. 플레이어에 변수를 추가
231130 수업 플레이어 Widget UI 복제해서 WBP_PlayerInventory Create WBP Class 변경 Vertical Box Cost지워줌 수량을 위한 Text추가후 ItemName과 2개를 골라 우클릭한후 Wrap 이름을 QuantityText로 바꿔줌. 컴파일 해주면 Cost를 지워서 에러 나서 2군대 지워주고 Quantity Text 추 Qunatity. 변수를 만들 Expose on Spawn이 체크되어야 .NPC를 지우고 KYES추 Output Quantity 추가 Item이 들어오면 에러 제거후 정 I Action을 하나 만들고 Quantity를1로 해야함 잘안됨 ㅠㅠ 현재 업데이트 안되는 건 Map에 데이터를 추가할때 키가 똑같으면 더해지지 않고 갱신이 새로운 키면 아이템을 추가해주고 같은 키가 있으면 qu..
커서위치로 캐릭터 이동 블루프린트 https://wergia.tistory.com/m/317 [UE4] [블루프린트] 클릭한 위치로 캐릭터 이동시키는 기능 구현하기 개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! 베르의 게임 개발 유튜브 안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올 wergia.tistory.com 플레이어 컨트롤러로 Blueprint Class를 만든다. 이걸로 플레이어의 움직임을 컨트롤 할것이다. 이름은 BP_CursorController로 하자 블루프린트를 열고 좌클릭 상태를 저장할 변수를 만든다. 클릭하는 동안만 이동할 것이다. 좌클릭 이벤트에 변수를 설정한다. 미리만들어 놓은 좌클릭 이벤트가 있다면 사용해도 된다. 블러거는 좌클릭시 Attack라는..
수업 C++로 작성된 디자인 패턴들 https://refactoring.guru/ko/design-patterns/cpp C++로 작성된 디자인 패턴들 요청을 요청에 대한 모든 정보가 포함된 독립 실행형 객체로 변환합니다. 이 변환은 다양한 요청들이 있는 메서드들을 인수화할 수 있도록 하며, 요청의 실행을 지연 또는 대기열에 넣을 수 있 refactoring.guru
231129 위젯 거래 함수 만들기 TPSPlyer,h 에 변수생성 Money UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Status") int64 money = 9999; 변수는 접근이 귀찮아서 갱신할 함수 생성 TPSPlayer.cpp 에서 함수 구현 WBP_ITEM으로 이동 디테일을 스프릿 디자이너로가서 홀리존탈박스 추가 이름변경 함수를 만들어 As TPS Player를 끌어옴 루프가 끝난후 표시되도록 함수 연결 이벤트 디스패쳐 - 델리게이션과 똑같다. 편지아이콘이 보인다. Event Dispatcher 객체간 통신을 쉽게 처리하기 위한 메커니즘 구현없이 연결한다. ItemShop에서 Bind 이벤트에 CustomEvent를 만들어 연결할꺼임 뭔가 열결할거임 연결전에는 돈은 내려..
Enemy HP Bar 만들기 User Widget 블루프린트를 만든다. ProgressBar는 IsVariable로 하고 Create Binding해준다. 이벤트 그래프를 만들어 준다. 일단 Health 변수를 float로 만들어주고 그래프에 추가해준다. 끝. 적캐릭터에 컴포넌트로widget을 추가해주고 클래스를 지정해준다. Space는 월드에서Screen으로 지정해준다 이게 중요하다. 그러면 위치가 이상하게 되는데 위젯의 앵커를 가운데로 잡아준다. 적캐릭터에도 변수를 만들어주고 UpdateHeathBar function을 하나 만들어준다. 컴포넌트 Widget을 끌어다 Get User Widget Object를 하고 다시 Cast To WBP_EnemyHP로 형변환을 해준다. 그럼 WBP_EnemyHP에 있는 Health 변수에 ..
231128 Widget ItemShop 수업 언리얼용 버전관리 https://www.perforce.com/ Perforce Software | Development Tools For Innovation at Scale Perforce Software delivers solutions across DevOps designed to help you increase your competitive advantage by addressing quality, security, compliance, collaboration, and speed — across the technology lifecycle.Contact us to learn more about how our sol www.perforce.com UserWdiget으로 ItemShop C++클래스..
NPC 배회기능 적추적기능 C++ 배회기능 라인트레이스에서 충돌이 감지되면 오른쪽으로 돈다. 무한 공간에서는 직진거리를 제한할 필요가 있다. void AMyPlayer::Move(float DeltaTime) { FHitResult _HitOut; FVector _Start = GetActorLocation(); FVector _End = GetActorLocation() + (GetActorForwardVector() * traceDistance); FCollisionQueryParams _TraceParams; GetWorld()->LineTraceSingleByChannel(_HitOut, _Start, _End, ECC_Visibility, _TraceParams); DrawDebugLine(GetWorld(), _Start, _..
231127 DrawDebugSphere() and HitResult https://velog.io/@whoamicj?tag=UE5 whoamicj (CJ) - velog [UE5] Scene Component Scene Component 생성, attach, Scene의 회전, 위치, 그리고 스케일에 대한 개념 2023년 9월 10일 · 0개의 댓글 · 0 velog.io Sphere를 그려서 위치를 알수있게 해줍니다 "GrabComponentAtLocationWithRotation" 함수는 언리얼 엔진(Unreal Engine)에서 사용되는 함수 중 하나로, 오브젝트나 액터 내에서 특정 위치와 회전값을 기반으로 컴포넌트를 선택하고 상호 작용할 때 사용됩니다. 이 함수를 사용하면 게임에서 오브젝트를 플레이어가 특정 위치와 회전에서 선택하고 조작할 수 있습니다. 함수 이름..
231127 라인트레이스 유명한 게임을 해봐라 https://namu.wiki/w/Game%20of%20the%20Year/%EB%AA%A9%EB%A1%9D Game of the Year/목록 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권 namu.wiki 기존 ThirpersonTemplete에 LineTrace추가하기 void ATPlayer::InterActionPositive(const FInputActionValue& Value) { FVector _Location; FRotator _Rotation; FHitResult _HitOut; //카메..
231125 205 특강 스마트포인트 참조를 카운팅해 딩글링포인트 생성을 방지한다. 객체지향의 특징 상속, 캡슐 암묵적 형변환, 명시적 형변 UPROPERTY는 UObject를 상속받은 애들의 스마트포인트 관리를 해주고 리플렉션과 CDO(Class) 관리를 해준다.
231123 Widget in Actor C++ 플레이어에 Widget을 달아보자. 사실 플레이어는 Widget에서 GetFirstCharacter()를 이용해서 HP변수에 접근해서 HPBar 업데이트가 가능하다. 그런데 적은 레벨에 여러개가 있으니 접근이 어렵다. 따라서 적Character에 HPBar를 붙여주고 직접 관리해줘야 한다. 블루프린트에서 하는 법은 위에 블로그 해놓왔고 여기서는 C++에서 한다.이거 완전 하드 코딩이다. 왜냐하면 이렇게 않하면 만드는 적마다 Widget 컴포넌트를 붙여주고 설정해야 하기 때문이다. 하지만 FULL C++로 만드는건 어렵다 ㅎㅎ 기존의 UserWidget에서 Pawn에 접근할수 있는 GetOwner 함수가 없다 따라서 GetOwner를 가져오려면 서로 WidgetComponent의 GetOwner 함수를 사..