存储实体的位置 - AWS SimSpace Weaver

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

存储实体的位置

您可以使用整数数据结构加载(从 State Fabric 读取)实体的位置。这些示例使用以下函数:

注意

您必须将 Api::BuiltinTypeId::Vector3F32 提供给 Api::LoadEntityIndexKey(),如以下示例所示。

例 使用数组表示位置的示例
Result<void> GetEntityPosition(Api::Entity& entity, Transaction& transaction) { std::int8_t* dest = nullptr; WEAVERRUNTIME_TRY(Aws::WeaverRuntime::Api::LoadEntityIndexKey( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Vector3F32), &dest)); std::array<float, 3> position = *reinterpret_cast<std::array<float, 3>*>(dest); }
例 使用 struct 表示位置的示例
struct Position {struct float x; float y; float z; }; Result<void> GetEntityPosition(Api::Entity& entity, Transaction& transaction) { std::int8_t* dest = nullptr; WEAVERRUNTIME_TRY(Aws::WeaverRuntime::Api::LoadEntityIndexKey( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Vector3F32), &dest)); Position position = *reinterpret_cast<Position*>(dest); }