unity3d手机unity3d游戏开发发有什么优势?

拒绝访问 | www.wenzhangba.com | 百度云加速
请打开cookies.
此网站 (www.wenzhangba.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(4254fdc317de43a7-ua98).
重新安装浏览器,或使用别的浏览器浅谈Unity3D手机游戏开发框架-GAD腾讯游戏开发者平台unity3d手机游戏开发有什么优势?_百度知道
unity3d手机游戏开发有什么优势?
1、对于移动平台来说,unity3D编程周期短,模块丰富,适合小型开发团队随着手游市场的崛起,大量新生的开发团队开始着手研发手机游戏,在游戏引擎的选择上,某游戏团队负责人认为unity3D有着很大的优势:“如果采用C++基础语言或者以此为基础的引擎来编写游戏,整个开发周期会很长,小团队无法承受如此漫长周期中的开销,而unity3d拥有很多现成的模块可以调用,在其商店中也有很多实用组件购买,大大缩短了开发周期。”2、可移植性很高,对多平台的支持非常平滑目前来看,游戏多平台上线已成主流趋势,近日艾瑞公布的数据显示,月流水高居榜首的十款游戏均为网页端与移动端同步运营,因此对于开发新游戏来说,支持多平台的游戏引擎将倍受青睐。Unity官方相关人员称:“相对于其他游戏引擎来说,unity3d拥有丰富的插件,对多平台的适应度更高,通俗来说,unity3d可以在同一个开发环境下轻松制作出在适应多平台的游戏。”虽然手游市场的开发者们正如火如荼的摸索着新的道路,但是部分游戏厂商仍然固步自封,使用平台局限性较强的adobe引擎。“互联网是个变化迅速的市场,更别说游戏行业了,网页游戏是在06年开始崛起的,之后的一年里面,市场上就出现了大量高质量的作品,在这个过程中被淘汰掉的企业数不胜数,大部分都是因为不适应突然从端游向页游的转变,现在的情况很相似,以前在页游界做得好的中小型企业现在的处境其实是相当危险的,如果还迟迟不能意识到游戏引擎更替的重要性,不能抢占先机,那么轻则盈利下滑,重则被市场淘汰。”
采纳率:70%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。基于Unity3D的手机游戏开发_参考网
基于Unity3D的手机游戏开发
摘 要介绍了一款基于unity开发的轻量级手机游戏开发过程,探讨在Unity3D平台下完成游戏关卡,场景以及功能模块的设计过程,提出实现Unity3D手机游戏开发采用的核心技术及核心代码,可供开发人员提供解决游戏开发问题的思路。【关键词】Unity3d Vector 手机游戏1 引言Unity3d是由Unity Technologies 公司开发的跨平台专业游戏引擎,是如今市场上一款全面整合的专业游戏引擎,软件其编辑器可运行在Windows 和Mac OS X双系统下,利用其所开发的游戏可发布至Windows、Mac、Wii、iphone、Windows phone 8和Android平台。Unity游戏引擎作为一款跨平台的游戏开发工具,其具有开发快速,易上手,跨平台发布,可扩展性强等特点。这里论述开发了一款3D格斗类手机游戏的过程,着重解决了屏幕自适应,屏幕滑动模式,美术资源管理,手柄控制,角色动画状态机,敌人AI交互设计,动态数据读取刷新,攻击技能成长系统设计,场景七大攻击技能释放与控制,单机副本以及厢房挑战关卡设计与实现等一系列问题,对其它类型的游戏开发具有一定的借鉴与学习参考的意义。2 手机游戏开发关键技术基于Unity的手机游戏开发,手机游戏主要包含主屏幕滑屏,界面刷新,技能成长系统,虚拟杆控制,场景技能释放,怪物AI设计等多大功能模块设计,实现并开发游戏,设计主要的关键技术及过程有:(1)通过数值计算,设计屏幕自适应技术。(2)初步研究实现PC端和手机端的触屏控制,通过Touch类和Input类设计实现在不同平台的“十字架”滑屏技术。(3)通过把二维空间向量转三维空间向量的方法,实现游戏手柄的功能控制技术。(4)使用Mecanim动画系统设计玩家的移动状态机,结合状态机设计手机手柄控制玩家移动技术。(5)设计玩家七大攻击技能模块的成长技能系统,配置游戏道具数据创建XML表,读取XML表信息使用字典来刷新统一管理游戏数据技术。(6)完成UI界面设计排版,打包做成预制件,控制游戏界面的加载和销毁技术。(7)设计实现三类敌人AI(蜘蛛,机器人,大boss)人工智能,使用大量的射线碰撞检测,向量(例如点乘,叉乘)知识完成交互式攻击技术。(8)实例化各类技能(火系,水系,千里眼,螺旋转,保护,法宝,瞬移),通过协程,视线追逐算法控制技能的移动方式以及攻击方式技术。(9)完成游戏的C#脚本的逻辑算法实现,内容涉及到游戏玩法,关卡逻辑,数据刷新,怪物的人工智能。3 手机游戏客户端的设计与实现过程3.1 手机滑屏控制模式的实现实现在PC端与手机端的滑屏效果,通过屏幕上下左右中间的虚拟十字架的坐标,控制移动和定位相机位置,屏幕滑动的运动方式分为两部分:(1)手指(鼠标)拖动相機带动屏幕移动。(2)当移动的距离超过一定距离时候同时释放手指(鼠标)相机将会自动弹簧式的移动到定位目的地,实现了上下左右滑动屏幕。手机上下左右滑动屏幕可以摄像机照射的位置弹簧式的移动到指定位置。算法分析//当鼠标按下的时候if(input.GetMouseButtonDown)//记录手指按下的位置posDown = input.GetMouseButtonDown//当鼠标按住的时候if(input.GetMouseButton)//判断是水平滑动还是左右滑动 , System.Math.Abs()获取绝对值;xValue = System.Math.Abs(input.MousePosition.x–posDown.x)Value = System.Math.Abs(input.MousePosition.y–posDown.y)//左右移动的值大于上下移动的值if(xValue&yValue)//左右水平滑动,固定射线机位置的垂直分量的值//左右移动的值小于上下移动的值elseif(xValue<yvalue) //上下垂直滑动,固定射线机位置的水平分量的值//鼠标抬起时刻if(input.GetMouseButtonUp)//判断鼠标滑动的值,有没有超过的滑动sliderValueif(xValue&sliderValue)//使射线机移动指定位置else//滑动值太小,使摄像机移动起始位置3.2 游戏虚拟杆控制的实现通过继承NGUI中Drawdropitem类实现鼠标和手指可拖动圆球状态。根据虚拟杆的大小,设计限制虚拟杆的移动圆球移动范围离中心点的距离小于100,当距离大于100时,限制距离为100。接着中心圆球的位置到虚拟杆中心位置的向量方向控制玩家角色的移动方向,紧接着根据中心可移动圆球离虚拟杆中心位置的距离长度控制玩家角色的移动速度,整个二维平面的虚拟杆360度旋转移动,映射到玩家在三维空间的移动。最后根据鼠标和手指的状态控制中心圆球的初始状态,当鼠标和手指离开时候,中心圆球将会重新回归虚拟杆的中心位置,此时玩家将处于休闲不移动的状态,当鼠标或者手指拖动中心圆球时候,将启动控制玩家角色的移动状态。算法分析
//拖动小球,限制可拖动最大距离 //继承NGUI的DrawDropItem类可实现拖动一个UI控件(小球) //记录小球的位置//使用input.MousePositon记录小球位置posBall//计算小球到底盘的向量,记录向量方向和大小。vec = posBall–posOriginal;//记录的方向映射到三维空间(x,y)平面上,360度控制角色的方向Vector3 playerPos = new Vector3();playerPos = Player.GetCompoent().localPosition; playerPos.forward = vec.normarlized;//记录的向量大小控制角色移动速度 float speedRate = Vector3.distance(vec);3.3 游戏敌人AI功能的实现蜘蛛的人工智能控制是由Unity中物体的触碰器触发,每个蜘蛛都有一个立方体触碰器,玩家如果进入这个范围,将由OnColliderEnter()触发进入函数,蜘蛛将进入攻击状态,采取视线追逐算法调整蜘蛛的朝向和移动,当距离玩家到一定距离的时候就会释放攻击技能。相反,如果玩家不在攻击范围,或者逃离到攻击范围之外,将由OnColliderExit()触发离开函数,此时蜘蛛将回归到休闲巡逻状态。机器人AI是比蜘蛛更具智能,机器人具有巡逻状态,只不过加入了模糊概率算法,提高了不确定性,增加了机器人的智能的真实性。机器人将在一个圆圈范围巡逻,变走变看周围环境的变化,判断是否有玩家进入攻击范围。当玩家进入攻击范围,且玩家是在机器人的视线前方,此时机器人将采取开枪的技能。当玩家进入攻击范围,但玩家在机器人的视线后方,此时判断玩家与机器人之间的距离,如果足够近的话,机器人将会发现玩家采取掉头攻击,如果距离比较远,那么玩家不会被机器人发现可以蒙混过关。3.4 游戏动画系统技术分析unity引擎有自带的动画系统,Mecanim动画系统,通过状态机来控制角色的移动。逻辑及算法分析://当虚拟杆启动时,角色开启移动动画状态//获取1.4.3的vec方向和大小,赋值给玩家Vector3 playerPos = new Vector3();playerPos = Player.GetCompoent().localPosition;playerPos.forward = vec.normarlized; playerAni.SetBool(runBool,true); playerAni.SetFloat(speedFloat,speedRate);//当虚拟杆关闭时,角色动画恢复休闲状态Animator playerAni = player.getcomponent();playerAni.SetBool(idleBool,true);//当点击释放技能时,动画状态跳转到释放技能状态的动画playerAni.SetBool(skillBool,true);3.5 游戏物理引擎射线技术分析射线检测主要是从某个物体(摄像机),发出一条射线,然后进行判断射线是否碰撞到指定物体,然后在相对于的接口函数编写出相应的反应事件,算法分析://定义一条从摄像机发射到鼠标点击位置的射线Ray ray = Camera.ScreenPointToRay(Input.MousePosition); //使用RaycastHit hit來存储碰撞物体信息 //如果发出射线碰撞成功 if(Physics.RayCast(Ray,outhit))3.6 游戏技能释放分析3.6.1 火系技能实例化出来的位置是处于敌人的上方,利用协程IEnumerator的程序知识控制其实例化出来的顺序,前后一共实例化八个火炮,当其被实例化出来的时候,火炮将自动寻找靠近玩家的敌人进行攻击,采取的攻击方式是视线追逐。3.6.2 水系技能实例化的位置比较讲究,因为其方向和位置总要面向敌人,所以其实例化的位置应该处于玩家的上方,而且四个水系技能炮所处的平面是与玩家和敌人的直线垂直,实例化之前需要先计算从敌人到玩家的方向向量的垂直向量,得出垂直的单位向量后再乘以距离大小,得出火系技能的左右距离,最后加上向上的方向向量的距离就可以得出实例化位置,实例化出来将采取视线追逐的方式对敌人进行追击。3.6.3 瞬移技能在释放技能的时候,玩家将会向前方发射一条被规定好距离的射线来确定前方是否有物体,射线进行碰撞检测,当有碰撞到物体的时,瞬移技能无法释放,当射线检测不到有物体的时候,玩家可以向前瞬间移动,移动方法是累加玩家自身的Forward向量。3.6.4 千里眼技能玩家一共有三种状态,正常的状态,千里眼状态,保护状态,启动此状态时候,只需要切换玩家的状态到千里眼的状态,然后改变手柄的控制,此时手柄的控制将会发生改变,第一控制的对象由玩家到摄像机,移动范围由一个圆圈范围到一个圆环范围,也就是手柄的中心圆球其移动的是50到100的可移动范围。而当启动千里眼状态时,游戏界面将会增加一个控制摄像机前后左右移动的界面。玩家可以变旋转摄像机边移动摄像机的位置。3.7 游戏数据配置与刷新的实现游戏数据存储在XML表中,而数据的提取刷新也是在XML表中进行的,而提取出来的一条Item数据将被存储在Dictionary字典里面,根据键对值的方式进行读取和存储数据,从而刷新游戏数据。4 结束语本文着重介绍了基于unity开发的轻量级手机游戏包含主屏幕滑屏,界面刷新,技能成长系统,虚拟杆控制,场景技能释放,怪物AI设计等多大功能模块设计及采用的开发技术算法分析,研究在Unity3D平台下完成游戏关卡,场景以及功能模块的设计过程,提出实现Unity3D手机游戏开发采用的核心技术及核心代码,以供游戏开发技术人员提供解决游戏开发问题的一种新思路。参考文献[1]游戏核心算法编程内幕[M].北京希望电子出版社,2005.[2]游戏发展现状分析报告:86讯息网.[3]SIKI Unity教程:泰课网.[4]蛮牛游戏论坛:游戏蛮牛.作者简介陈雪梅(1978-),女,广东省人,硕士学位。研究方向为计算机程序设计、移动开发、数据库设计。作者单位广东技术师范学院 广东省广州市 510310
电子技术与软件工程
电子技术与软件工程的其它文章豆丁微信公众号
君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
基于unity3d的手机游戏设计与实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于unity3d的手机游戏设计与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 unity3d游戏开发 的文章

 

随机推荐