Unity3D普通类和继承自MonoBehaviour类的区别
来源:互联网 发布:手机作曲编曲软件 编辑:程序博客网 时间:2024/04/29 03:04
Unity3D普通类和继承自MonoBehaviour类的区别
Unity3D普通类和继承自MonoBehaviour类的区别。如果创建新的类时,使用的是在unity editor的project视图中右键,create javascript or c#方式,那么创建的类都是默认继承自MonoBehaviour, 生成后可以查看类文件,会发现c#类继承自MonoBehaviour, 虽然javascript的类前面没有这个继承自MonoBehaviour的关键字样,但是默认也是从它继承而来,这是Unity的规定。
这样的类和普通没有继承自MonoBehaviour的类,有什么区别呢?继承自MonoBehaviour的类,不需要自己创建它的实例,也不能自己创建(如 new 类名),编译的时候可以编译过去,但是执行的时候会给你一个错误在unity editor的console窗口,并且你new 后得到的东西为空;其实这是Unity的一个bug,既然继承自MonoBehaviour的类不能new出来,为什么在编译的时候就给个错误,而是在运行时,如果没有看到unity editor的console窗口的内容真的很难知道为什么new的东西为空。
为什么不需要自己创建呢?因为所有从MonoBehaviour继承过来的类,Unity都会自动创建实例,并且调用被重载的方法,如我们经常用到的Awake, Start, Update等。而普通类,就可以用new来创建实例了。
Unity3D普通类和继承自MonoBehaviour类的区别。如果创建新的类时,使用的是在unity editor的project视图中右键,create javascript or c#方式,那么创建的类都是默认继承自MonoBehaviour, 生成后可以查看类文件,会发现c#类继承自MonoBehaviour, 虽然javascript的类前面没有这个继承自MonoBehaviour的关键字样,但是默认也是从它继承而来,这是Unity的规定。
这样的类和普通没有继承自MonoBehaviour的类,有什么区别呢?继承自MonoBehaviour的类,不需要自己创建它的实例,也不能自己创建(如 new 类名),编译的时候可以编译过去,但是执行的时候会给你一个错误在unity editor的console窗口,并且你new 后得到的东西为空;其实这是Unity的一个bug,既然继承自MonoBehaviour的类不能new出来,为什么在编译的时候就给个错误,而是在运行时,如果没有看到unity editor的console窗口的内容真的很难知道为什么new的东西为空。
为什么不需要自己创建呢?因为所有从MonoBehaviour继承过来的类,Unity都会自动创建实例,并且调用被重载的方法,如我们经常用到的Awake, Start, Update等。而普通类,就可以用new来创建实例了。
0 0
- unity3d 普通类和继承自MonoBehaviour类的区别
- Unity3D普通类和继承自MonoBehaviour类的区别
- Unity3D普通类和继承自MonoBehaviour类的区别
- 继承MonoBehaviour类的优缺点和相关报错
- 继承MonoBehaviour类的优缺点和相关报错
- Unity3d的脚本类为什么要尽量避免继承MonoBehaviour类
- Unity3D --MonoBehaviour类Invoke,Coroutine
- Unity3d MonoBehaviour类Invoke, Coroutine
- Unity3D中MonoBehaviour类整理
- Unity3D中MonoBehaviour类整理
- Unity3D中Monobehaviour中自带的重要函数
- 继承MonoBehaviour的类是不可以实例化
- [Unity&接口]子类即继承接口类也继承MonoBehaviour的快速操作和重构实现
- php 抽像类abstract和普通继承类区别
- MonoBehaviour 类的问题
- super继承和普通父类继承
- MonoBehaviour继承类及其重要方法
- 【Unity3D自学记录】MonoBehaviour的事件和具体功能总结
- uva 12589 learning vector
- 古典黑客技术之HOOK API
- redis配置主从备份以及主备切换方案配置
- Codeforces 156C (DP)
- Leetcode #162 Find Peak Element
- Unity3D普通类和继承自MonoBehaviour类的区别
- shell脚本是否作为单独的一个进程执行?
- XML解析技术之VTD-XML 简介及代码实例
- Mysql 的左连接与右连接区别
- Unity3D占用内存太大的解决方法
- 我的导航
- Sbt仓库设置
- 一元线性回归(原理)
- ps笔记