Unity进阶修炼之路(一)——MonoBehaviour

其实我也不知道自己打算写一系列Unity相关的教学文章是否有意义。因为现在网上教学太多了,而我也曾在unity4x的时候,就尝试写过,但最后不了了之。现在Unity2017出世,我又萌发了写这样一系列文章的念头。到不是特意想写个教程,只是想乘这个机会把相关的知识整理下。

好吧,既然没有想写成教程,所以不会写的面面俱到,有些大家都清楚的,或是文档都有的东西就不会拿来写了,我会挑一些我觉得有必要拿来说的东西写一下

(一)MonoBehaviour

MonoBehaviour是unity脚本的基类,我们所编写的Unity游戏脚本程序,都是从该类继承的。算是游戏中脚本的“老祖宗”了吧(笑)

因此,该类中也提供了大量对脚本进行管理操作的代码,其中有些是我们比较常用的。升级到2017,又有了一些新的内容。

(1)Disable

凡是从MonoBehaviour继承下来的脚本都可以在编辑器上选择启用,或是不启用,而如果在继承的脚本代码中,没有实现Awake(),Start(),Update(),FixedUpdate(),LateUpdate(),OnGUI(),OnDisable(),OnEnabled()中的任意一个,那么编辑器就不会显示启用或是不启用的勾选框。

(2)变量

runInEditMode
这个变量标识我们的代码是否能在编辑器模式下运行,如果为true的话,即使我们不点编辑器上的Run按钮,也是可以执行该代码的,此时编辑器会通过Inspector来刷新执行。

useGUILayout
这个变量控制继承的胶板代码能否跳过GUI的layout阶段。如果这个变量为true,那么我们写在OnGUI函数中的代码都不会被执行。有时候我们喜欢用OnGUI来进行一些调试信息的输出,但是,OnGUI函数是很消耗系统资源的,使用该变量可以方便的控制调试信息的打开与关闭

(3)静态方法

print
新增的方法,和Debug.log一样将信息输出到Unity的控制台

Destory和DestoryImmediate
这两个函数都是销毁对象,不同的是DestoryImmediate是立刻销毁对象。后者只能在编辑模式下代码使用,因为前者不会在编辑器模式下被执行。而如果是游戏运行时代码,则应该使用Destory,Destory会在每一帧中被延迟执行的。需要注意,后者甚至可以删除asset资源!

GetComponentInChildren和GetComponentsInChildren
这两个函数都是在子节点上获取对应的组件,都是按照深度优先算法,前者是返回第一个找到的组件,后者是返回所有的组件。需要注意的是,这两个函数都是会从当前节点开始寻找,也就是把自己的当前节点也归位Children节点。

GetComponentInParent和GetComponentsInParent
和GetComponentInChildren相反,从父节点中查找组件,同样的是,会将自身作为第一个查找的起点,逐步向上查找

(4)成员

isActiveAndEnabled
这个变量当组件脚本是enable的时候为true,disable的时候为false

你可能感兴趣的:(Unity3D)