Namespace Global Namespace
Classes
PolySpatialStateValidator
This class is used to fetch and compare state between clientSim and hostPlatform layer GameObjects. A collection of tracked GameObjects are retrieved from the hostPlatform layer. The clientSim layer GameObjects is compared against the hostPlatform layer GameObjects, checking components and their properties, and generating diff String. There are 2 main components to this class:
- GameObject State Retrieval - when invoked, retrieves all supported GameObject and GameObject component properties to generate 2 GameObjectNode collections (for clientSim and hostPlatform layers).
- Diff String Generator - when invoked, compares collection of GameObjectNodes and generates a diff String for all non-matching values. Note that comparisons may not always be 1-1 as some conversion and rounding is expected in PolySpatial hostPlatform GameObjects. There are 3 facets of development to this class:
- Supporting additional GameObject components and properties - currently a subset of all PolySpatial supported components are tracked and validated. The current goal is to support all components tracked via PolySpatial tracker classes.
- Extend component property validation - Some supported components may not fully validate all component properties, or validations are high level only (checking only for the presence of the component, not comparing values).
- Supporting additional platforms - currently only UnityPolySpatialNativePlatform is supported
There are known issues with certain component properties that generate diffs which should be tracked by a JIRA (a JIRA link should be included above the relevant lines of code). If missing, please add a JIRA or reach out to the PolySpatial QA and/or PolySpatial Core team.
PolySpatialStateValidator.GameObjectNode
Captures a GameObject's state as well as linking clientSim and hostPlatform GameObjects and their respective parents. GameObject properties define its state, capturing simple (string, int, etc) or complex (Mesh, Material) types.
PolySpatialStateValidator.SkinnedMeshRendererNode
Captures SkinnedMeshRenderer properties used for state validation; allows for cloning of referenced values such as bones, to get a snapshot of SMR properties for a given frame.
PolySpatialStateValidator.TransformNode
Captures Transform properties used for state validation; allows for cloning Transform values and removing any links to GameObject references and capturing a snapshot of Transform properties for a given frame.