3.4 C#值类型、Unity 3D中的值类型

C#值类型

值类型在C#中是存在与线程栈中的,不归垃圾回收机制管,一般的赋值都是复制数据。所有的值类型的基类是抽象类System.ValueType,而ValueType的基类是Object

值类型包括结构和枚举类,结构类又分为三种:

1. 数值类型,但是数组不是

2. 布尔类型

3. 结构体,比如DateTime

有人会觉得结构体和类很像,都有成员变量甚至成员函数,而且觉得当一个类比较简单时就用结构体吧,但其实两者一个是值类型一个是引用类型,值类型无需垃圾回收,引用类型需要GC,比较消耗性能,但是值类型在传递参数、赋值方面性能消耗大,

所以需要视情况而定。(之前做的那个项目,老师就是没想到结构体与类的类型区别,导致后面逻辑出错)

值类型有以下特点:

不派生出其他任何类型

不需要其他类型派生(所以为什么是从ValueType派生出的?应该是最后一步进行了从类到值类型的拆箱)

值类型不可变,只能销毁重新生成另一个值类型。

Unity 3D中的值类型

Vector2/Vector3/Vector4

它们的常用向量的简写,如Vector3.up之类的

还有成员变量,x/y/z/w/magnitude/normalized/sqrMagnitude(返回长度的平方)

主要掌握点乘(结果是一个数值,可以通过该数值来判断人物是否面对着某物体:transform.forward dot (target.transform.position-transform.position))

叉乘,结果是一个向量,满足右手坐标系,不满足交换律

Color/Color32

color的每个参数我0~1,color32是0~255

Plane 

由法向量与原点到该面的距离定义

还有Rect/Bounds/RaycastHit/Touch/Ray等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值