位置: 编程技术 - 正文

3D语音天气球(源码分享)——完结篇(天气球球怎么下载)

编辑:rootadmin

推荐整理分享3D语音天气球(源码分享)——完结篇(天气球球怎么下载),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:天气预报3d效果,天气球球下载,天气球球下载,天气球球红包版app下载,天气球球下载安装,天气球球下载,天气球技能,天气球技能,内容如对您有帮助,希望把文章链接给更多的朋友!

转载请注明本文出自大苞米的博客(

左边是Unity做出后在电脑上运行效果图,仅支持鼠标拖动。

右边是Unity结合Android和语音控制之后在手机运行的效果图,我们可以通过这4个按钮和触屏滑动来操作这个程序。下面来简单介绍一下这4个按钮的实现方法:

4个按钮:

Android端的4个按钮其实就是一个非常普通的布局。布局有两层,里面一层用来显示Unity视图,外面一层用来显示4个按钮(4个按钮也可以做到Unity端):

下面是Android代码中4个按钮的点击触发事件:

下面以详细(detail)为例简单介绍下:

UnityPlayer.UnitySendMessage("Main Camera", "detail", "");这段代码就是用来和Unity通讯的方法。这个函数中接收三个参数:接收的Unity对象,调用的方法,方法接收的参数。

本例中4个按键的接收对象都是Main Camera,就是我们程序的主摄像机。

再来看看用来接收detail方法的Main Camera脚本中的代码:

这段代码的作用就是加载详细的省市信息。

先拿到当前小球的省市名称和编号,然后根据现在是省,还是城市来做不同操作。

如果当前是省,在点击“详细”按钮后将显示当前省下所有城市的信息。

如果当前是市,则显示详细天气信息。

mySphere就是主摄像机中对于“3D”大球的一个引用对象。因为摄像机只有一个,所以这里我将它当作一个控制器(controller),来控制小球(model),和UI的显示(view)。也算是一个简单的MVC模式的实现。

四个按钮中“退出”,“后退”,“详细”都很简单,下面讲解一下比较重要的功能——“语音”:

语音:

Android端:

点击“语音”按钮后会触发相应监听,然后调用语音服务解析语音命令,将其转化为文字,根据这些文字(本例中就是省市名称)查询数据,之后传递到Unity端。

Android端代码我在上篇文章介绍过,就不多说了。

Unity端:

接收传递过来的信息(就是省市编号),根据省市编号在3D球中查找对应的小球。然后将小球转到正对着我们的主摄像机,这样就完成了语音查询。

实现很简单,其实只有两部分:

1.查找

2.旋转

3D语音天气球(源码分享)——完结篇(天气球球怎么下载)

如下图所示,为了方便截图我设置了一个按钮来模拟语音点击。

当点击它时会查找“北京”,然后自动将“北京”小球旋转到正中央(会有一个速度减缓效果slerp插&#;)

查找:

查找很简单,就是循环所有的小球,然后找到名字相匹配的。

旋转:

旋转是本文的重点,也是当初困扰我好久的一个问题,因为我对Unity不是很熟,数学知识也忘光光了。

Unity中提供很多关于旋转方面的函数,想详细了解的话官方文档是个好东西。

下面简单介绍一下我计算角度的方法,过几天等我把旋转角度的相关内容研究明白后,我计划写一篇关于旋转方面的总结。

先看下面的图,我用Debug.DrawLine方法将大球圆心到摄像机,和大球圆心到查找小球标记为两条红色的射线。

如图,假设大球圆心为O,圆心O到查找球的射线为OA,圆心O到摄像机的射线为OB。

第一种方法:

方法一的核心就是Quaternion.Euler(x : float, y : float, z : float)这个函数,简单理解就是该函数会返回一个旋转角度。3个参数为绕x轴旋转x度,绕y轴旋转y度,绕z轴旋转z度。

所以第一种方法的思路就是求出目标球需要绕多少度可以转到屏幕正中间。因为两次旋转就可以确定,所以euler(x,y,z)这个方法中随便算出两个&#;就行。

计算绕Y轴的角度:取A点在XOZ平面的投影A'点绕Y轴方向所形成的夹角。

计算绕Z轴的角度:取A点在XOY平面的投影A'点绕X轴负方向所形成的夹角。

Vector3.Angle (from : Vector3, to : Vector3)函数 的作用是返回from和to之间的夹角。

第二种方法:

第二种方法就简单太多了,核心是Quaternion.FromToRotation (fromDirection : Vector3, toDirection : Vector3)方法,它的作用就是返回从向量fromDirection到toDirection所需的旋转角度。

所以思路是通过求出圆心到小球的向量OA,和圆心到摄像机的向量OB,然后计算两个夹角的角度。在将大球旋转这个角度就ok了,代码如下:

上面的代码中应用了Quaternion.Slerp (from : Quaternion, to : Quaternion, t : float)方法,它会将刚刚计算的Quaternion旋转&#;以插&#;进行旋转(也就是类&#;与球面曲线那种先快后慢的效果)。

Slerp翻译为球形插&#;,我个人觉得就像Android动画中设置Interpolator差不多的感觉。

写在最后:

3D语音天气球的所有内容终于介绍完了。说实话,当写完第二篇就不爱写了,因为这个demo写的很早,思路和Unity的相关知识点也忘差不多了。最近工作也忙,加上要过年了也越来越懒。。。不过最终还是坚持下来并给这个算不上项目的项目画上了一个句号。

当初要做它就是为了参加一个比赛,虽然天气查询这个功能有点鸡肋,不过创意还是有的,所以还是抱着要获奖的心态去的。结果很不幸,连个名次都没有,当时肯定有点小郁闷,毕竟熬夜熬了一个月。不过现在回头再来看这个东西确实比较屎,也就一个毕设的水平,现在也就坦然了。。。

不过在做它的过程中收获还是很大的,最直接的体现就是对于“驱动学习”的理解,比如当时对Unity的向量,角度旋转等等都不会时,一点点去看文档,看帖子论坛,查Google。这样学习比直接看书看视频来的深刻的多。

扯了好多废话。。。最后想说的就是谢谢大家的支持!

Android端和Unity端代码都放在Github上了:

Unity开发之接入Sharesdk微信分享Android 原博客说的很详细了,补充几点原博客链接-----

unity3d接入ShareSDK微信平台参数说明 接入了ShareSDK,并分享微信成功,发现有些参数很模糊,所以在下面说明下测试的结果。这是分享成功的截图,发了两条所以有些参数才知道来源。Hashta

NGUI项目中方法总结 1.当按钮很多时,点击按钮触发事件publicGameObjectBtn_login;UIEventListener.Get(Btn_login).onClick=loginClick;voidloginClick(GameObjectgo){}2.多选框:UIToggletoggle_tea;toggle_tea=che

标签: 天气球球怎么下载

本文链接地址:https://www.jiuchutong.com/biancheng/378845.html 转载请保留说明!

上一篇:[置顶] Unity Editor Extensions – Menu Items([置顶]津鱼.我爱你)

下一篇:Unity开发之接入Sharesdk微信分享Android(unity接收udp)

  • 自然人电子税务局
  • 增值税16%降到13%的留抵退税的情况说明咋写
  • 房产税如何进行税源采集
  • 预缴增值税附加税需要计提吗
  • 发票用完了领发票需要带什么东西
  • 其他应付款属于哪类
  • 冲企业所得税的分录
  • 视同销售的八种情况
  • 中期票据怎么入账
  • 所得税汇算清缴表在哪里打印
  • 税局代开专票对方隔月退回重开如何做账务处理呢?
  • 收到厂家的销售返利 税收
  • 消费税的征收范围
  • 外地预缴的企业所得税可以退吗
  • 应付账款无法支付所得税处理
  • 财务费用的借方和贷方
  • 公司清算补偿工资标准
  • 资管公司如何缴纳流转税?
  • 劳务报酬所得缴多少税
  • 无形资产的出租租金通过什么科目核算
  • 谷歌浏览器adobe flash player已不再支持
  • 应收账款转让分录
  • 以租代购怎么入账
  • 计提本月应交未交增值税
  • 亨茨维尔机场
  • 以前年度损益调整结转到本年利润吗
  • php制作验证码
  • vue word editor
  • 固定资产折旧计算方法公式大全
  • 淘宝镜像网站
  • 微信小程序开发公司
  • 纳税调整项目明细表利息支出怎么填
  • 开了红字发票申请还要做进项税转出吗
  • 普票与专票的区别在哪?它各自的特点?
  • 无票收入如何报税
  • 印花税申报怎么更正采集处理
  • 电子汇票提示付款申请
  • 工会支付职工福利费做账
  • 劳务公司开出的劳务票需要申报个税吗
  • 应付职工薪酬和生产成本的区别
  • 公司销售红酒需要什么资质
  • 资本公积的来源和用途
  • 房屋租赁税按什么收
  • 工资薪酬所得税税率表最新
  • 应收账款贷方余额应与什么科目合并后填入报表
  • 代驾服务费属于哪个税收编码
  • 出售固定资产如何缴纳增值税
  • 怎么做个体户
  • 工程没钱也没有工资
  • 实物投资的会计科目
  • 住宿费开的增值税专用发票怎么记账
  • 计提加计抵减额的会计处理
  • mysql5.7.19 zip 详细安装过程和配置
  • MySQL利用大数据技术进行回归模型的构建流程
  • 重装win7系统后鼠标反应慢
  • xp系统每次开机都重启
  • win xp怎么样
  • ubuntu启动conda
  • ubuntu服务器安装matlab2014a环境配置
  • fedora使用
  • win8安全模式修复
  • windowsxp怎么装windows7
  • Percona Server 5.5.44-37.3/5.6.25-73.0 发布
  • 系统自动保存文件在哪里
  • 深入解析java编译器源码剖析与实例详解pdf百度云
  • node.js的作用是什么
  • 如何删掉win7系统
  • perl的$1
  • 有道词典下载安装
  • javascript中的函数包括内置函数和自定义函数
  • javascript命名空间
  • python标准库参考手册
  • python解决方案与程序有什么不同
  • js中的类是什么
  • jquery插件开发方法
  • 天津违规养犬的处罚依据
  • 广告业发票税率是多少 可以抵扣多少
  • 开具负数发票(专用发票)流程?
  • 外省车险保单,有何不利的事
  • 金华市税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设