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 的数据模型。