IAttachmentPointManager

IAttachmentPointManager 是可供客户端应用程序访问的最常见的 World Locking Tools 界面。

但连接点界面非常小。 它让客户端应用程序可以对连接点执行四个操作。

  • 创建
  • 版本
  • 移动
  • 传送

CreateAttachmentPoint

在此需要注意作为 create 函数的参数传入的委托。

这两个参数中的一个或全部可为 null,在这种情况下,创建的连接点不会收到与该委托相应的任何通知。

这些委托一旦创建便不可更改。 这不会是负担,因为委托本身可能会根据当前状态对行为创建分支。 如果哪怕这样都不可能,则必须释放该连接点并创建具有所需新委托的新连接点。

ReleaseAttachmentPoint

如果不再需要该连接点,客户端应用程序应通过释放 API 通知系统。

MoveAttachmentPoint

与大多数空间定位点不同,连接点可以在世界内自由移动,自动绑定到位于其新位置处的最相关的定位点。

连接点移动时,其所有者应将移动后的新位置告诉系统。 这种移动可能来自物理仿真或任何其他动画技术。

TeleportAttachmentPoint

令人困惑的是,与移动相比,传送和创建之间的关系更密切。 将传送视为于不复存在后再开始在新位置中存在(而不是视为移动到新位置)很有益。

一般来说,如果对象不断从旧位置移动到新位置,请使用 MoveAttachmentPoint。 如果它突然出现在新位置,则使用 TeleportAttachmentPoint。

创建和传送的上下文

创建以及概念上类似的传送采用可选(可为 null)的创建上下文参数。 上下文是一个已存在的连接点,它为系统提供几个关于以下问题的提示:在定位点图中的什么位置(在有多个片元的情况下可能不完全相连)可找到最适合放置该连接点的定位点。

IAttachmentPointManager 的当前实现位于 Assets/WorldLocking.Core/Scripts/FragmentManager.cs 中,后者也实现 IFragmentManager 界面。

通过管理器或连接点 API 移动和传送

你可能会注意到,除了此处所述的移动和传送界面外,IAttachmentPoint 界面上还有相应的方法。 这些技术等效,可以使用对于调用方而言更方便的一种。

另请参阅

以及 API 参考中的: