Unity3d完整项目的好玩的3d角色扮演网游可以拿出来用吗

程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之角色控制器组件研究(二十二)
Unity3D研究院之角色控制器组件研究(二十二)
围观47864次
编辑日期: 字体:
Unity3D封装了一个非常好用的组件来实现第一人称视角与第三人称视角游戏开发,我们称他为角色控制器组件,几乎不用写一行代码就可以完成一切的操作,神奇吧。使用它的方法如下,首先打开Unity游戏引擎编辑器,然后在Project视图中右键选择Import Package -& Charactr Controller(角色控制器)把它导入我们的工程中。如下图所示,第一人称与第三人称的组建已经加入Project视图中。3rd Person Controller 表示第三人称控制器,First Person Controller表示第一人称控制器。
如下图所示,我们将FirstPerson Controller拖拽入Hierarchy(层次视图)中。由于角色控制器是具有一定物理引擎的,所以一定要将它放在地形或面对象之上,否则当它接收物理效果时发现地面没有东西支撑它,它就会掉下去。然后运行游戏你就会发现和CS中的第一人称效果非常相像, W、S、A、D移动人物行走,移动鼠标更改行走的方向,空格键人物会跳跃。
第一人称视角的实现原理是在游戏场景中创建了一个胶囊体的游戏对象,并且给胶囊体对象身上绑定了一个摄像机,摄像机对象如下图所示,它绑定在”Person Controller”中。这时场景中默认的摄像机就会失效,可以直接删掉默认的摄像机。通过按键控制这个胶囊体移动,通过鼠标修改胶囊体的朝向,此时你就会发现第一人称视角已经完全实现,目前为止我们不需要编写一行代码。目前场景中的天空盒子我是使用skyBox组件绑定在摄像机中,因为第一人称视角的摄像机对象在”Person Controller”中,所以需要将SkyBox组件绑定在这个摄像机中,如果绑定在默认摄像机中那么你将不会看到天空的效果。
(点击图片查看大图)
下面我们在看看第三人称视角,如下图所示,在Project视图中将3rd Person Controller拖拽入Hierarchy视图中。第三人称视角需要使用我们原有的摄像机,如果刚刚将摄像机的删掉的话。在Hierarchy视图中点击Creat-&Camera 即可。然后选择摄像机,在右侧Inspector视图中设置它的tag为MainCamera,如下图所示。最后在Hierarchy视图中选择3rd Person Controller,在右侧Inspector视图中将Third Person Camera 脚本的 Camera Transform 变量绑定上刚刚创建的主摄像机,此时运行游戏后以第三人称视角移动主角行走与跳跃,摄像机永远都会在跟随在后面除非修改角色控制器组件中默认提供的源码,源码都在右侧监测面板视图中直接点开就可以查看。
(点击图片查看大图)
下面我们学习角色控制器组件在其它模型之间的应用。首先在Hierarchy视图中创建两个Cube(立方体对象) 命名为:Cube0(发出碰撞的对象)Cube1(接收碰撞的对象),然后在Hierarchy视图中选择Cube0对象,接着Unity导航菜单栏中选择Component(组件)-Character-&选择任意一个角色控制属性。 补充一句,角色控制器组件一定要在Project视图中导入,否则这里将无法绑定组件。角色控制器组件因为与碰撞组件相互冲突,所以添加角色控制器组建后Collider组件就会消失。下面我们实现一段简单得代码,使用添加过角色控制器组件的Cube0 去碰撞未添加角色控制器组件的Cube1。
123456789101112131415161718192021222324252627282930313233343536373839404142
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour {& //主动碰撞的对象名称 string castName = null;& //接收碰撞的对象名称 string receiveName = null;& void OnGUI () &&&&{&
if(castName!= null && receiveName !=null)
//设置显示的颜色为黑色
GUI.color = Color.black;
&&&&//显示主动碰撞的对象 与接收碰撞的对象名称 &&&& GUI.Label(new Rect(100,100,200,30),"主动碰撞的对象名称"+castName); &&&& GUI.Label(new Rect(100,200,200,30),"接收碰撞的对象名称"+receiveName);
} }& //角色控制器组件在与具有Collider组件对象之间的碰撞 void OnControllerColliderHit(ControllerColliderHit hit) {&
//得到接收碰撞名称
GameObject hitObject = hit.collider.gameObject;&
//当它不是地面时间
if(!hitObject.name.Equals("Terrain"))
//得到主动碰撞的对象 与接收碰撞的对象名称
castName = gameObject.name;
receiveName = hitObject.name;
将上面这段代码绑定在Cube0中,运行游戏后W、A、S、D按键来控制Cube1立方体移动。当Cube0与Cube1发生碰撞时,程序将进入方法OnControllerColliderHit(),通过参数就可以得到接收碰撞的游戏对象也就是Cube1对象,而gameObject就是当前主动发生碰撞的Cube1。如下图所示,当两个立方体碰撞时使用GUI已经将碰撞的信息打印出来。
接着我在说说刚体组件,默认在Unity中创建的模型是不具备接收物理引擎的,除非给模型添加刚体组件或角色控制器组件。我们先说说刚体,还用奋斗的小鸟来举例子。发射小鸟以后,小鸟以一个抛物线轨迹去撞击物体,发生碰撞后被碰撞的物体会根据小鸟撞击的角度以及力度发生不同的物理效果,并且几乎是完全模拟真实的物理引擎。但是这种物理引擎的效果不能绑定在比如RPG游戏的主角身上。原因很简单,因为刚体所添加的物理引擎太过于真实以至于会影响用户的对主角的操作,举个例子比如用户在控制主角移动时他碰撞到质量较大的物体,根据真实的物理引擎会被这个物体的反弹力把主角反弹回原位。但是这个是不符合逻辑的,因为刚体组件太过于物理话了,所以我们需要给主角添加角色控制器组件,它操作起来比较灵活,更容易让我们操作主角。
下面我们给Cube1对象绑定刚体组件,选择Cube1对象然后在导航菜单栏中选择Component-&physics -&Rigidbody(刚体)。我们看看下面这段代码,使用添加了角色控制器组件的Cube0 去碰撞添加刚体组件的Cube1,当他生碰撞时计算一下Cube0碰撞Cube1时的碰撞角度向量,然后通过刚体向他施加一个力把它推开。
123456789101112131415161718192021222324
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour {& //角色控制器组件在与具有Collider组件对象之间的碰撞 void OnControllerColliderHit(ControllerColliderHit hit) {&
//判断碰撞的对象是否具备刚体组件
GameObject hitObject = hit.collider.gameObject;
Rigidbody rigidbody = hitObject.rigidbody;
if(rigidbody != null && !rigidbody.isKinematic)
//地面也具备刚体组件,这里判断一下
if(!hitObject.name.Equals("Terrain") )
rigidbody.AddForce(new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z) * 10);
也可以将同样的脚本直接绑定在第三人称的角色控制器组件中。如下图所示,主角移动将周围的箱子都推开了。
总的来说角色控制器组件适用于 既需要感应物理引擎的支持但是又不能完全依赖与物理引擎,需要自己代码去编写一些东西的模型,所以非常适合游戏中主角对象的使用。雨松MOMO祝大家学习愉快,哇咔咔。
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!后使用快捷导航没有帐号?
只需一步,快速开始
&加载中...
查看: 14831|回复: 1
【官方说明】Unity 5的新授权方式全解
TA的其他好贴
马上注册,加入CGJOY,让你轻松玩转CGJOY。
才可以下载或查看,没有帐号?
本文对Unity 的授权方式进行了详细的说明,帮助您做出最明智的选择。Unity 5分成Unity 5 Personal Edition(个人版)和Unity 5 Professional Edition(专业版)。所有版本不收取任何分成(Norevenue sharing),不管你的游戏多赚钱,Unity不会跟你收取利润分成。
unity.jpg (46.72 KB, 下载次数: 31)
14:41 上传
Unity 5 Personal Edition(个人版)
Unity 5 个人版是针对独立开发者和小型开发公司所推出的免费方案,与之前的免费版本不同的,个人版本包含了Profiler,Occlusion Culling, Render-to-Texture 以及 Post-Processing Special Effects 等等原本Pro版本才有的功能,也会包含Unity 5新功能像是Physically-basedShading, Enlighten, reflection probes。免费拥有完整的Unity 5 引擎工具团队在距离申请日期最近的一个自然年内必须低于$10万美金总营收/资本额如有下列服务需求必须另外租用,像是Unity Cloud Build Pro, Asset Store Level 11, Team License 和Analytics Pro。
Unity 5 Professional Edition(专业版)
新的Unity5 Pro 授权除了编辑器之外,现在包含了下列内容:Team License (原本需要每月支付$20美金)Unity Cloud Build Pro (免费使用12月 – 原本需要每月支付$25美金)可以下载Unity 测试中版本Unity Analytics Pro (目前正在测试中的强大分析工具 – 未来将会以每月$25美金的方式授权)Game Performance Reporting (游戏效能在线报告服务)Unity Asset Store Level 11 (全新AssetStore服务& 每月免费套件)付出和之前同样的价钱获得超多的增值,月租$75美金/月或 $1500美金一套 (旧版更新$750美金)
21个平台发布免费发布到Xbox360, 开发者必须要和微软MSFT 取得平台授权。Unity 个人版可以发布到iOS 和Android 不用另外购买套件,差别是起始画面会有Unity Logo显示,如果开发者升级到Unity 专业版,则iOS/Android必须要使用付费的iOS Pro/Android Pro版本。
Unity 5 Pro 附带的服务说明
Unity Cloud BuildUnity Cloud Build会和版本控制系统建立关联,并在每次更新版本的时候自动建立发布档案并依照需求分配给指定的测试人员或客户,节省大量的工作时间。这能解决许多开发者和营运商同时测试与除错许多不同平台的时间浪费。初期会先支持iOS,Android, 和Unity Web Player。Cloud Build能帮开发者把时间更集中在更重要的项目内容上。从去年八月测试到现在,已经有150,000发布档案被产生,节省了约4,500天开发等待时间。服务费用说明:Basic- 免费Pro- $25美金/月 (Unity 5 Pro用户会有12月授权)Studio- $100美金/月Enterprise- 联系Unity销售获取更多信息Asset Store Level 11Level Eleven(L11) 是一个Asset Store 的会员计划,助力开发者更好地获取Unity AssetStore带来的强大资源。L11每个月会推出免费的资源套件以及一些特别折扣。Unity 5 Pro 的用户可以免费自动成为L11会员。Unity Analytics 分析服务Unity Analytics是Unity 的新全球云端化的分析工具,可以让你很简单分析你的项目各种数据与玩家行为,进而从中改变适合玩家的内容。Unity Analytics目前正在公测中,不管你是Unity Pro版本或是Unity个人版本,任何有兴趣的开发者都可以申请测试。未来正式版本推出时,Unity Analytics Pro版将会纳入Unity5 Pro版,如果你是Unity 5 个人版本的客户也可以每月$25美金租用。Game Performance Reporting(游戏效能报告服务)游戏效能报告是个正在开发的全新服务,未来可以透过网页监看像是项目的异常记录、编辑器异常、开发和发布记录以及许多更细节的报告。试用游戏效能报告服务到并登入你的Unity账号建立一个项目追踪你的游戏下载并安装这个套件建立好的项目页面点选整合(Integration)步骤。
如何让别人关注你?
感謝分享這麼好的資源!
本楼回复(<span id="dp_count_)
如何让别人关注你?
Powered by拿下郑州Unity3D开发培训课程 锁定职业的最大风口
现如今,以Unity3D为基石的VR行业也在这一年中迎来了爆发期。业界巨头纷纷涉足VR行业在建筑地产、家居家装、游戏开发等多种领域。Unity3D成为了全世界开发者的舞台。那么,到底Unity3D会为什么这么火呢?
说起Unity3D为什么会这么火,要从以下几点说起:
目前,各个平台的游戏开发几乎没有通用性,而Unity3D是UnityTechnologies公司开发的一款强大的跨平台游戏开发引擎。其本身支持包括iOS、安卓、WindowsPhone、PS3等在内的多平台发布优势,可以使用一种语言就开发出基于各种平台的游戏。并且可以给玩家带来更真实,更刺激、更极致身临其境的感觉。
为何职业选择Unity3D开发工程师?
AR、VR的兴起,让Unity就业更加广泛,目前除了游戏、网游等行业外,其他行业也纷纷高薪聘请Unity3D开发工程师。目前国内的专业Unity3D开发工程师不足一万,市场需求却在80万。
同时,据统计,50%的Unity3D开发工程师都非常年轻,工作年限在2年之内,45%的开发者平均薪资却达到16000元,远远超过其他软件开发岗位的薪资水平。而工作年限在4年以上的Unity3D开发高级别人员甚至可以达到25万到50万。选择了Unity3D开发工程师就等于提前锁定了风口,等于拥有了无限的就业前景!
到奇酷学院学Unity3D开发课程,站在风口浪尖上!
奇酷学院有着强大的VR师资阵容,数十位VR实战派讲师授课,同时奇酷学院有着专业的VR研发团队,让学员掌握最前沿的VR技术,成为VR行业爆发元年的leader。可以带领学员参与最真实的案例,帮助学员短时间内积累大量的实战经验。
奇酷学院的Unity3D游戏开发课程/,应用全球领先的游戏开发软件,结合多年教学经验、技术经验、项目经验,根据市场的需求,拥有最受软件企业欢迎的课程体系,培养最受欢迎的游戏开发人才。
奇酷学院做为IT行业专业研发和人才培养基地,不但拥有国内最庞大的Unity就业人脉,还拥有多年用户体验行业经验。近百名的实战派讲师,以及有多名行业CEO参与授课,为学员提供最专业,最实用的培训。同时入学即和学员签订就业协议(保底薪、保就业),为莘莘学子保驾护航。
Unity3D无所不在,已悄然改变世界,可以预见Unity3D培训技术将会是继计算机和智能手机之后的又一个技术爆发点。强大的用户需求,让这个市场迅速崛起,学好Unity无疑将提前锁定职业的最大风口,奇酷学院将助你一臂之力!
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
奇酷学院专注于IT高端人才的培养,选择奇酷,名师授课,免费试听,100%高薪就业!
奇酷学院是奇酷动力旗下专注于前沿技术的O2O教育品牌,由多年从业经验的IT精英组成
今日搜狐热点Unity3D 游戏开发团队中,各角色划分是怎样的? - 知乎508被浏览21331分享邀请回答22315 条评论分享收藏感谢收起105 条评论分享收藏感谢收起查看更多回答1 个回答被折叠()

我要回帖

更多关于 3d单机游戏角色扮演 的文章

 

随机推荐