3.3 C#引用类型以及Unity 3D的一些基础类

C#引用类型

C#中大部分的类型都是引用类型的,如类、数组、字符串。

引用类型一般通过引用(指针)来获得引用类型对象的值。

引用类型的对象是放在托管堆上的,然后与垃圾回收机制(GC)自动回收(猜测和java一样,当没有指针指向当前对象,就可以被回收了)。

当我们new一个对象时,Singer a= new Singer("张三") 分为下面三个步骤:

1. 计算所需内存空间,包括该对象及其基类们的成员、方法,还有类型对象的指针、同步索引块。

2. 初始化内存,所有字节设为0

3. 初始化类型对象的指针、同步索引块。

4. 调用类型的实例构造器,传递构造函数的参数,而且会调用基类的构造函数。

5. 返回对象的引用,赋给a。

如果有Singer b=a;那么如果b中的name发生了改变,a中的name也会一样改变,因为它们指向的是同一个对象。

Unity 3D的一些基础类

1.UnityEngine.Object

之前我们说到c#中所有的类都是继承自System.Object的,下面我们要介绍一下UnityEngine.Object,它是U3D中所有对象的基类。一些public的属性会显示在编辑器的面板上供调试者实时编辑。

2. UnityEngine.Component

组件,它是UnityEngine.Object的子类,任何添加在物体上的代码都是一个组件。这个类有一些方法经常用到,如获得该组件所在的gameobject,tag,transform,获得该组件所在物体,或者其子,或者其parent的指定组件等等。

3. UnityEngine.MonoBehaviour

在Unity中新建一个脚本文件的话,类会默认继承MonoBehaviour,其实有些时候,你觉得这个类不需要做一些挂载在物体上实时刷新的工作,你可以不让它继承这个类,那么这个类有哪些函数呢?很多很多。

Unity首先会调用所有脚本里的Awake()函数,Start()函数,

然后处理物理逻辑,分为:调用所有的fixedUpdate(),物理模拟,触发函数、碰撞函数。

然后是刚体插值,如position,rotate,

然后是处理鼠标OnMouseDown/Up等输入事件

然后所有Update()函数

然后动画、混合、变换

所有lateUpdate

渲染

销毁对象或退出场景

这些涉及到的函数都是出自MonoBehaviour类,是Unity处理事件,游戏运行的总逻辑,主要思路就是 物理检测-动画模拟-渲染

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值