Unreal/Udemy 강의 (308) 썸네일형 리스트형 Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-14 Spawn Default Weapon지금은 기본적으로 총기가 캐릭터에 붙어있는 상태이다.총기를 스폰하기 위해 기존 캐릭터의 총기를 안보이게 감춰주자. 이제 총기를 스폰 시켜줄 준비를 하자.장비된 무기에 대한 변수와, 할당할 WeaponClass에 대한 TSubclassOf 변수를 선언해주자. 그리고 무기 스폰을 위한 함수도 작성해주자. 그리고 우선 스폰할 위치를 검토해주자.우리는 오른쪽 손에 스폰해줄 것이며, 해당 위치에 총기를 위한 소켓을 만들어주자. Preview를 통해 미리 총기를 장착했을 때의 모습을 볼 수 있다.이때 총기를 적절히 회전 및 이동시켜서 위치를 조정해주자. 이제 소켓이름을 토대로 함수를 작성해주자. 기본적으로 총기를 소유해야 하므로 BeginPlay() 함수에서 해당 함수를 호출해주.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-13 Bind Star Opacity이번엔 레어도를 나타내는 별 5개에 대해서도 바인딩 작업을 해주자. 먼저 헤더파일 바로 아래 부분에 enum 클래스를 선언하여 레어도에 대해 열거해주자.각 지정된 레어도들에 대해 UMETA(Displayname = " ")을 통해 이름을 넣어주자.그리고 EIR_MAX을 통해 열거형 최대 개수를 지정하게 된다.uint8의 경우 메모리 절약을 위해 사용되었다. 그리고 해당 열거형을 변수로 선언해주자. 기본 등급은 우선 Common 등급으로 초기화하였다. 그리고 bool 타입 TArray도 선언해주자.열거형에 대해서 bool로 판별하게 될 것이다. 다음으로 Stars를 활성화하기 위한 함수이다.기본 값은 false로 초기화하고, 레어도에 따라서 해당 레어디의 별 갯수만큼 true.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-12 Bind Item Count이번엔 똑같이 하드코딩했던 탄약 갯수인 Amount에 대해서도 작업해주자. 마찬가지로 바인딩 작업도 해주자. 기존의 Item Reference를 그대로 사용해주면 된다. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-11 Bind Item Name이번에는 Item 이름에 대해 바인딩 작업을 해주자.지금은 우리가 하드코딩 식으로 이름을 직접 적어준 상태이다.ItemName을 위한 FString 변수를 선언하고 초기화해주자. BP_PickupWidget 클래스에서 Text 부분에 바인딩을 생성해주자. 다음으로 Item Reference를 위한 변수를 선언해주자.타입을 Object Item으로 해주는 것을 잊으면 안된다. BP_BaseWeapon 클래스에서 해당 Item Reference 값을 세팅해주자.User Widget Object를 얻고, Cast를 통해 이를 Bp_PickUpWidget으로 캐스팅해주고 이를 통해 Item Reference 값을 세팅해주자.Item Reference에는 Self 값을 연결해준다.이는 C.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-10 Hide Widget기존 위젯을 이제 없애주는 작업을 해주자.더 이상 트레이스할 것이 없거나, 총기가 아닌 다른 것을 트레이스하고 있으면 위젯을 감춰줄 것이다.이를 위해 마지막으로 트레이스하여 히트한 내용을 저장해줄 필요가 있다.ShooterCharacter 클래스에서 해당 변수를 선언해주자. TraceForItems() 함수에서 해당 변수에 HitItem을 저장해주자.그리고 만약 해당 변수가 존재하고, 해당 변수가 기존 HitItem과 다르다면 이는 다른 물체를 히트한 케이스이다.따라서 Visibility를 비활성화 해주자. 그리고 bShouldTraceForItems가 false일 때 또한 Visibility를 비활성화 해주자.해당 케이스의 경우 트레이스할 대상이 없는 상태이다. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-9 Widget Trace When Close위젯이 일정 거리 이내일때만 나타나도록 수정해보자.이를 위해 우리는 오버랩 이벤트에 대해 다룰 것이다.이를 위해 추가적으로 총기에 Sphere를 만들어줄 것이다. 이어서 생성자에서 초기화 및 루트에 붙여주자. 다음으로 오버랩에 사용될 콜백함수를 선언해주자.오버랩됐을 때와 오버랩이 풀렸을 때 총 2개를 선언해준다.언리얼에서 콜백함수로 사용되기 때문에 제대로 바인딩되기 위해서 UFUNCTION()을 선언해주어야 한다. 오버랩된 순간에 대해 다루기 때문에 동적 델리게이트를 사용하여 바인딩을 해주자. 그리고 ShooterCharacter 클래스에 트레이스 할지 말지를 정하기 위한 bool 변수를 선언해주자.기본 값은 생성자에서 false로 초기화 해줄 것이다. 그리고 오.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-8 Refactor Trace Under Crosshairs기존 코드에 겹치는 내용이 존재하므로 리팩토링 작업을 해주자.먼저 기존 TraceUnderCrosshiars 함수에 인풋 매개 변수로 FVector 참조 변수를 추가해주었다. 그리고 해당 함수를 통해 OutHitLocation을 저장해주자.기본은 End 즉 끝점이고, 아니면 히트한 위치이다. 그리고 GetBeamEndLocation 함수를 위 내용을 토대로 리팩토링 해주자.기본적으로 히트 위치는 Crosshiar의 트레이스하여 히트한 위치일 것이다.아니면 기존 끝점에 대한 위치이다.이 끝점에 대한 값 설정을 위해 추가적으로 FVector& OutBeamLocation 인풋 매개 변수를 추가해준 것이다. 이후 2번째 트레이스로 총기 위치부터 시작한 트.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-7 Trace for Widget위젯이 항상 보이는건 바람직하지 않다.총기를 가르켰을 때만 위젯이 뜨도록 변경해보자. 이에 앞서서 현재 위젯이 총기를 아에 가리고 있으므로 위젯을 조금 위로 올려주자. 그리고 우선 위젯이 보이지 않도록 세팅해주자.위젯은 플레이어가 가르켰을 때만 활성화되어야 한다. Trace를 이용하여 위젯을 가리킨 것을 판별해보자.기존 크로스헤어를 통해 Trace를 하여 충돌 여부를 판별하게 될 것이다.이는 ShooterCharacter 클래스에서 작업하게 된다. 우선 기존 Viewport 사이즈를 가져와야 한다.이후 이를 토대로 크로스헤어의 위치를 계산해준다.이는 기존 GetBeamEndLocation() 함수에서도 작성했던 중복되는 내용이다. 이후 크로스 헤어의 위치를 월드 좌표로 변환하.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 39 다음