unity3d手游开发教程应该怎么学

众所周知,Unity3D是一个能够实现轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎。在现有的版本中,其强大的游戏制作功能已经达到和其他顶级游戏引擎媲美的地步。但是 其制作并不如想象中的困难。本文就带您走进unity的世界,并且看看第一个游戏demo是什么样的。[]
前面两章我们比较细致的对Unity3D的界面和表现效果等进行了说明与讲解。相信很多朋友在看过Unity3D如此强大的画面效果后都已经按耐不住想要自己动手操作了,接下来我们就尝试在Unity3D中创建一个山势地形图。
Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添加新的视图,最后由开发者自行打包生成IPA包,发布程序
Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添加新的视图,最后由开发者自行打包生成IPA包,发布程序
·····
51CTO旗下网站Unity3D学习游戏开发心得;罗佳;小组排名:黄馨然,罗佳;在这将近20天的游戏开发中,第一次一边学习,一边;一下是对自己在游戏开发过程中所领悟到的新知识做一;关于摄影机控制,如果场景中有多架摄影机,那么如何;关于物体的质感,“Diffuse”,“Diffu;这种材质为贴花材质,即相当于Mask类型,可以再;?DiffuseDetai
Unity3D 学习游戏开发心得
小组排名:黄馨然,罗佳
在这将近20天的游戏开发中,第一次一边学习,一边开发游戏,虽然最后做出来的游戏有点差强人意,但是在这整个过程中学到的东西让自己觉得这20天的努力让这一整个学期学到的知识一下子充盈好看了起来。 首次开发自己的游戏,是一个较艰难的过程,有时候在一个问题上耗上五六个小时仍无半点进展,那感觉确实让人十分沮丧,同样的,耗上五六个小时解决一个问题时的喜悦之感也是无与伦比的。在这20天的开发过程中,个人感觉比较难的,就是摄像机的处理了, 总是无法使场景中的游戏对象,显示在合理的位置,调整摄像机的位置以及角度都非常费时间。
一下是对自己在游戏开发过程中所领悟到的新知识做一个总结:
关于摄影机控制,如果场景中有多架摄影机,那么如何确定第一打开时间所显示的摄影机,就需要设置Camera属性中的Depth数值,数值越大的摄影机越优先显示。 关于材质数量的控制,如果一个物体给与一个材质球,那么Unity3D对于材质数量和贴图数量没有任何的限制。如果一个物体给与多个材质球,我们需要用Multi/SubObject来实现,但是这种罗列的材质球的数量没有严格的控制,但尽量保持在10以内,过多的数量会导致一些错误。如果不使用Multi/SubObject材质球,也可以选择一些面,然后给与一个材质球。这样系统会自动将其转换成Multi/SubObject材质。综合而言Unity3D软件对于材质的兼容还是很好的。
关于物体的质感,“Diffuse”,“Diffuse Bumped”,“Bumped Specular” 这三种类型为常用类型,其中Bumped需要增加Normal法线贴图来实现凹凸。 ? Decal
这种材质为贴花材质,即相当于Mask类型,可以再Decal(RGBA)贴与一个带有Alpha通道的图像,形成和原图像相叠加的效果。
? Diffuse Detail
这种材质可以创造出污迹和划痕的效果,即相当于Blend混合材质。
? Reflective
其中各种类型可以创造出金属反射效果,需要增加Cubmap贴图。
? Transparent
其中各种类型可以创造出透明的效果,需要增加具有Alpha的通道贴图。
注意:如果要做玻璃贴图,Alpha如果全是灰色或黑色(即要求全透明),那么Alpha就会失效,如果要全透明,材质Alpha其中必须至少有1像素为白色。
其中SoftOcclusion Leaves类型主要应用于片状的树叶材质。
关于物体的尺寸,默认情况下U3D系统单位1等于1米,等于软件1单位。如果我们制作是按照实际大小比例制作,那么导入U3D引擎会自动变成原来的1%的大小。因为默认情况下,U3D的FBXImporter中的Scale Factor的数值为0.01。那个我们可以将ScaleFactor的数值恢复为1,但是这样会占用模型资源,比较消耗物理缓存。我们也可以将这个物体从Hierarchy中选择,并使用Scale放大100倍,这种设置可以有很多好处,并且还能通过用脚本制作动画。
关于代码开发:
1. 定义一个游戏对象为另外一个游戏对象的子对象.
public class player : MonoBehaviour
{public GameObject
ProjectileP}
平移游戏对象
//Horizontal 水平, Vertical 垂直
float amtToMove = Input.GetAxis(&Horizontal&)*Time.deltaTime*S
gameObject.transform.Translate(Vector3.right*amtToMove);
amtToMove = Input.GetAxis(&Vertical&)*Time.deltaTime*S
gameObject.transform.Translate(Vector3.forward*amtToMove);
定位游戏对象
transform.position = new Vector3( -743.07f, transform.position.y, transform.position.z);
获取游戏对象的位置
Vector3 position1= new Vector3( transform.position.x,
transform.position.y + transform.localScale.y/2.0f,
transform.position.z);
判断某个按键是否被按下
if(Input.GetKeyDown(&space&))
//执行事件
Instantiate( ProjectilePrefab , position1, Quaternion.identity);
// 在指定的位置position1,实例化一个游戏对象ProjectilePrefab
因碰撞而引起的事件,执行事件行为
void OnTriggerEnter( Collider ontherObject )
if(ontherObject.tag == &enemy&)
// Destroy( this.gameObject);
if(player.lives&0)
player.lives--;
Application.LoadLevel(&FailSence&);
enemy = (Enemy) ontherObject.gameObject.GetComponent(&Enemy&);
// Instantiate (BustPrefab, enemy.transform.position, enemy.transform.rotation);
StartCoroutine(DestroyPlayer());
enemy.SetRedBallPosition();
9. 加载游戏关卡, 即 切换游戏场景Sence
Application.LoadLevel(&GameSence&);
10. 实现多线程操作
//OnTriggerEnter是 两个物体碰撞响应函数,
其中一个游戏对象设置为刚体Rigibody, Is Kinematic,
另外一个游戏对象设置为 Is Trigger
void OnTriggerEnter( Collider ontherObject )
StartCoroutine(Display());
//协同程序
IEnumerator Display()
Instantiate (BustPrefab, transform.position, transform.rotation); //多线程完成的任务,实现爆炸效果
gameObject.renderer.enabled =
//隐藏游戏对象
yield return new WaitForSeconds(2.0f);
// 延时函数
gameObject.renderer.enabled =
// 显示游戏对象
11. 销毁游戏对象
Destroy(this.gameObject);
12. 在一个游戏对象里获取另外一个游戏对象
enemy = (Enemy) ontherObject.gameObject.GetComponent(&Enemy&);
//Enemy为某个游戏对象的类名(脚本)
通过 类对象实现调用 函数
enemy.SetRedBallPosition();
三亿文库包含各类专业文献、中学教育、外语学习资料、专业论文、13Unity3D 学习游戏开发心得等内容。 
 左边的观众,右边的观众,前面的观众,你们是否感受到 Unity3D 的魅力,而它的魅 ...灵巧强大的游戏引擎.来自【狗刨学习网】 制作, 角色, 游戏开发, 模型, 田园...  学习unity总结_学习总结_总结/汇报_实用文档。学习unity总结近年来高校毕业生数量..., 我选定自己的兴趣方向和目标,利用实习 时间参加 Unity3d 游戏开发培训学习。...  Unity3D之游戏开发学习方法概述_计算机软件及应用_IT/计算机_专业资料。这篇文章总结了Unity3D新手入门的一些应该知道的知识,对Unity3D新手非常有帮助,总结的比较全面...  unity3d游戏开发之商人模块开发心得_计算机软件及应用_IT/计算机_专业资料。Unity...如下图。 声明:这篇文档时来自于【狗刨学习网】社区,是网友发布的 Unity3D ...  虽然 老师在培训 Unity 的时候有着丰富的教学经验, 但是对于 Unity 的初 学者到底该如何去准备呢?学 Unity3D 游戏开发的新手应该怎么学 呢? 首先要从基础开始,...  95后大专生学游戏开发能学的下去不呢_计算机软件及应用_IT/计算机_专业资料。...而北大青鸟成都锦江就是专注于培养学生的 实际动手能力,有了操作项目的经验,才能...  unity3d游戏开发之习题总结2_计算机软件及应用_IT/计算机_专业资料。unity3d游戏...搬砖问题 这道题与百钱买百鸡那道题是一样的道理~ 这篇文章来自狗刨学习网...  17xuee 游戏学院简单介绍了 Unity3D 的一些 基础。 并且有部分内容根据天天飞车项目经验做了简单分析。 适合没有接触过 Unity3D 和手 游开发,并想了解其大概的...  要求使用 Unity3D 游戏开发软件实现上述游戏 Demo。 三、 具体要求 1、 2、 ...十、 运行结果 11 12 十一、 心得体会 在学习并实践的过程中, 可能在脚本...干货 | Unity3D 游戏开发团队组建需要哪些角色 | 手游那点事
