Speichern der Position einer Entität - AWS SimSpace Weaver

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Speichern der Position einer Entität

Sie können die Position einer Entität mithilfe einer Ganzzahldatenstruktur speichern (in den Zustandstext schreiben). In diesen Beispielen wird die folgende Funktion verwendet:

Result<void> StoreEntityIndexKey( Transaction& txn, const Entity& entity, TypeId keyTypeId, std::int8_t* src, std::size_t length)
Anmerkung

Sie müssen Api::BuiltinTypeId::Vector3F32 angebenApi::StoreEntityIndexKey(), wie in den folgenden Beispielen gezeigt.

Beispiel für die Verwendung eines Arrays zur Darstellung der Position
Result<void> SetEntityPositionByFloatArray( Api::Entity& entity, Transaction& transaction) { std::array<float, 3> position = { /* x */ 25, /* y */ 21, /* z */ 0 }; auto* src = reinterpret_cast<std::int8_t*>(position.data()); std::size_t length = sizeof(position); WEAVERRUNTIME_TRY(Api::StoreEntityIndexKey( transaction, entity, Api::BuiltinTypeIdToTypeId(Api::BuiltinTypeId::Vector3F32), src, length)); }
Beispiel für die Verwendung eines struct zur Darstellung der Position
struct Position { float x; float y; float z; }; Result<void> SetEntityPositionByStruct( Api::Entity& entity, Transaction& transaction) { Position position = { /* x */ 25, /* y */ 21, /* z */ 0 }; auto* src = reinterpret_cast<std::int8_t*>(&position); std::size_t length = sizeof(position); WEAVERRUNTIME_TRY(Api::StoreEntityIndexKey( transaction, entity, Api::BuiltinTypeIdToTypeId(Api::BuiltinTypeId::Vector3F32), src, length)); }