如何设置canvas的width和height的值,之前学siki老师的UGUI时他没设置,我也没在意,就按默认大小做的,图片match的时候都压扁了,今天学校捕鱼达人案例的时候,发现老师的canvas初始大小是1280*720,我的是913*695,设置的区域是灰色的,要怎么设置画布大小
同学你好,在Transform往下看有个组件叫CanvasScaler,然后把UIScaleMode设置为ScaleWithScreenSize,最后把值设置为1024*768就可以了。
鉴于老师的回答:
1、在UIScaleMode设置为ScaleWithScreenSize的情况下
2、1280*720我两个都设置了,canvas的rect transform 就是显示1280*974
3、下面是Screen Match Mode,设置为Match Width Or Height:根据参考分辨率的高或宽,来缩放UI元素。
4、再下面是
(1)Match: Width缩放参考Width。 此时拉伸Reference Resolution Y是无效的。
(2)Reference Pixels Per Unity 100 Unity里的1单位大小代表100像素
鉴于解释,这两个属性都是用来匹配我屏幕的分辨率的,所以无法准确设置为1280*720,因为这不是我屏幕的比例
5、对于老师的第二条回答,我不是很明白,Game窗口指的是file=>build settings=>player settings=>resolution中的默认screen长宽的话,那我一开始就设置好了,如果不是,那game窗口指的是什么?
6、canvas在world space模式下是可以随意在rect transform中设置长宽的,但我需要在Screen Space - Camera模式下设置
7、老师说这些在基础案例中有,我不清楚哪个视频中有讲canvas大小的设置,如果真有还望指出,以下为我看过的UGUI案例,都没有讲过:
(1)第一阶段:Unity初级案例 - 贪吃蛇(Unity2017.2.0)(其中老师的默认画布就是1280*720)
(2)第二阶段:UGUI - Unity游戏UI学习教程4点6版本(其中老师说canvas是rect transform,所以大小不可修改,关于canvas的修改现阶段不用关注,怕影响对UGUI的学习)
(3)第二阶段:UGUI - Unity 5.1强大的UI(其中第一个案例中,老师的canvas为767*669;第二个案例中为1397*949,后面image匹配canvas时,image明显被挤压了,两个案例都未涉及canvas)
(4)第二阶段:Unity中级案例-铺鱼达人(其中老师的默认画布就是1280*720)
以上为我学过的UGUI案例,其中都没有涉及到canvas的大小设置,不知道我漏了哪里,望老师指出,并将教学视频告知于我,如果没漏,麻烦老师用unity演示一遍设置,并截图给我,我百度了很多都没有找到解决方案,siki学院的提问系统的提问成本也挺高的,请老师回答的详细点,一次性解决问题,不要让我猜了,感谢
首先,感谢老师的回复,我已经解决这个问题了
其次,很不好意思,我真的没学过老师出的这两个案例教学,因为我按A计划学习路线学习的,目前刚学到第二阶段的捕鱼达人(第16课),而老师的Unity初级案例 - 坦克大战(Unity2017.1)课程则排在了第二阶段的倒数第二课(第24课),至于消消乐的课程则没有出现在学习路线的文档中。
siki学院的unity教学案例很多,我不想把时间花在挑选课程上,我真是零基础,既然A计划有完整的学习路线,索性就按路线上的学了。不过经历了这次提问,我发现有很多新出的课程是没有加到学习路线中去的,不管是免费的课程还是A计划的内部课程(A计划的内部课程总计37课,其中16课在学习路线中出现,21课还未入册)。
不过这些都是废话,问题不在siki学院,显然是我学习一个知识后没有及时拓展,而且通往学会游戏开发的路线不止一条。
在此提供给后来者一点学习的感悟,unity游戏开发看似是一条长达”四个阶段“、3000多个课时的遥遥无期的学习过程,但其实可以拆分为各种小的步骤,不是说按照A计划的学习路线的步骤,总结来应分为两步:
1、游戏开发的流程(游戏从一无所有到玩家入手)
2、具体的开发技巧
第二个步骤又分为两大块:
1、2D游戏开发
2、3D游戏开发
到了第二个步骤就是学习具体的开发技巧了,拿2D游戏来说,要学习各种2D游戏的GUI插件等等,到了这个阶段算是真正的学习开始了;
如何轻松的学会呢?
在此我参照斯科特*杨的书《如何高效学习》提出的整体性学习模型来说:
学习一个技能的过程,无外乎:获取信息,理解信息,拓展信息,纠错,应用;
如果你学习一个技能不是为了应用(实现目标),那这个过程将会是一个漫长且痛苦的过程,这里说的应用或者说目标,并不是指找个高薪的游戏开发工作之类的外在目标,而是我为什么要学习UGUI,因为我有个想法,我要做一个怎样的游戏;后者是一个内求目标,内丘目标不靠外部刺激给自己奖励,每靠学到的知识完成一点自己要做的游戏就会自发的产生愉悦感,这样的学习会很轻松愉快,而相较于前者,你需要在学会也不一定找得到工作的恐惧支配下学习,两种感觉截然相反。(内求目标和外在目标是《心流》中提出的概念,有兴趣的人可以自行学习)
上面说,学习一个技能必先有一个内求目标,你会问,不是先从获取信息开始吗?那先得了解整体性学习的内在逻辑,其实是迭代,以学习UGUI为例:
首先我想做一个2D游戏,我获取了Unity初级案例 - 坦克大战(Unity2017.1)这门课程,我觉得不错准备从这个案例入手,学习理解了一番后,我是直接开始下一个课程愤怒的小鸟吗?这就是我走过的坑了,当然不是,别忘了,你的目标是自己完成一个2D小游戏,可不是我又完成了一个课时的学习我真牛的外在目标。(很多游戏开发者都会走进这个红舞鞋陷阱,这里说的是作品,如王者荣耀,吃鸡,崩坏等等靠外部刺激过活的游戏,当游戏中的刺激逐渐被玩家适应,比如王者荣耀几分钟一次刺激,吃鸡几秒钟一次刺激,那下一个游戏呢,几毫秒吗?那游戏岂不是往神经刺激的生物学上去了,那跟精神鸦片有什么区别?别忘了,游戏从远古流传至今,可不是靠短期刺激。罗胖子说了一句大实话:现代社会的创新,就是用新办法解决老问题)
此时你应该用自己手上现有的这一点知识,着手开发自己的游戏,在开发过程中你会发现,明明记住的东西忘记了,明明理解的东西模糊了,于是你再回到教学视频中,着重看自己忘记了和模糊了的地方,再回到自己的游戏中,循环往复,以至于这个视频中的知识已经不足以让你的游戏有更多的用处了,然后暂时抛弃这个视频案例,然后呢?愤怒的小鸟?当然不是!
接下来你要进行拓展,不是因为你好学,而是因为你的游戏中还有很多功能没有实现,于是你做一个横向的拓展,在其他2D游戏中的案例中寻找自己需要的知识,然后重复上个循环,以至于完成了自己的游戏,至此,你就算完成UGUI的学习了。
但完成了一个2D游戏并不是这次学习的终点,因为你只做了横向的拓展,那纵向的呢?2D游戏跟3D游戏有什么共通之处?他们的实现逻辑本质上是一样的,各种组件运用也是类似的,然后你打开一个3D游戏的学习案例,比如黑暗之光,在学习的过程中不断跟2D游戏的开发做对比,你会发现有些东西跟物理规律一样,在这里和那里都是一样的。
由此我们发现,学习的路线因人而异,A计划的学习路线就相当于系统的默认主题,要不要换一个主题是由你说了算的,你当前不需要我的电脑,那就删除他的快捷方式就好,当你需要的时候,他就在那里,还是会被你找到,关键在于你要知道自己想做什么。A计划的教学视频不是用来仰视的,它是任你揉搓的,只为让你成就你自己。
塔勒布说:读书人不能像个追星族一样整天仰望世界,俯视视角才是真的钻研学问
PS:以此谨记这次UGUI反映出的问题,canvas的设置可不是个老师没有讲过,就代表其他老师没有讲的