找回密码
 立即注册
查看: 998|回复: 20

想做unity程序,需要什么数学基础?

[复制链接]
发表于 2021-4-12 09:58 | 显示全部楼层 |阅读模式
先说说目前情况:
发表于 2021-4-12 10:04 | 显示全部楼层
1、书籍推荐

首先,和另一位答主一样,我也推荐这本书。
如果这本书顺利读过前50%,题主就可以有充分的自信,在3D数学方面已经有一定基础了。
关键问题是:如果读的不顺利怎么办呢?其实这也很正常,每个人数学水平不太一样,很多人会因为基础不够,而看不懂、搞不明白书上的知识点。
所以先看上面这本书,如果有不懂的地方,再去找相关的书籍、视频看看。主要是线性代数入门的一部分。
如果确定需要补习学习线性代数,根据知乎某答主的建议,可以看这本书《线性代数应该这样学》:
2、更重要的,是建立自己的知识体系

很多开发能力很强的高手,不见得数学功底就很好,他们有不懂的地方也要现学现用。但是关键是他们已经建立了较完整的知识体系,不论遇到什么问题都可以快速定位到问题所属的区域,在此基础上搜索、查书就非常快了。
游戏开发中真正的纯数学用的其实并不算多,关键是各种数学概念、物理概念的综合、系统性运用。所以不需要学的多深,关键是把基础学透,建立起自己的知识体系来
中国的中学、大学在基础教育这块做的还是很不错,所以有些答主建议学习高中数学、高中物理,我也很赞同。高中的数学物理已经包含了足够多向量的使用、三角函数、立体几何等内容。如果把这些基础搞明白,再去看前面推荐的书就有一种清晰明了的感觉。
重点建议:高中物理的力学部分,有很多受力分析、力的分解方面的练习,是对“向量”的活学活用,通过这些知识复习向量,效果很棒。
高中数学的三角函数是个重点,有必要复习;另外高中数学有两种版本的立体几何,其中用向量理解几何的那个版本,非常适于作为3D数学的基础学习。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-4-12 10:05 | 显示全部楼层
高中数学
发表于 2021-4-12 10:10 | 显示全部楼层
通常直接买本这玩意就行了,特殊需求另说。
(其实对于大多数业务逻辑程序员来说,不需要数学。你能想到的几乎所有骚操作都有现成的轮子,直接拿过来用就完事了)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-4-12 10:11 | 显示全部楼层
数学基础的话初中水平就够了,在开发的时候,会有现成的方法,让我们去进行相应的数学计算,相当于直接调用API,我们自己是不需要进行数学运算的,只需要知道哪个方法有什么作用就可以了。
当然如果对数学有深入的学习和认识,并对这些数学公式比较了解的话,也是好的,不过不了解这些也不会影响到正常的游戏开发的。
如果数学了解的深入,你在使用某个api的时候,知道这个api内部是怎么运算的,对数学没有那么深入了解,也不影响,因为是直接使用的api。
关于不同api方法的效率,了解数学底层可能可以大致知道,不了解,自己遇到性能或者效率瓶颈,对不同的方法进行测试,进行改变即可,其实也影响不大。
简单来说,数学学的深,有帮助,数学不是很好,影响不大,不影响你在游戏行业的发展。
 楼主| 发表于 2021-4-12 10:19 | 显示全部楼层
楼主不要没有自信,中专生做程序员是完全有可能的。早些年我们跟过的一个老板为了节省成本,找的都是那些中专文凭的程序员,照样有很出色的,现在他们有的进了大厂(自考混个文凭)有的自己都当了老板。
第一,做unity程序员,最重要的是熟悉c#和unity引擎,让后在ugui ngui fgui 里学一门,推荐ugui 会了这个基本上做简单的搬砖工作就足够。因为成熟的团队自然有技术大牛,框架的东西轮不到你上手。


想要进阶,首先需要你自学数据结构,网络协议,数学方面没太高的要求 除非你想往图形化方向发展(需要学线性代数)
写代码对数学的要求本质上是数理逻辑,而不是高阶数学工具,除非你要自己研究ai算法


