学习了一段时间,发现要想学会必须按照知识导图说的做。但是只是培养了看代码的能力,还没手动敲过,需要练习敲击代码的能力,这样才能更利于后期学习。学习中搜索出来的知识有的是C语言的,有的是C++语言的,有的是C#语言的,有的是Java语言的,据我之前的了解c语言具有相似性,不同的语言之间有些知识是相通的,但是有的虽然相通但是实际上的具体到关键字或者字符上就不同,涉猎较浅,现在目前水平较低,需要按照知识导图持续提醒自己的能力,这样才能让自己养成一个高水平的程序员。
目前c#知识导图的知识点已经学习了一半了,后半段学完之后就要按照unity上的学习项目自己手动上手操作了,之前买了本书是unity无代码部门的书籍,这样做好的前期铺垫后期进入unity的时候应该会更加容易入手,后期主要培养c#代码能力,需要仔细练好代码能力。目前水平连入门都不算,顶多是知道一点,了解一点。等知识导图的知识点看完之后就需要实际上手unity实战项目了,unity实战项目,这个unity hub软件上都是,一个一个慢慢来,然后再按照知识导图山高级unity工程师的部分学会高级的知识点。
unity基本概念:
1.空物体也有transform这个组件来标记其位置。
2. unity中渲染也是通过mesh来进行的。(基本的图形学)。只有网格渲染器才能指定材质。添加新的material的时候是会把default-material给顶掉的。
3.灯光,unity中是会有一个叫做默认光源的玩意,就是directional light。这是一个有方向的光源
4. 对于摄像机这个的问题,我认为这个就是决定整个场景的输出界面,包括声音也是从这里出来的(audio listener)。也就是说可以通过这个玩意简易的调整声音的来源等。
5. 关于transform。 transform是unity中很重要的一个组件,父子关系,缩放等一切都是依靠于transform组件形成的。通过父子关系和prefab可以让人很快在unity中形成复用的关系。而且可以通过旋转父物体来使用对子物体的旋转。举例的话可以用门框旋转的例子。
6. 标签和层也是这章讲解的重要内容之一。通过层级的规定可以很好的避免一些物体之间发生碰撞等问题。
脚本访问的小问题:
1.脚本中的this直接指代的就是脚本本身。
2. 脚本可以通过getComponent<泛型>来获取挂载在这个标本的组件,比如说获取collider。
3. transform的使用过于普遍,所以可以直接通过transform来调用Transform组件。
4. 物体中组件可以代表物体本身。也就是getComponent 获得组件可以在getComponent一次。
5. 有多个同名组件可以用getComponents来进行获取。同名时有getComponent获取的对象就不可知了。
关于父子关系(也是transform下面的找子物体的玩意)
6. GameObject.find 是一个很低效的方案。因为它会将所有的物体都遍历一遍。
7. FindGameObjectWithTag 这个标签也是
8 .物体的层级关系与文件的层级关系基本是一致的,没问题的。
9. 可以通过拖拽改变公开变量的方式引用物体和组件。