Unity3d - 初学篇 Event Functions 的 继承 机制
我们知道Start() Update() 等之类的 事件函数 在Unity 主线程中是依次调用的。至于调用的顺序可以查手册。
由此继承机制也会发生一些改变。
测试一:
public class MyTest2 : MonoBehaviour
{ void Start () {
//EventDelegate.Add(tween.onFinished, Test, true);
Debug.Log(" MyTest2 Start ");
} void Update()
{
Debug.Log(" MyTest2 Update ");
}
}
public class MyTest3 : MyTest2
{ // Use this for initialization
void Start()
{
Debug.Log(" MyTest3 Start ");
} void Update()
{
Debug.Log(" MyTest3 Update ");
}
}
运行:

测试二:
那么 如果把MyTest3 的Start Update 注释掉会怎样了。
public class MyTest2 : MonoBehaviour
{ void Start () {
//EventDelegate.Add(tween.onFinished, Test, true);
Debug.Log(" MyTest2 Start ");
} void Update()
{
Debug.Log(" MyTest2 Update ");
}
} public class MyTest3 : MyTest2
{ // Use this for initialization
//void Start()
//{
// Debug.Log(" MyTest3 Start ");
//} //void Update()
//{
// Debug.Log(" MyTest3 Update ");
//}
}
运行:

熟悉c# 的 都知道,不加有修饰符 默认是 private 的。看来 unity 对这类 函数 应该是 特殊 处理了。
测试三:
既然这样 我们再看看 别的继承特性。
public class MyTest2 : MonoBehaviour
{
//virtual or abstract members cannot be private
public virtual void Start () {
//EventDelegate.Add(tween.onFinished, Test, true);
Debug.Log(" MyTest2 Start ");
} void Update()
{
Debug.Log(" MyTest2 Update ");
}
}
public class MyTest3 : MyTest2
{ // Use this for initialization
public override void Start()
{
Debug.Log(" MyTest3 Start ");
} void Update()
{
Debug.Log(" MyTest3 Update ");
}
}

结果看来和测试一是一样的。也就是说先会找最终实例化的有没有,然后再找父类有没有。
Unity3d - 初学篇 Event Functions 的 继承 机制的更多相关文章
- JavaScript 原型与继承机制详解
引言 初识 JavaScript 对象的时候,我以为 JS 是没有继承这种说法的,虽说 JS 是一门面向对象语言,可是面向对象的一些特性在 JS 中并不存在(比如多态,不过严格来说也没有继承).这就困 ...
- 带你理解【JavaScript】中的继承机制
前文 总所周知,继承是所有OO语言中都拥有的一个共性.在JavaScript中,它的继承机制与其他OO语言有着很大的不同,尽管ES6为我们提供了像面向对象继承一样的语法糖,但是其底层依然是构造函数,所 ...
- Javascript 构造函数原型继承机制
我们先聊聊Js的历史,1994年Netscape公司发布了Navigator浏览器0.9班.这是历史上第一个比较成熟的网络浏览器.轰动一时.但是,这个版本的浏览器只能用来浏览,不具备交互功能,最主要的 ...
- javascript继承机制的设计思想(ryf)
我一直很难理解Javascript语言的继承机制. 它没有"子类"和"父类"的概念,也没有"类"(class)和"实例" ...
- javascript 之 prototype继承机制
理解Javascript语言的继承机制 javascript没有"子类"和"父类"的概念,也没有"类"(class)和"实例&qu ...
- Execution Order of Event Functions
In Unity scripting, there are a number of event functions that get executed in a predetermined order ...
- Javascript类继承-机制-代码Demo【原创】
最近看到<Javascript设计模式>,对js模拟的”继承方式“有了更深一步的了解,虽然之前也总是用到prototype.new ,但只是知其然不知所以然,现在将类继承的方法整理如下,暂 ...
- 创建对象的最好方式&最好的继承机制(代码实例)
/* 创建对象的最好方式:混合的构造函数/原型方式, *用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法) */ function People(sname){ this.nam ...
- js最好的继承机制:用对象冒充继承构造函数的属性,用原型prototype继承对象的方法。
js最好的继承机制:用对象冒充继承构造函数的属性,用原型prototype继承对象的方法. function ClassA(sColor) { this.color = sColor; } Class ...
随机推荐
- UI1_UITouch
// // ViewController.m // UI1_UITouch // // Created by zhangxueming on 15/7/9. // Copyright (c) 2015 ...
- (转)Centos5.5安装MONO2.10.8和Jexus 5.0开启Linux平台.net应用新篇章
注:本文只做本人记录使用,也可供大家参考,有兴趣的可以一起讨论. 安装步骤 1.yum –y update 2.安装Mono源码安装需要的库 yum -y install gcc gcc-c++ bi ...
- (转)IIS设置优化(需根据服务器性能,调整具体参数值)
IIS7 优化-网站请求并发数>> /*调整IIS 7应用程序池队列长度*/队列长度 5000-20000(原来默认1000,最大65535,建议10000 ) /*调整IIS 7的app ...
- 9 款赏心悦目的 HTML5/CSS3 特效
1.HTML5 WebGL实验,超酷的HTML5 Canvas波浪墙 这是一款HTML5 Canvas实验项目,也是波浪特效,只是这不是真正的水波,而是利用柱体高度的变化实现的波浪墙效果. 在线演示 ...
- 使用Linux系统中的SSH服务
使用Linux系统中的SSH服务 1.SSH服务应用场景 ① 可以实现对文件的上传与下载 ② 实现远程管理Linux 2.安装SSH服务器 服 务:sshd 位 置:光盘2 软 件:openssh-s ...
- Fedora 19 配置参考
1. 安装完Fedora 19之后,第一件事不是升级系统,而是添加源. 下载我配置好的源,非常全面,适用Fedora 19 x86_64.点我下载 打开终端,切换到repo.zip所在目录:mv re ...
- mysql mmm高可用架构设计
项目概述:搭建主从,双主,安装Perl模块 安装配置mmm软件 测试 硬件环境:4台虚拟PC 软件环境:rehl6.5 MySQL-5.6.26 percona-xtrabackup-2.3.4 ...
- ubuntu下安装 Source insight
习惯了在source insight下编辑阅读源码,在linux下用vi总是用不好 ,还是在ubuntu上用回熟悉的source insight. 在ubuntu中,安装windows程序用wine, ...
- 利用PowerDesigner绘制PDM生成SQL Server数据库
PowerDesigner是个很强大的建模工具,可以利用它绘制各种图形,本文利用该工具绘制PDM,进而生成SQL Server数据库. 比如绘制一个简单的学生选课.教师授课管理系统的PDM: pk表示 ...
- execute连接 类型
set rs=server.createobject("adodb.recordset") sql="select top 10 id,name from tablena ...