最后,不要因为自己学历低觉得是障碍(Unity程序员我见过太多起点低的了)
不要因为自己脑子笨觉得是障碍(Untiy程序我见过太多笨笨的妹子了)
唯一没有成功的理由是,不够坚持,三天打鱼两天晒网,总想搞点大新闻,最终一事无成,就像我一样
楼主加油,祝好运
发表于 2021-4-12 10:24 | 显示全部楼层
必须劝退。
之前有个亲戚的儿子,大专毕业,想转行做unity开发,到我这来免费学习。说实话,学习能力是不错的,人很聪明,就是不努力。白天就在办公室睡觉,叫都叫不醒,鼾声如雷,我们办公都属于比较安静的,他的咕噜声更显得格外突出。一看就是玩游戏通宵达旦,找来谈话,问他晚上干嘛了,说没干嘛,问他还想学吗,答想学。两天后,鼾声照旧。真是被坑惨了。
所以我觉得题主一定要搞清楚为什么要做游戏,大部分人对开发根本没有兴趣,不明白玩游戏和做游戏完全是两码事。一个是被动就能全身心投入其中不能自拔,一个是主动投入精力还要能坚持不懈。没有兴趣的话,做游戏就是一件及其枯燥的事情,和进厂打工没啥区别。
然后回答一下关于数学的问题,我觉得现在的游戏引擎已经非常完善了,需要用到很复杂的数学知识的场景比较少见,大多时候引擎都有api或相应工具链供你使用。所以初期我觉得编程基础可能会更实用一些。
我大学本科是物理学,学了许多数学方法,但是进入到游戏行业并没有用到多少。就目前来看用得最多的还是高中数学,坐标系转换,三角函数,然后还有高中物理,动力学和运动学,大学数学里主要就线性代数。
其实像我这种工作在开发一线的游戏程序员,需要用到数学的地方不到5%,大多数时候还是写逻辑,组织代码,设计架构,和具体业务联系很紧密,但是离底层原理其实比较远。或许将来我准备弄个引擎玩玩,或者专注某个方向做点研究性的东西,那时可能会把大学里学到的数学知识再捡起来吧。
不要相信那些大佬的建议,推荐图形学之类的书籍,根本就不切实际,不信的话你看完那些书让大佬给你找一个开发的工作试试看。你要做的就是一个一线开发人员,就应该是由浅入深,先培养兴趣,打好扎实的编程基础比什么都好。
发表于 2021-4-12 10:33 | 显示全部楼层
屋裡碰轉物理碰撞需要知道速度加速度,切到每一帧移动多少是微分;
引力,声音和光的衰减为指数变化,直接用snapshot混音需要知道频谱搭配,EQ和压缩器怎么运作,都是数学;
访问数据库要资料,只要简单的写改删查不需要算法优化,但数据要以序列化的方式存到本地,不想被轻易破解需要加解密的算法;
流体模拟的优化需要高深算法;
写shader和post processing的话基本上是对摄影机拍摄画面的线性代数计算;
做旋转时有线速度和角速度之分,api会秀给你四元数的抽象化公式,这个具体怎么算我到目前为止还没有遇见过能够给出明确解释的培训师;
以上,看看api文档会用就好,不是数学系或计算机图形学的专业人员不会深入进去的。
发表于 2021-4-12 10:38 | 显示全部楼层
三角函数,向量运算,四元数,不论什么引擎应该都需要,你准备好了么?
发表于 2021-4-12 10:48 | 显示全部楼层
如果只是想进游戏行业,别自学!报个培训班!
游戏行业的入门门槛很低,得益于游戏界大佬们打造的各种各样的引擎,各种各样的库。
你现阶段就是要熟练的使用工具,知道有哪些库可以帮助你实现你想要做的游戏,然后做些完整的小游戏案例,就可以去投简历了,另外特别建议从2D游戏开始!等有了两年经验再去看3D会轻松很多。
总结: 报培训班入行, 再自学!
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 23:42 , Processed in 0.071090 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表