Ilingis 发表于 2021-5-3 10:15

Unity3d客户端开发,要深入学习,更需要先从哪方面入手?

Unity3d客户端开发,要深入学习,更需要先从哪方面入手?

APSchmidt 发表于 2021-5-3 10:21

先贴一张简单的能力模型。(注:本模型仅供参考,实际上每个公司的能力模型都是自定的,没有统一标准)
题主说的这些,首先1-3条在T4(不包括T4)级别前,不做强制要求。即使我面试也不会考核他们这方面的知识。但如果面试表现较好,我会顺带问一问,答上来加分,答不上来不扣分。T4以后,视岗位而定。
第4条:提高程序开发能力,设计模式、算法等。从T3开始往上,都很重要,而且越往上越重要。
第5条:学习网络编程,转服务器开发,并学习其他语言。网络编程属于程序的基本功,无论客户端还是服务器都应该要掌握。和第四条一样,从T3开始往上,都很重要,但如果不是专家岗位,不需要做到精通。至于 转服务器开发,并不怎么认同,除非你是要转岗。全栈工程师,听着很牛逼,但是实际上你的编程年龄较短的情况下,只会给人什么都会,什么都不精的印象。至于学习其他语言,如果你到了T4级别还在纠结语言类型,说明你这个T4是个水货。
第6条:学习3D建模、绘画、UI设计、游戏策划,提高独立开发能力。T3往后可以逐渐学习,但切不可本末倒置。程序员最重要的还是代码和解决问题的能力,你所掌握的这些周边知识都是用来辅助你做框架/代码设计。
回答完题主的问题之后,再来说说我的看法。
我对T4级别的人员开始要求责任。也就是说,这个功能属于你,那么这个功能周边附属的小东西、边界功能、都应该主动承担起来。不划水、不推脱、不甩锅、能在协作中承担主导,协调的作用。
在能力上需要达到负责某一个独立模块的设计,实现。比如,能够完成战斗编辑器,战斗表现。能够完成网络协议收发,框架设计,能够知道不同设计的优劣和优化方向。
对T5级别的开始要求担当,责任只是“份内”和一点点边界的事,担当则是开始对项目负责。能对不合理的策划需求,美术资源等等进行审核,协助更低级别的同事进行设计和指导。开始考虑技术归档和传播,减少项目因为人员流动而造成的不稳定。
在能力上就需要能够独当一面了。主动发现项目问题并给出解决方案。领域内的任何人员变动能够快速填坑,担任救火队员。
看题主的描述,目前应该正处在T2级别。这个时候的你,不要想那么多花里胡哨的东西,开始大范围接触项目知识,然后挑一个你感兴趣的部分,深钻它的实现和背后的原理。比如,UGUI用了这么久,你能否说出UGUI的绘制顺序?能否理解UGUI的“动静分离”的目的和重要性以及为什么?能否用UML图自己把UGUI的类关系画出来?能够把你们现有的UI框架吃透,并且画出类的交互关系,能否找出这套UI框架的不足和可优化之处?
不能就还是T2,如果能,恭喜你迈入T3了。
一个针对UI框架的回答:
使用Unity开发游戏,有流行的框架嘛?渲染知识合集:
放牛的星星:(完结)Unity图形渲染Part1——基础渲染系列教程20篇(默认渲染管线)Unity资源系统合集:
放牛的星星:Unity手游实战:从0开始SLG——资源管理系统-基础篇(一)浅谈Asset(Unity资产映射)Unity实战开发专栏:
Unity手游开发三两事

BlaXuan 发表于 2021-5-3 10:23

@梁伟国 说的很好,但我觉得2,3条也不是没必要的,特别是做3D游戏。我现在就在专门研究Cg和图形学的东西。自己在工作之余还折腾出了几个插件 ,放在Unity商店里卖着玩,每个月还能搞个上百美刀。
Asset Store

从题主的问题中可以看出题主的一点迷茫,就像一年前的我,我也就比你多一年Unity经验。从一个打工者的角度来跟你探讨一下,也跟大家都探讨一下,不光探讨Unity技术,也探讨一下以后的方向。这里说一下我自己对这个行业的思考。

现在Unity流行了,只要会写几行C#代码的人都能进个游戏公司写点逻辑,但真正精通的人不多。我当初C#都没学过,只会Java,都进了个小游戏公司,花了个把月的时间就参与开发了,当然也就是搞点优化,改改BUG,写点逻辑之类。现在越来越多的人用Unity了,我甚至可以预料,未来的几年内Unity会更加流行,说不定会到处是培训机构。到时候会有一大波人涌入这个行业,就像现在的Java开发SSH三大框架之类的。

我们面临的问题:Unity入门门槛低,注定以后的Unity从业者会越来越多,竞争会越来越激烈。

我刚毕业的时候待过一个比较大的公司,做银行的信贷系统。那时刚开始学java,自己工作之余也看一下书充电,项目经理却跟我说,技术不重要,重要的是实现。后来我才知道,我当时是做一个工厂流水线工人,码农一个,技术确实不重要。公司巴不得我什么都不懂,只会if else,解决逻辑的问题,发一点微薄的薪水就行了。

