Unity3D連接WCF:
一、最簡單的案例
1、VS2015中:
(1)建立WCF應用服務程序ForUnity;
(2)將自動生成的IService1.cs與Service1.svc刪除;
(3)添加一個WCF Service,命名為UnityService:
(4)公布接口,實現接口功能;
是兩個實現加減的函數;
(5)右鍵UnityService.svc,點擊在瀏覽器中查看。
(6)生成下列顯示頁面:
這樣,就表明服務已經成功創建。頁面不用關閉。
VS2015的工作基本結束!
2.Unity3D中:
接下來,我們就開始在Unity中使用上面創建好的WCF服務。
(1)在unity3d中建立Plugins文件夾
(2)找到unity的安裝路徑:C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0;將其中的
System.Runtime.Serialization.dll
System.ServiceModel.dll
這2個DLL文件,放在剛剛在unity中建立Plugins文件夾下
注:
添加這兩個dll文件時,需要把Unity當前的API兼容等級設置為 .NET 2.0(Unity默認設置為.NET 2.0 Subset),否則會出現錯誤。
(Edit--->Project Setting--->Player)
(3)生成UnityServiceClient.cs文件(暫時與unity以及VS2015無關):
穿插一個小知識:
注:(.bat文件:
bat文件是dos下的批處理文件。批處理文件是無格式的文本文件,它包含一條或多條命令。它的文件擴展名為 .bat 或 .cmd。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用cmd.exe按照該文件中各個命令出現的順序來逐個運行它們。使用批處理文件(也被稱為批處理程序或腳本),可以簡化日常或重復性任務。)
新建一個記事本文件,重命名為“12.bat”;
在該文件下編輯以下命令:
C:
cd C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0\
svcutil -out:UnityServiceClient.cs http://localhost:54435/UnityService.svc?wsdl
pause
保存后,以管理員身份運行,即可在C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0中生成:UnityServiceClient.cs文件;
好的!
UnityServiceClient.cs文件就作於Unity與WCF服務的橋梁!
(4)接下來繼續在unity3D中快樂的玩耍;
將上述生成的UnityServiceClient.cs文件放在uniy工程中:
在unity中創建一個空游戲對象:
創建一個c#腳本文件:
該腳本文件內容如下(簡單到極致):
using UnityEngine;
using System.ServiceModel;
public class NewBehaviourScript : MonoBehaviour
{
void Start()
{
UnityServiceClient client = new UnityServiceClient(new BasicHttpBinding(), new EndpointAddress(" http://localhost:54435/UnityService.svc"));
int n = client.Add(1, 2);
Debug.Log(n);
}
}
將該腳本綁定在剛剛創建好的游戲對象之上,在控制台出可看到結果,如下圖:
通信完成!
總結:
1、VS2015:創建服務,並提供好終結點服務地址;
2、由svcutil.exe生成從這個服務輸出客戶端的代碼
(即:svcutil -out:UnityServiceClient.cs http://localhost:54435/UnityService.svc?wsdl(該語句的含義就是:從這個服務(網址指向的服務)生成客戶端代碼,這里是UnityServiceClient.cs 文件))
可以簡單理解為服務端與客戶端的橋接文件
3、Unity3D:引入必要的類庫文件以及橋接需要的“.cs”文件(服務端與客戶端的橋接文件);創建終結點匹配;即可完成通信。
注:創建終結點匹配(在unity的腳本中):
UnityServiceClient client = new UnityServiceClient(new BasicHttpBinding(), new EndpointAddress(" http://localhost:54435/UnityService.svc"));
【歡迎轉載】
轉載請表明出處: 樂學習