当前位置:   article > 正文

真Unity3d_到底要怎么开始学_unity3d学习路线

unity3d学习路线

本来真心不想吐槽什么。

但是我看到下面的代码,看出很多不寻常的问题

一开始看还不错,字写的很工整,排列不错,但仔细分析一下,这就是一份典型的对的代码,但是写的很不好,就是网上说的代码的“臭味道”,咸鸭蛋味。

  1. /**
  2. * path:读取文件的路径
  3. * name:读取文件的名称
  4. */
  5. ArrayList LoadFile(string path,string name)
  6. {
  7. //使用流的形式读取
  8. StreamReader sr =null;
  9. try{
  10. sr = File.OpenText(path+"//"+ name);
  11. }catch(Exception e)
  12. {
  13. //路径与名称未找到文件则直接返回空
  14. return null;
  15. }
  16. string line;
  17. ArrayList arrlist = new ArrayList();
  18. while ((line = sr.ReadLine()) != null)
  19. {
  20. //一行一行的读取
  21. //将每一行的内容存入数组链表容器中
  22. arrlist.Add(line);
  23. }
  24. //关闭流
  25. sr.Close();
  26. //销毁流
  27. sr.Dispose();
  28. //将数组链表容器返回
  29. return arrlist;
  30. }

(用arraylist输出返回文件每行字串, 用path,name2个参数输入)



看完上面代码,我感觉就是刚学C# 1~2年的人写的,而且他的程序猿功底,完全不行,就是如果我是某易,某讯公司的组长给这个实习生做评语,应该也是中下,KPI应该也是不合格

但是,重点是这是一个unity3d界里面很出名的博主所写的代码,很多很多粉丝,估计不少粉丝直接COPY这份代码,该博主还是什么unity3d中文区召集人,还出过unity3d书的哦,各种头衔,也在一些游戏公司里面做相当一段长时间

当然你可以说他是初学,几年前写的,但我确实也不见这几年他的逻辑思维有什么实质提高

现在这位博主甚至很少POST,代码示例了,就算发表也是一般般而已

我最近在博客里面问他对mac系统和windows系统有什么看法(unity3d起源是用mac系统的一群美工想做),而他甚至对unity3d的起源和未来发展一无所知,也不会做半点设想,


但是看到这里,你应该懂了吧,,,,,,游戏做的好坏和程序猿 没关系,和你的专业没关系,也和你本身的综合水平没什么关系

我并不是说大牛就没有生病的时候,就一定能写百分百完美的代码

重要的是大牛一般比较负责任,能写逻辑完善,框架宏大的源码,这就是传统IT和游戏程序的区别了

这也是我相信的这样出产的程序才有比较好的未来

有时候优势或者同时是劣势,经验太多,反而限制了你的想象,游戏界反而是乱来的程序猿才能生存下来

但确确实实这个博主,这份代码只是很普通的代码而已


在现在这个移动互联网时代,以讹传讹会以更快的速度,更看不清的面貌呈现出来

经过信息大爆炸的年代,其实人还真没学聪明,更不用说以后要和AI战斗了

这是我认为人类必败的原因之一

反正做游戏,随大流就对了

反正国内游戏界就是这样,就是要做,不要学,你能混进一个游戏公司,然后随便写写博客,再赶上该工具流行的时候,你就能成功


看完上面,而你是不是还觉得你一开始要跟着这样的博主学习??

就是你看到的网上的一大堆资讯,有些还评价很高的,其实坦白说一文不值

我想随便一个几年C#经验的人也有更好的输入和输出参数,抽象,逻辑也会更好

也请不要看我的博文去学习,因为思维有些太跳,不过我说一通,若能引起你思考,帮助到你,你觉得好,并分享开来,也算是有做到一些贡献

生命不息,思考不止


z最后,我加一些备注吧,感觉好像在给小学生改作业,很久没看到那么烂的抽象思维了,但程序界就是到处都是,当然40%的游戏还有精品游戏,流出的游戏代码你看看就知道就都是还不错,失败是偶尔会失败,一不小心就滑铁卢,行军中的一个决策错的就可能全军覆没,所以失败是有偶然,但成功没有偶然

  1. /**
  2. * path:读取文件的路径
  3. * name:读取文件的名称
  4. */
  5. ArrayList LoadFile(string path,string name)
  6. {//**path,name,是不是还要extension? 方法参数可以重写一个LoadFile(path)即可,字串处理在C#里,有Path.GetFileName,可以做方法组合,而不需要都封装在这个方法里,这样的函数,真的写的很差,从命名就看出来了
  7. //使用流的形式读取
  8. StreamReader sr =null;
  9. try{//**请思考一下,只要你学过linux,是不是就是path + // + 这样2个斜杠就能跨平台?android可是linux来的哦,其他平台捏,本身c# system.io还做的不多,起码看上去有跨平台的想法,不是2017年,system.io是2005年就是现在这个样子的了,还是不错的说,只是我们这些程序猿用烂了,人家本来框架是好好的跨平台的
  10. sr = File.OpenText(path+"//"+ name); //**前面说了,前面方法调用前就甚至可以用path这个C#类做有效性处理,这里还try catch,还返回null,看上去很美,return null也很潇洒,但实际上这样硬封装的函数很难用,每次调用这个函数都是不安全的,还要外面再判断一次是不是null
  11. }catch(Exception e)
  12. {
  13. //路径与名称未找到文件则直接返回空
  14. return null;
  15. }
  16. string line;
  17. ArrayList arrlist = new ArrayList();
  18. while ((line = sr.ReadLine()) != null)
  19. {
  20. //一行一行的读取
  21. //将每一行的内容存入数组链表容器中
  22. arrlist.Add(line);//**请问arraylist是链表的意思么?
  23. }
  24. //关闭流
  25. sr.Close();
  26. //销毁流
  27. sr.Dispose();
  28. //将数组链表容器返回
  29. return arrlist;
  30. }

(当然以上问题都可以多写程序就可以得到改善,就好像多做菜,就不会忘了放盐,不会过火了)



*本来C# framework的跨平台(微软建议你在WINDOWS上开发,也限制你,可实际上现在不跨平台不行也),MONODEVEOP的开源,活生生的就给这个博主,写成了一份普通代码,虽然是很简单的一个逻辑,这个博主可能收入不错,也确实是真心分享,但不可否认这就是一份典型的有问题的代码,确实值得拿出来学习

最近我才在重新做一点电子电路的东西,记得那时候我们的作品是还不错能通电的,老师老说挑剔我们这个焊石不是太厚就太薄,现在做的手机的微电路全部机器人做根本不可能人工焊,我们工作中也用不到,但那种治学精神,确实值得传承,如果当年老师不是以一种挑剔的口气,我们或者更能接受,更有成就

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/744688
推荐阅读
相关标签
  

闽ICP备14008679号