> For the complete documentation index, see [llms.txt](https://docs.proudnet.com/proudnet.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.proudnet.com/proudnet.cn/proudnet/2.setting/unreal-engine-4.md).

# Unreal Engine 4

## 1. 建立UE4項目

1-1. 在啟動 UE4 Editor 的視窗中選擇 <mark style="color:orange;">Game</mark>，當 <mark style="color:orange;">Open Project</mark> 按鈕變更為 <mark style="color:orange;">Next</mark> 時，按 <mark style="color:orange;">Next</mark> 按鈕。

<figure><img src="/files/Q7FaMy3cFZrZUlF1sHup" alt=""><figcaption><p>運行UE4 Editor後出現的視窗</p></figcaption></figure>

#### 1-2. 在<mark style="color:orange;">範本選擇</mark>視窗中，選擇<mark style="color:orange;">基本</mark>，然後按一下<mark style="color:orange;">下一步</mark>。

<figure><img src="/files/geZbCKfFlc1gFDrEkIv9" alt=""><figcaption></figcaption></figure>

#### 1-3.  當您按一下<mark style="color:orange;">專案設定</mark>中的<mark style="color:orange;">藍圖</mark>按鈕時，該按鈕將展開為下拉清單。

<figure><img src="/files/0t3yRahrXGJ3i5yrC1n2" alt=""><figcaption></figcaption></figure>

#### 1-4. 從展開的下拉清單中，選擇 C++，如下面的螢幕截圖所示。

<figure><img src="/files/BcTpt8hXMNSxgSB5VK9j" alt=""><figcaption></figcaption></figure>

#### 1-5. 在下圖紅框所示的<mark style="color:orange;">專案路徑視窗</mark>和工程名稱視窗中輸入建立工程的路徑和要建立的工程名稱，點選<mark style="color:orange;">建立專案</mark>。

<figure><img src="/files/GP1Wp8lnYuwH9Vivx8xo" alt=""><figcaption></figcaption></figure>

#### 1-6. 專案建立完成後，Visual Studio IDE 和 UE4 編輯器將與建立的專案同時運作。

#### 1-7. 在 Visual Studio IDE 中，您必須指定配置和平台，如下所示，然後再繼續。

{% hint style="info" %}

* Solution Configuration : <mark style="color:orange;">Development Editor</mark>
* Solution Platform : <mark style="color:orange;">Win64</mark>
  {% endhint %}

## 2. 將 ProudNet 整合到您的 UE4 專案中

在<mark style="color:orange;">(專案名稱).build.cs</mark> 檔案中使用 C# 程式碼指定 ProudNet 程式庫和頭檔路徑。

> 1. 開啟cs文件，會出現UE4 Editor自動建立的一個同工程名稱的類別。 該類別目前只有一個建構函數。
> 2. 如果您查看建構函式的主體，您可以在末尾看到幾行註解。 註解後只需放置指定ProudNet庫和頭檔引用路徑的程式碼即可。
> 3. 若要指定 ProudNet 程式庫參考路徑，請將程式庫路徑字串傳遞給 <mark style="color:orange;">PublicAdditionalLibraries</mark> 物件的 Add 函數。\
>    例子: **> PublicAdditionalLibraries.Add("D:\ProudNet1.7.48971-master\ProudNet\lib\x64\v140\Release\ProudNetClient.lib")**
> 4. 若要指定 ProudNet 頭檔參考路徑，請將 ProudNet 包含資料夾的路徑傳遞給名為 <mark style="color:orange;">PublicIncludepaths</mark> 的全域物件的 Add 函數。\
>    例子: **> PublicIncludePaths.Add("D:\ProudNet1.7.48971-master\ProudNet)**
> 5. 由於與ProudNet整合的UE4專案必須是64位元建構的，因此將前面寫的兩個句子用大括號括起來，然後在上面加上一個if語句。
> 6. 建置 iOS 和 Android 時所需的 lib 檔案也是用 if 語句包裝後編寫的。

下面是一個刪除了註解的範例。

{% code overflow="wrap" lineNumbers="true" fullWidth="false" %}

```cpp
// Copyright Epic Games, Inc. All Rights Reserved.
 
using System.IO;
using UnrealBuildTool;
 
public class TestUnreal4 : ModuleRules
{
    public TestUnreal4(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
    
        PublicIncludePaths.AddRange(
	new string[] {
	    // ... add public include paths required here ...
	}
	);
				
		
	PrivateIncludePaths.AddRange(
	new string[] {
	    // ... add other private include paths required here ...
	}
	);
 
        if (Target.Platform == UnrealTargetPlatform.Win64)
        {
            // Add the import library
            PublicAdditionalLibraries.Add(@"D:\ProudNet1.8.00002-master\ProudNet\lib\x64\v140\Release\ProudNetClient.lib");
        }
        else if (Target.Platform == UnrealTargetPlatform.IOS)
        {
            PublicAdditionalLibraries.Add(@"D:\ProudNet1.8.00002-master\ProudNet\lib\x64\v140\Release\libProudNetClient.a");
            
            PublicAdditionalLibraries.Add(@"D:\ProudNet1.8.00002-master\ProudNet\lib\x64\v140\Release\libiconv.2.tbd"));
        }
        else if(Target.Platform == UnrealTargetPlatform.Android)
        {
        PublicAdditionalLibraries.Add(@"D:\ProudNet1.8.00002-master\ProudNet\lib\NDK\r20\cmake\clangRelease\arm64-v8a\libProudNetClient.a);
        }
        
         PublicIncludePaths.Add(@"D:\ProudNet1.7.48971-master\ProudNet\include");
    }
}
```

{% endcode %}

{% hint style="warning" %}
iOS 和 Android 使其引用 <mark style="color:orange;">ProudNet\lib\NDK\r20\cmake\clangDebug\arm64-v8a\libProudNetClient.a</mark> 而不是 <mark style="color:orange;">ProudNet\lib\x64\v140\Release\libProudNetClient.lib</mark>。
{% endhint %}

{% hint style="danger" %}
請不要設定上面範例程式碼的路徑，而是輸入Proudnet實際安裝的路徑。
{% endhint %}

<figure><img src="/files/TBQ9pg0OrxY9FLNj3M9i" alt=""><figcaption></figcaption></figure>

如上例，<mark style="color:orange;">CNetClient</mark>可以正常創建，不會出現編譯錯誤。

## 3. Android 建置

請參考以下連結。

{% hint style="success" %}
**參考**

[**Android 快速入門**](https://docs.unrealengine.com/5.3/ko/setting-up-unreal-engine-projects-for-android-development/)
{% endhint %}

## 4. iOS 建置

{% hint style="warning" %}
您也必須指定 <mark style="color:orange;">libiconv.2.tbd</mark> 函式庫的路徑。

如果不指定，建置時會出現 iconv 相關的連結錯誤。
{% endhint %}

<figure><img src="/files/caO9n452h46hPgQYuJH7" alt=""><figcaption></figcaption></figure>

請參考以下連結。

{% hint style="success" %}
**參考**

[**iOS 快速入門指南**](https://docs.unrealengine.com/5.3/ko/setting-up-an-unreal-engine-project-for-ios/)
{% endhint %}
