Unity3D連接WCF


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"));


【歡迎轉載】

 轉載請表明出處: 樂學習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM