
想成为游戏开发主程没那么简单?!
1
需要着重学习的知识
从开始进公司游戏开发啥都不懂就直接上项目了,一直是赶鸭子上架的感觉,所以到现在也没有太多时间去补图形学,shader这些东西。
其实有些知识很有用,但要花精力学,而且前期不好出效果,对开发进度也没太大促进,所以那些可以在业余的时候自己抽空慢慢补,比如图形学/物理/数学这些。
3D模型的一些相关知识,模型的格式、坐标位置、动画的导入播放、Mesh是啥、Renderer是啥、UV是啥、normalMap等等,这些都是很基础的,U3D官网文档应该就能都让你了解大概了,这些主要是为了方便和3D美术沟通,互相斯逼时有理有据。
了解U3D的基础知识,layer的用处啊、时间管理啊、资源加载啊、内存控制啊什么的,这些网上到处是博客文章介绍的,或者直接官方文档。
NGUI、UGUI这些,再加个DOTWEEN、LEANTWEEN之类的补间动画插件,就可以做很牛逼的UI效果了。
shader:把官网介绍的看了就行了,明白那几个参数,知道有时候为什么导进去模型会反面,会前后遮挡有问题。能改个双面、改个颜色啥的shader就行。高级的就直接去网上找吧。
状态机、寻路、行为树这些,用到了再去了解就行,很多现成框架。
架构设计:因为U3D比较灵活,有些经典架构也可以用,但是你要适应有自己的情况去做修改,现成的有些比较复杂比如StrangeIOC,反正你自己能看懂,能应付多次修改,策划从界面调试,各种资源替换的情况就行了,这玩意多写几个项目就有自己的想法了。
网络这块,懂个tcp/udp知识,会用c#写个socket客户端啥的就行了,github一堆。u3d的>
可以给你推荐一些资料:
1、Unity 3D脚本编程:使用C#语言开发跨平台游戏
2、Unity 游戏开发
3、Unity 入门精要(名字不敢全打对,自己查查吧)
4、Unity 极世界
5、xxx学院的unityA计划教程
其实untiy只是一款好用的游戏引擎,内容学下来再看还是不算多的,关键的是要自己动手去做去思考才能慢慢了解开发过程,基础课程讲的内容其实都是差不多的,都是在教使用原理跟C#语法,(NGUI、javascript、非Mecanim的动画知识完全可以不去听,unity5+及以下的也别看了,已经过时了)找个培训机构的课程,跟着练习下来,可以说对unity的基本使用已经入门了。
到了提升实战的阶段,就要接触一些高质量的学习资料才能最快的提升自己,因为这时候你已经有了一定的知识储备对untiy引擎的使用也已经了解了,需要听一些作者把多年开发经验的精髓总结到一个实战项目中或者代码架构清晰有效的的课程,这种课程不用多,跟着学一两部就非常必要有效了,好的甚至可以学两三遍,其实自己学懂掌握一套厉害的架构基本上可以应对一切开发需求了。这时候其他的教程也可以挑着快速的看看,听个大概就可以了,找里面优秀的地方仔细思考思考记下来就可以了,本人是游戏开发爱好者,新入门的爱好者可以加百赌网盘好友焉豆派失陪,有时间可以免费分享资料,自己利用业余时间学习在线下学了好多课程了,最后删了好多好多,因为真的深深的感觉到很多商业性质太强的教程就是浪费学习者宝贵的时间,讲课前没有想好思路,出了bug这里改改那里改改,最后不报错就行了,像这样低质量的,就不建议有基础的开发者再听了。
DoTween 首先导入插件,
其次 使用DoTween的脚本需要引用 命名空间,
创建执行放大效果的函数,
public void WinDoScale(){
Transform win = GameObjectFind("你想改变的物体")transform;
//设置更改窗口的大小
Vector3 max = new Vector3(1, 1, 1);
//设置变化时间
float time = 2f;
winDOScale(max, time);
}
解决方法:
已知两点距离与所用时间,可以得出速度值,然后以这个速度值往目标方向移动。thistransformTranslate(Vector3normalize(目标位置-自身位置) (Vector3Distance(自身位置, 目标位置)/(所用时间 Timedeltime)));
Unity里 入门简单的物体移动介绍:
首先我们来看看场景的搭建:建一个立方体,加一个点光源。我们要实现的就是让场景中的立方体延X 轴嗖嗖的移动那么我们在Project 新建一个js 脚本Creat->Javascript。
function Update () 2{ 3transformTranslate(Vector3(1,0,0)); 4 },复制代码然后将js 文件拖到Hierarchy 面板的立方体上实现绑定。运行一下,我们可以看到,立方体嗖的一声不见了。它一定是肚子饿了赶去吃饭了。好了,我们来修改代码让它慢一点。
function Update (){transformTranslate(Vector3(1,0,0)TimedeltaTime); 4 }复制代码,运行一下,这会它老实了,慢慢的移动了。这是怎么回事呢。接下来我们一步一步的分解代码。首先Update ()没什么好讲的了,一直在用,相信大家都明白怎么回事。
接下来是transform :场景中的每一个对象都有一个transform ,用来储存和控制物体的位置,旋转和缩放。Translate :是transform 的函数,用来移动物体。它接受一个三维向量(Vector3)参数来移动。其实它还有第二个参数,就是按照自身坐标轴移动还是按照世界坐标轴移动。这里暂且不表。
Vector3:表示3D 的向量和点。3个参数分别代表了向量x ,y ,z 。transformTranslate(Vector3(1,0,0));这句代码的意思就是,让被绑定的物体,也就是场景中的立方体,向x 轴的方向移动1个单位。
TimedeltaTime :是一个时间增量,我想应该是这一帧的时间。像flash 中的一秒30帧,每帧多少秒之类的。在这个程序中它的值是0016左右。原本移动一个单位,现在乘以0016,那肯定慢了。也就是说,它的作用其实就是减慢移动的速度。
以上就是关于游戏开发做到主程大概需要多少年全部的内容,包括:游戏开发做到主程大概需要多少年、unity ui界面中怎样点击界面上的button在文本框中出现数字、学unity3d需要什么基础等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)