本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
存储实体的位置
您可以使用整数数据结构加载(从 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); }