Skip to main content

引用类型 (Reference Type)

引用类型 (Reference Type)

引用类型(Reference Type)是 FrooxEngine 数据模型中的一种类型指定。它们与值类型相对,其特点是在内存中只存在于一个位置,并且是通过其 引用ID(RefID) 而不是通过值来进行“传递”的,例如通过 SyncRef<T>。

所有引用类型都共享以下属性:

引用类型的一些示例包括 Slot(插槽)、User(用户)、Component(组件) 和 Field(字段)。通过 struct(结构体) 定义的类型不是引用类型,例如 Rect 类型。

一般来说,ProtoFlux 中与引用类型对应的是 Object(对象) 类型。然而,它们并不完全等同,因为 ProtoFlux 独立于 FrooxEngine,因此并不天生了解其数据模型。在使用与 FrooxEngine 交互的节点(如 Data Model Store)与完全包含在 ProtoFlux 内部的节点(如 Local 变量)时,这可能会引起一些混淆。

例如,Slot(插槽)在数据模型中是一个“对象引用(Object Ref)”,但在 ProtoFlux 上下文中仅仅是一个“对象(Object)”。String(字符串) 在数据模型中是一个“值(Value)”,但在 ProtoFlux 上下文中却是一个“对象字段(Object Field)”。

参见

  • 值类型 (Value type):FrooxEngine 和 ProtoFlux 数据模型中的另一种类型体系。
  • Object:ProtoFlux 中非值类型的类型。
  • 微软关于 C# 引用类型的文档。请注意,这与 FrooxEngine 的引用类型的具体实现并不完全相同,因为 FrooxEngine 将其自己的数据模型嵌套在 C# 中,但文章中提到的概念在很大程度上也适用于 FrooxEngine 的数据模型。