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


【欢迎转载】

转载请表明出处: 乐学习

Unity3D连接WCF的更多相关文章

  1. Unity3d连接SQL Server数据库出现SocketException: 使用了与请求的协议不兼容的地址错误

    这两天,同学问我Unity3d连接SQL Server的问题,当时我只是简单的说:“应该一样吧,就是那简单的几句啊”.之后他让我试了下,我才发现有问题了.故此写下一篇博客,要牢记这件事的教训,操作数据 ...

  2. WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转)

    WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转) Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信 ...

  3. 在Unity3D中连接WCF服务端

    服务端不多讲解,有一处需要改的地方.具体服务端请看WCF入门学习2-控制台做为宿主 建议实际项目不要拿去用,毕竟是mono不是原生.net.或许是个坑 由于Unity的mono版本问题不能直接用net ...

  4. Unity3D连接sqlite数据库操作C#版

    unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...

  5. Unity3D连接本地或局域网MySQL数据库

    准备工作: 1.打开 Unity3D 安装目录,到这个路径下 Editor > Data > Mono > lib > mono > 2.0 拷贝出下图的五个动态链接库, ...

  6. unity3d连接Sqlite并打包发布Android

    连接Sqlite首先要把dll程序集导入到unity3d工程里面.安装好的unity中可以找到

  7. (转载)Unity3D连接本地或局域网MySQL数据库

    准备工作: 1.打开 Unity3D 安装目录,到这个路径下 Editor > Data > Mono > lib > mono > 2.0 拷贝出下图的五个动态链接库, ...

  8. CentOS7 mono环境连接WCF

    总结下在mono环境中使用Wcf出现的问题以帮助你快速解决问题. 1.昨天在内网Centos7下部署由Windows上开发完成的ASP.NET Mvc4项目,部署到mono环境下遇到了无法找到endp ...

  9. Unity3D连接真机调试教程,可抓断点

    源地址:http://www.unity蛮牛.com/thread-19586-1-1.html <ignore_js_op> 未标题-1.jpg (52.33 KB, 下载次数: 0) ...

随机推荐

  1. MySQL视图概述

    1.介绍 在传统关系型数据库里,视图有时也被称作虚表,是基于特定SQL结果集的虚拟数据表.在有些场合会变得很方便,例如:原有系统重构,旧的数据表A和B已经被拆分和合并到数据表C.D.F里面,为了实现平 ...

  2. centos7.0安装redis扩展

    1.下载 下载地址:https://github.com/phpredis/phpredis/ 文件名:phpredis-develop.zip 文件下载成功后,上传至/usr/local 2.安装 ...

  3. Solr6.5与mysql集成建立索引

    首先在solrconfig.xml(我的是保存在/usr/local/tomcat/solrhome/mycore/conf/下)的<requestHandler name="/sel ...

  4. poj1066(叉乘的简单应用)

    做完了才发现,好像没有人和我的做法一样的,不过我怎么都觉得我的做法还是挺容易想的. 我的做法是: 把周围的方框按顺时针编号,然后对于每一条边,如果点出现在边的一侧,则把另一侧所有的点加1,这样最后统计 ...

  5. SET IDENTITY_INSERT ON/OFF 权限

    今天突然遇到了,找不到对象“XXXX”,因为它不存在或者没有您所需的权限,于是检查程序,突然发现程序中有一段代码是: SET IDENTITY_INSERT eticket ON //执行业务 ... ...

  6. 2218 补丁vs错误

    2218 补丁vs错误 1999年CTSC国家队选拔赛  时间限制: 1 s  空间限制: 64000 KB  题目等级 : 大师 Master 题解       题目描述 Description 错 ...

  7. 【BZOJ2401】陶陶的难题I 欧拉函数+线性筛

    [BZOJ2401]陶陶的难题I 题意:求,n<=1000000,T<=100000 题解:直接做是n*sqrt(n)的,显然会TLE,不过这题a和b都是循环到n,那么就可以进行如下的神奇 ...

  8. SharePoint解决方案及开发系列(1)-BPM

    自从2008年做SharePoint第一个项目至今,不知不觉已经快7个年头了:上次听涂曙光老师的讲座,有机会能跟他面对面地沟通(“我是看您的blog长大的”).刚换了新工作,暂时比较闲,乘着这段时间对 ...

  9. C# 6.0 (C# vNext) 新功能之:Null-Conditional Operator(转)

    Null-Conditional Operator 也叫 Null propagating operator 也叫 Safe Navigation Operator 看名字,应该就有点概念了.如果还不 ...

  10. CoreMotion 加速器陀螺仪

    初始化CoreMotion #import <CoreMotion/CoreMotion.h> CMMotionManager *motionManager = [[CMMotionMan ...