---
# System prepended metadata

title: UE4 使用藍圖生成物體 Part 1
tags: [UE4]

---

###### tags: `UE4`

# UE4 使用藍圖生成物體 Part 1
* 創立新的Actor藍圖物件，並且將其命名為BP_FloorTile。
![](https://koenig-media.raywenderlich.com/uploads/2016/12/30-181x500.png)
![](https://koenig-media.raywenderlich.com/uploads/2016/12/31.png)
* 點選左上Add componment 新增 Scene 和 Cube物件。
![](https://i.imgur.com/ax8kznI.png)
* 將Cube元件改名為Floor，並且將Scale X Y Z設為10 10 0.1 將Location設為 500 0 0 ，並且為Floor設定材質。
![](https://i.imgur.com/2yI1XvZ.png)
* 接著複製Floor元件，調整大小以及距離，讓他在原本的Floor元件旁邊出現牆壁。
![](https://i.imgur.com/jV5nssS.png)
* 點選左上Add componment 新增 Arrow物件，並該物件改名為AttachPoint，並將Location改為1000 0 0，這項物件會幫助我們引導生成方位。
![](https://i.imgur.com/PyKMypP.png)
* 接下來我們要新增一個函式，點選左側+Function 並將其改名為 GetAttachTransform。
![](https://i.imgur.com/amBaiAI.png)
* 接著右鍵新增Get World Transform，並且點選Get Attach Transform 元件，點選右側OUTPUT 有個New 按鈕，新增返回節點並將其改名成AttachTransform以及設為Transtorm型態。最後將其和Get World Transform 的 Return Value值連接在一起。

![](https://i.imgur.com/w8Ok8h3.png)

![](https://i.imgur.com/Ao3zTt0.png)

![](https://i.imgur.com/Ao3zTt0.png)
* 隨時記得點選Comple & Save，接著回到主畫面，點選Flie，建立一個新的Level 選擇 Default。
![](https://i.imgur.com/g14lDUH.png)
* 接著點選到Airsim C++ Classes 資料夾下方的AirsimGameMode ，右鍵它新增一個藍圖建立於AirsimGameMode基準上。
![](https://i.imgur.com/YNjBDUM.png)
* 接下來點開MyAirsimGameMode藍圖，我們一樣先新增一個函式，點選左側+Function 並將其改名為 AddFloorTile。
![](https://i.imgur.com/d7NdO19.png)
* 點選藍圖空白地方右鍵，新增Spawn Actor from class物件，它是一項函式用來新增我們剛剛所製作的物件。
![](https://i.imgur.com/K3DovYW.png)
* 將Spawn Actor from class物件的Class 選擇為BP_FloorTile，並且對Spawn Transform節點右鍵，選擇 Promote to Varible ，將其轉為變量，並將改名為Next Spawn Point。
![](https://i.imgur.com/cABRhEF.png)
* 接著點選上方，切換至Event Graph，將左邊AddFloorTile函數拖曳進來，並將Event Begin Play 和其連接。
![](https://i.imgur.com/ybw6x7C.png)
* 接著回到AddFloorTile函數藍圖這，新增一個Cast to BP_FloorTile元件進入，並將其和Return Value連接。
![](https://i.imgur.com/15Kc8Xc.png)
請務必確保要在"AddFloorTile"進行上面進行此動作。
* 接著在新增一項Get Attach Transform，和As BP Floor Tile連接。
![](https://i.imgur.com/OUhlF0w.png)
* 接著拖曳左方NextSpawnPoint變量到Attach Transform上面。
![](https://i.imgur.com/rronWQF.png)
* 接著回到"Event Graph"，右鍵空白處建立ForLoop物件，這相當於程式中的Loop迴圈。並且將其連接至Event begin play 上 Loop Body連接至 Add floor tile上，並將其first index設0，Last index 為9 ，這代表這項迴圈會執行10次。
![](https://i.imgur.com/Ln3Pp5z.png)
* 我們接下來回到 BP_Floortlie的Viewport，點選左上Add componment 新增BoxCollision，將其命名為EndTrigger，將他的Location設為1056 0 190，將他的Box Extent設為32 500 200。
![](https://i.imgur.com/IuvnhtK.png)
* 選擇到Collision Preset 將其設定為OverlapOnlyPawn
![](https://i.imgur.com/TyvhEB1.png)
* 選擇到在更下方一些的Events ，點選 On component begin overlap +
![](https://i.imgur.com/SEzhkrH.png)
* 接著點選藍圖空白處，新增 Cast to Myairsimgamemode，和Get Game Mode，將其連接起來
![](https://i.imgur.com/C7V3DjT.png)
* 接下來新增 Addfloortile元件，將其與As Myairsimgamemode 連接，並且新增Delay元件，將其延遲設為2。
![](https://i.imgur.com/bN28vSn.png)
* 最後我們要建立一個Destroy Actor元件 ，並將其設為自己，按下Complie & Save。
![](https://i.imgur.com/hSDj4xB.png)
* 回到主畫面，刪除原本的地板，並且將PlayStart的X位置設為200。 按下Play 你可以看到路面會無限生成出來。
![](https://i.imgur.com/9NUP8z9.png)