于是我明白了,不想做产线工人,首先要脱离当前层次。要做到公司少了你不行!这个时候你必须掌握一些门槛高的技术,你才能拔尖。

有些技术是靠经验堆积的,比如整个框架的设计,设计模式的运用。我倒觉得这个能力只要你平时留心,掌握它们只是个时间的问题。
而有些技术,是要去实打实钻研的,不看透几本英文原版书,不逛遍几个论坛,你永远不能get it。越是难的东西,越能拉开你跟别人的距离。

比如学Cg,很多资料都是英文的,像Cg的官方教程The Cg Tutorial,还有这个Cg Programming/Unity,不看这些书,根本入不了门吧。 还有最著名的《Real-Time Rendering》,都是英文的,还需要很多数学知识。像线性代数里的矩阵变换,这些东西虽然大学都有学过,但在这里才真正用上。在开发的过程中遇到问题了,要上网查吧。我跟你打赌,你要是碰到个C#的问题,去stackoverflow分分钟就能查出来(甚至去百度都能查出来)。但要是你碰到个shader上的问题,可就不好查了。Unity里面很多东西都是没资料查的,你只能去论坛里跟人交流,去看源码,去看UnityCG.cginc,去看AutoLight.cginc。总而言之,就是不好弄啊。等你深入的去研究这些的时候,慢慢的你就发现,好像公司里就你在弄这个,别人都不懂。这个时候你就牛逼了啊。

以后手机的性能越来越好,高品质的3D手游会越来越多,虽然可能现在国内大部分公司做的手游是2D的,但以后一定会有更多的3D手游涌现。我相信手游拼3D特效的时代马上就要到来了! 所以我感觉学图形学的东西还是比较有前途的。

当然这也跟你自己的爱好有关吧。反正我是觉得,如果以后要跳槽,面试的时候,你拿着一个游戏说,这个游戏框架是你搭的,可能面试的人很难确定,谁知道你这框架搭得好不好。但如果你说这个游戏的所有3D特效和Shader都是你写的,这就一目了然了。

七彩极 发表于 2021-5-3 10:28

谢邀。

前面三条其实没太大必要。现在行业对自研引擎的技术需求不大。而那些数学知识,在真正需要用到时,临阵抱佛脚补补功课就能搞定。

第4条是肯定要深入的,无论是做为客户端还是服务端程序。
第5条网络编程也是必须的,联网是无可争议的趋势。
第6条就看你有没有美术方面的天赋以及想不想走独立开发的路线了。

其实你现在才工作一年多的时间,求知若渴阶段,所谓艺多不压身,任何领域的技术学了都有好处。所以,在不影响本职工作的前提下,你大可遵循自己内心的喜好去学习。不要夹杂太多的功利心。要比以往更加勤奋,把别人泡论坛刷微博的时间用来学习,选择性忽视那些靠投机获得升职涨工资的人。再过一两年,你会站得比其他人更高。

franciscochonge 发表于 2021-5-3 10:38

任何技术做的尽头都可以成为专家,Unity3D入门容易,然而要向成为真正的高手,你要懂网络、懂优化、懂Shader、懂动画甚至是美术相关的概念,如果想做的深入些,请尽可能多的了解计算机图形学,请掌握C++,请学好数学!

IT圈老男孩1 发表于 2021-5-3 10:43

个人认为前三条是比较重要的
理解机制,明白原理在一定程度上是掌握了一种小众技能,任何行业,发展到最后,核心都是小众的,但是价值也在这一块,只是研究小众技能不是没有门槛的,需要你有更多的基础技能,先把基础的技能先弄好了在说,养家糊口的东西。
上帝让一个东西灭亡,必先让其疯狂。如果想在这一行走的长远,掌握底层核心的技能才是关键啊。很多年前unity没火起来,unreal cryengine还是很高大上的,谁能说能预料到unity的今天呢,同理,很难预测flash的夕阳西下,未雨绸缪吧。
同意 @kUANG tOBY说的,核心竞争力。
保持一个学习的心总是好的,如果不想一直做没有技术含量的工作,就抓紧学习吧。扔骰子学习也未尝不是个办法,因为探讨这些东西的时间,不如花在学习上。

rustum 发表于 2021-5-3 10:53

你还漏下了原生android与ios 接sdk的时候要用到的

kirin77 发表于 2021-5-3 10:54

这样,拿一个骰子,刚好六个。
1.提高直觉能力,面朝上就选哪个。
2.提高思维空间能力,选面朝下那个,但是要根据面朝上的点数来猜。
3.提高运算能力,多扔几次,求平均数,做概率分析。
4.转行,用骰子帮人算命,或者去澳门赌场。

最后,请思考一下,你的兴趣,你的梦想是什么?

koxp 发表于 2021-7-5 21:43

感觉蒙着头学多点比什么都好
页: [1]
查看完整版本: Unity3d客户端开发,要深入学习,更需要先从哪方面入手?