从你进入软件开始,你就建立了和服务器的联系。这是一段和服务器的长连接,直到你退出此软件。

2D文字聊天界面大致实现了文字输入、发送消息、接收消息、你可以通过点击按钮让机器人开启聊天模式或者学习模式、又或是进入3D语音聊天界面或者退出。在assets文件夹下导入NGUI(使用的是3.6.8版本的.unitypackage)包,点击按钮时有声音和透明度、阴影的变化,通过给按钮添加声音.....这样的组件,使得用户体验得到提高,每当点击发送按钮实例化一个prefab呈现在聊天对话框中,你可以看见你发送的文字和你从服务器接收到的返回的对话,通过点击聊天对话框的文字,你的消息可以合拢关闭暂时隐藏,这是使用NGUI插件的UI Play Tween.script,通过服务器端发送回来的消息附带着标识字符,可以使人物做出相应的动作,画面的层次感是通过调节两个照相机的DEPTH、PROJECTION、SIZE、CLIPPING PLANES实现的,学习模式和聊天模式的相互切换则是通过向服务器发送标识字符来实现模式切换。

3D语音聊天界面重在动画,把动画过度的condition设置为下个动画为TRUE,当收到服务器端的标识字符,就把它设置为TRUE,人物就产生动画的过度。在人物模型的四个方向搭建照相机,调节照相机在最终屏幕上出现的位置,经过四棱锥对光的折射和反射,四个照相机所拍摄到的场景恰恰使其投影到了四棱锥中心,形成了立体。背景中,地势是用unity的Terrain,勾出起伏的地势,铺上texture草坪和树,给四个照相机添加天空盒子组件。同时,你也可以在3D界面通过按钮点击实现去2D文字聊天界面或者退出此程序。

UNITY和Android的交互:

AndroidJavaClass jc =

new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);

AndroidJavaObject  activity=jc.GetStatic<AndroidJavaObject>(“currentActivity”);

得到AndroidJavaClass类并且获得AndroidJavaObject  的activity对象,通过activity.Call(“”,args)函数的第一个参数(函数名)可以调用Android端的一个函数,args传递了此函数的参数,

UnityPlayer.UnitySendMessage

("AndroidManager", "AndroidCallBack",””);在安卓端将从科大讯飞翻译过后的文本传送给了以AndroidManager命名的类中AndroidCallBack为名的函数,由此实现了安卓和unity的交互。

UNITY和3DMAX动画模型的融合: 在assets包下导入3DMAX动画模型的包,创建一个Animator Controller,实现一个动画向下一个动画的过度,将动画模型加入场景,给每一个动画模型加上此动画控制器,使得动画控制的条件为下一个动画为true时,当从服务器接收到标识符时,就使他产生不同的动画,这样就实现了根据对话内容让模型做出相应的动作。

UNITY和服务器的通信:通过TCP/IP协议进行通信,使用SOCKET建立和对应IP对应端口号的连接,开启一个线程去等待着接收由服务器端发送过来的消息,读入时编码方式使用UTF-8,发送字符串通过socket,BeginSend方法实现发送。

