오늘은 아이템 디테일 좀 추가하고, 승패 화면에 점수도 좀 넣어볼 생각입니다.
사실 스폰된 아이템을 다 먹으면 재성성되는 로직을 아직 넣지 않았는데요.
그렇게 어려운 일은 아닐겁니다. ...그렇겠죠?
protected: // 레벨 종료 및 볼륨 제거 시 타이머 정리 virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; // 아이템이 모두 사라진 것을 확인한 뒤 재생성까지의 대기 시간 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Ammo Spawn", meta = (ClampMin = "0.1")) float RespawnDelay = 3.0f;
볼륨부터 손을 대줍시다. 3초면 적정하지 싶은데요.

메시 갯수도 늘리고 콜리전이랑 물리도 꺼줍시다. 하나는 좀 볼품 없으니 말입니다.
부유 효과를 줘 봅시다.

초기 위치 변수를 벡터로 만들어 줍시다.

핀을 좀 꼽고.

연결도 같이 해주죠.

위아래로 잘 움직입니다만, 어두워서 영 잘 보이지 않습니다. 그러니 이펙트를 추가해 줍시다.

컴포넌트로 붙이는 이유는 아이템마다 이펙트가 함께 생성되고, 아이템이 제거될 때 함께 정리되도록 하기 위해서입니다. 예전에 작업하다 이펙트만 달랑 남았던 기억이 있습니다.
뭔가 입혔습니다.
나약한 이펙트일까요.

뭔가 위아래로 움직이는 게 잘 안보이는 듯도 합니다.
일단 사운드도 넣고 생각하기로 하죠.
습득할 때 뭔가 철커덩. 이런 게 좀 나면 좋겠습니다.
무언가를 만들수록 사운드가 생각보다 더 중요한 것 같습니다.
저도 이름값을 해야 하기 때문에 잘 넣어봅시다.
일단 이게 예비 탄창이 꽉 차 있는 상태에서 접근했을 때는 소리가 나면 안되기 때문에
오버랩 이벤트 정도로 넘어가기는 어렵겠습니다.
다시 VS로 넘어가죠.

변수에 소리의 근본을 추가해줍시다.
습득 성공 시 한번만 소리가 재생되도록 해주죠.

PlaySound2D는 게임 속 위치나 거리에 따른 공간 처리를 하지 않고 사운드를 재생하는 함수라고 합니다. 플레이어에게 확실히 전달할 소리는 이걸로 처리하는 게 옳겠습니다.
반면에 아이템이 놓인 곳에서 소리가 나거나 멀어질수록 작아지게 만들려면 PlaySoundAtLocation을 사용해야 한다고 하는군요. 써볼 곳이 있으면 써보죠.
일단, 이제 습득하면 소리가 나는 것까지 완료 했습니다. 야호.