干货 | Unity3D 游戏开发团队组建需要哪些角色
相比高度工业化的Unreal,不管是Unity的早期用户群还是今天的用户里,独立游戏开发者都占了相当大的比重。使用Unity的团队,能获得最佳用户体验的团队规模区间在1人-10人,20人靠上就必须要靠专门定制的工作流程和辅助工具来保证协作质量和效率。
Unity需要的角色,视项目的不同也有很大的区别。下面列出每个类型的团队成员和他们适用的项目范围。
逻辑实现者:工作是实现从游戏主循环到每个游戏元素的逻辑。在小团队里一般是唯一的一名程序员,在大团队里是GPP(Game play Programmer)。注意如果是独立游戏项目的话,借助第三方插件,非程序员也可以担任这个角色。
内容设计者(读作cehua):在大团队里基本上就是策划职位,和传统策划的区别是因为Unity团队里负责这个任务的人基本上是一定要摆弄场景、制作prefab的,没有点动手能力光会写文档可不行。
美术:工作包括从游戏概念图的设计到模型动画等美术资源的设计制作。具体细分可以参考游戏工业标准,Unity团队也不例外。
交互设计和实现:界面设计、界面实现编程,由于Unity下有很多不错的UI插件,所以这份包括设计师和程序员的工作我给合并到了一起。在Unity下就算是由设计师自己来做交互实现编程也不会很难。
主程序/架构设计师:适用于大项目或大团队的高端职业,他们的主要任务不是生产用户能玩到的具体游戏性,而是为其他团队成员搭建一个可以沟通协作的框架或工具集。对大型Unity项目来说,如果团队里没有这么一个经验丰富思路清晰的高手,很快项目就会被各种突飞猛进(因为Unity开发新功能原型实在太快了,很容易让人忽略结构问题)的feature生产搞的累赘不堪,然后在没有人指导项目重构的情况下,生产效率从每周一个feature下降到每个月一个feature,还伴随无数难以修复的bug。
服务器程序员:网游项目必备,其描述适用于游戏工业标准,这里不赘述。
版本管理员:适用于大项目,最好精通Git或plasticscm这类分布式版本控制系统,好处是方便做branching而且可以拆分项目为多个子项目,Unity项目大了以后运行效率是很差的,拆分项目也有利于控制不同分工的团队成员的权限。
音效设计师:可选,推荐还是外包音效+内部实现的做法,因为Unity并没有一个完全封装好的音效中间件,如果音效设计师要进行实际调试,就要完全掌握Unity组件系统,在国内来说这个要求还是比较高的。怕麻烦的话拿到外包的文件然后让程序员或策划去导入和测试就好了。
和工业标准的游戏团队配置也差不多,不过可以注意到很多角色都打破了传统程序、美术、策划铁三角的分界线,更提倡全面发展。因为Unity的场景和组件系统决定了它很难像Unreal一样把工作流程完美封包然后让程序美术策划各负责流水线上的一环。场景里的一个重要物体,可能不同分工的团队成员都要掌握其配置方法,否则就无法单独对其进行修改和测试,这应该是Unity团队的最大不同吧。
实际项目经验证明,不懂游戏引擎的美术或策划,在Unity项目里连测试都要拜托别人,非常影响效率。所以看到这个***的相关开发人员不妨多学点游戏编辑器知识。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
我是一个大吃货!

参考资料

 

随机推荐