自然语言交流系统 phxnet团队 创新实训 项目博客 (六)的更多相关文章

  1. 自然语言交流系统 phxnet团队 创新实训 项目博客 (四)

    刚开始做时,一点头绪都没有,整天的上网找资料,各种谷歌百度,各种博客论坛,搜索的关键词也无非是智能自然语言交流.智能机器人.中文问答系统等等等等.而我们的思路也是些零散的,例如我们知道会用到分词,会用 ...

  2. 自然语言交流系统 phxnet团队 创新实训 项目博客 (二)

    基本要求 打开软件,即可进入2D文本交流界面, 软件此时已经连接到服务器,点击文本输入框输入你想说的话,点击发送按钮即可进行交流,点击CHAT和STUDY分别切换到聊天模式或是学习模式,聊天模式是机器 ...

  3. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十四)

    项目技术借鉴报告: 一.服务器端(Server) 1.分词 分词使用的是庖丁分词.使用盘古分词词库和词素作为辅助.其中包括下载Jar包并且使用. 2.人工神经网络 以网上已有的初级网络为蓝图,结合机器 ...

  4. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十三)

    对我们项目中的关键技术实现进行总结: 一.3DMax关键技术实现 1.一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. 2. 骨骼架设:首先对导入到3DM ...

  5. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十二)

    关于情感词典的学习总结: 情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.它由两个方面来衡量:一个情感倾向方向,一个是情感倾向度. 情感倾向方向也称为情感极性.在微博中,可以理解 ...

  6. 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)

    3DMax方面所涉及的专业知识:                       (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设:首先 ...

  7. 自然语言交流系统 phxnet团队 创新实训 项目博客 (一)

    2D文字聊天界面大致预期实现文字输入.发送消息.接收消息.你可以通过点击按钮让机器人开启聊天模式或者学习模式.又或是进入3D语音聊天界面或者退出. 目背景 (1) 开发动机的形态 随着科技的进步与生活 ...

  8. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十一)

    神经网络的计算过程 神经网络结构如下图所示,最左边的是输入层,最右边的是输出层,中间是多个隐含层,隐含层和输出层的每个神经节点,都是由上一层节点乘以其权重累加得到,标上“+1”的圆圈为截距项b,对输入 ...

  9. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十)

      关于本项目中使用到的庖丁分词的总结:   Paoding 详细介绍 庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网.企业内部网使用的中文搜索引擎分词组件.Paodi ...

  10. 自然语言交流系统 phxnet团队 创新实训 项目博客 (九)

    项目技术总结: VoiceToText的具体使用方法: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安 ...

随机推荐

  1. mysql定时执行某任务

    查看event是否开启: show variables like '%sche%'; 将事件计划开启: set global event_scheduler=1; 关闭事件任务: alter even ...

  2. ios Coredata 关联 UITableView 数据自动更新

    昨天写了一篇关于coredata的文章,自己觉得挺傻的文章.没想其它程序员看过后觉得更傻,于是今天决定写一篇厉害点的,首先写了一个coredata和uitableview结合的框架,非常简单实现了数据 ...

  3. scrollReveal.js页面滚动动态效果

    scrollReveal.jshttp://www.dowebok.com/134.html简介 和 WOW.js 一样,scrollReveal.js 也是一款页面滚动显示动画的 JavaScrip ...

  4. spark-architecture

    https://0x0fff.com/spark-architecture-shuffle/ https://0x0fff.com/spark-memory-management/ https://0 ...

  5. 采用Oracle的dbms_obfuscation_toolkit的加密

    create or replace function MD5 (vpassword in varchar2) return varchar2 is retval varchar2(32); begin ...

  6. [Windows Azure] Windows Azure Web Sites, Cloud Services, and VMs: When to use which?

    This document provides guidance on how to make an informed decision in choosing between Windows Azur ...

  7. 【转】(八)unity4.6Ugui中文教程文档-------概要-UGUI Rich Text

    原创至上,移步请戳:(八)unity4.6Ugui中文教程文档-------概要-UGUI Rich Text 7.Rich Text UI元素和文本网格的文本可以合并多个字体样式和大小.对 UI系统 ...

  8. canvas的图片绘制案例

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  9. nexus maven私服搭建

    1.在服务器上安装jdk 2.下载 nexus-3.14.0-04-unix.tar.gz,并上传到服务器/opt目录 3.解压 tar -zxvf nexus-3.14.0-04-unix.tar. ...

  10. C++用new来创建对象和非new来创建对象的区别

    转:http://www.cnblogs.com/GODYCA/archive/2013/01/10/2854777.html 我们都知道C++中有三种创建对象的方法,如下: #include < ...