Endless Runner 4 - Adding Pickup Items

# Endless Runner
## 4 - Adding Pickup Items

[![4 - Adding Pickup Items](http://img.youtube.com/vi/sNueIWCKoco/0.jpg)](
https://www.youtube.com/watch?v=sNueIWCKoco)

<iframe width="560" height="315" src="https://www.youtube.com/embed/sNueIWCKoco" frameborder="0" allowfullscreen></iframe>

### BP_Itemを作成する

BP_Itemを作成する

|名前  |親クラス  |
|---|---|
|BP_Item |Actor |

#### コンポーネントを追加する

|名前  |追加するコンポーネント  |
|---|---|
|Coin |Static Mesh |
|PointLight |Point Light |
|RotatingMovement|Rotating Movement |

#### Coinの詳細を設定する

Static Mesh: Static Mesh

|項目名  |値  |
|---|---|
|Static Mesh |Shape_Torus |

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |0.0  |14.0  |0.0  |
|Rotation  |-90.0  |0.0 |0.0 |
|Scale  |1.0  |1.0  |1.0  |

Materials

|項目名  |値  |
|---|---|
|Elements 0|M_Material_Gold |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/756255f0-5c9c-0e08-fa14-962028770960.png)


#### PointLightの詳細を設定する

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |0.0  |0.0  |-60.0  |
|Rotation  |0.0  |0.0 |0.0 |
|Scale  |1.0  |1.0  |1.0  |

Light

|項目名  |値  |
|---|---|
|Intensity |2000 |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/f36e00ab-4996-434a-d0f3-70ca0565fb26.png)

SimulationボタンをクリックするとRingが回転する

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/666453ad-daa6-6599-88cc-f181996a3596.png)


### BP_FloorTileにBP_Itemを発生するエリアを作成する

#### コンポーネントを追加する

|名前  |追加するコンポーネント  |
|---|---|
|CoinArea |Box Collision |

#### CoinAreaの詳細を設定する

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |500.0  |0.0  |85.0  |
|Rotation  |0.0  |0.0 |0.0 |
|Scale  |1.0  |1.0  |1.0  |

Shape

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Box Extent  |460.0  |460.0  |2.0  |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/d7dfcd6d-7b6e-37aa-9adf-9cd16420fca0.png)

#### Function:SpawnCoinsを追加する

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/d2f1348b-dd22-3b8b-f592-21e6de3a413e.png)

Add Child Actor ComponentのChild Actor ClassにBP_Itemを設定する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/b8d9a423-d488-ff4c-47b0-2c1595742c8d.png)

処理を実装
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/5615f8bc-f1cd-857e-9087-b369ab00cf46.png)

#### Construction Scriptを編集する

SpawnCoinsを追加する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/b9397f6b-5001-e266-68ea-d2588b675b52.png)

ViewPortでSimulationボタンをクリックするとBP_ItemがCoinAreaのどこかに発生する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/e3089c20-5b37-62f5-fc67-09ef7dd5fb16.png)

#### BP_Itemを複数個発生するようにSpawnCoinを修正する

SpawnCoinにForLoopを追加する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/3833701c-5fc0-af6e-51a8-2786d0cd3ded.png)

ViewPortでSimulationボタンをクリックするとBP_Itemが6つCoinAreaのどこかに発生する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/5c383e58-e09c-1634-bebf-1780f5891b34.png)

#### BP_ItemかBP_Blockerが発生するようにConstruction Scriptを修正する

ランダムでSpawnBlockerかSpownCoinsが呼ばれるように修正する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/548fc8cb-b155-9bf3-06b1-61d27e454db5.png)

SimulationをクリックしてランダムにBP_BlockerかBP_Itemが発生することを確認する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/bf601a08-2402-d060-6565-5f48765f4bc1.png)

プレイして確認する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/4d19268f-9c53-caf9-85f5-d7d844e25125.png)

### 取得したBP_Itemの合計を保持するように修正する

#### RunCharacterを修正する

##### 変数を追加する

|変数名  |変数の型  |
|---|---|
|TotalCoins |Integer |

#### Funcion:AddCoinを追加する

Function AddCoinを追加する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/34331d7f-f69c-4d05-e581-c0aafd477d26.png)

処理を実装する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/3fb14ce1-3bc5-d607-afac-54a0e4a22139.png)

#### BP_Itemを修正する

##### コインを取得した時の音をインポートする
コインの取得音をダウンロードする
https://1drv.ms/u/s!AsyaT0uIFWqQgY5DvES-sWbYrlJXUA

Audioフォルダを作成して、ダウンロードしたcoin_get.wavをインポートする
Sound_Cueを作成する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/0831f77f-4851-377c-e8ca-b06499f5fdb9.png)

##### CoinのCollisionを修正し、On Component Begin Overlapを追加する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/47d9592d-b936-6861-dd2b-1f9f555621c5.png)

処理を実装する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/274a62f7-628a-9b54-0133-d4ebdc85e043.png)

プレイして確認する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/3fd290eb-47f6-4791-053b-33400abe4f74.png)

### 取得したBP_Itemの合計を表示するように修正する

#### WidgetBlueprint: RunHUDを作成する
UMGフォルダを作成する
WidgetBlueprintを作成する
名前はRunHUDに設定する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/8e2e6a1b-18ba-0035-45a6-ccb0195c1cb5.png)

Textのfont sizeは50に設定
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/41d1f012-902b-3a01-ad43-b1948b34ba99.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/cb08d0eb-1a30-9bee-3687-d21d59d9d04d.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/214df6d2-94a2-22f7-85ae-3f5a2b512711.png)

#### RunGameModeのBeginPlayを修正する

BeginPlayでRunHUDを表示するように修正する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/112213a3-2569-da24-4bc9-c4735564bc0c.png)

プレイして確認する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/8b2f69e7-19e4-c673-528f-7cd5c2ed0045.png)