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

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. IOS使用AVAudioPlayer播放mp3歌曲文件并监听来电打断

    本实例实现了AVAudioPlayer播放mp3歌曲文件,实现了播放.暂停.继续操作,音乐音量控制.播放进度显示,同时监听来电打断事件 一.控件初始化 - (void)viewDidLoad { [s ...

  2. MD5 和的价值体现在哪里,它是用来做什么的?

    MD5 和的价值体现在哪里,它是用来做什么的? MD5 和是由字母和数字构成的字符串,起到了文件指纹的作用.如果两个文件有相同的 MD5 和值,那么,文件完全相同.您可以为每一软件下载使用所提供的 M ...

  3. 【Unity】8.4 扩展UnityGUI

    分类:Unity.C#.VS2015 创建日期:2016-04-27 一.简介 有很多种方法可以补充和扩展 UnityGUI 以满足您的需求.你可以混合和创建控件,并且可以有多种方法来规定用户 GUI ...

  4. 内部排序比较(Java版)

    内部排序比较(Java版) 2017-06-21 目录 1 三种基本排序算法1.1 插入排序1.2 交换排序(冒泡)1.3 选择排序(简单)2 比较3 补充3.1 快速排序3.2 什么是桶排序3.3 ...

  5. MSTP故障处理手册

    H3C核心交换机常见故障定位手册.pdf MSTP故障处理手册.pdf 目 录 1 MSTP故障处理 1.1 广播风暴故障处理 1.1.1 故障描述 1.1.2 故障处理流程 1.1.3 故障处理步骤 ...

  6. LeetCode: Construct Binary Tree from Inorder and Postorder Traversal 解题报告

    Construct Binary Tree from Inorder and Postorder Traversal Given inorder and postorder traversal of ...

  7. django 中多字段主键(复合、联合主键)

    django中不支持双主键.多主键. 要实现类似功能可以: classMeta: unique_together=(("driver","restaurant" ...

  8. java 多线程 27 :多线程组件之CountDownLatch

    前言 在多线程环境下,JDK给开发者提供了许多的组件供用户使用(主要在java.util.concurrent下),使得用户不需要再去关心在具体场景下要如何写出同时兼顾线程安全性与高效率的代码.之前讲 ...

  9. Python3机器学习—Tensorflow数字识别实践

    [本文出自天外归云的博客园] Windows下Anaconda+Tensorflow环境部署 1. 安装Anaconda. 2. 开始菜单 > 所有程序 > Anaconda 3 (64- ...

  10. ZooKeeper管理分布式环境中的数据

    Reference: http://www.cnblogs.com/wuxl360/p/5817549.html 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它 ...