diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cac50c..31a21c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog - VRIF Interaction Component -**v2.0.0 (2023-05-03 - Current)** +**v3.0.0 (2024-04-30 - Current)** + +*[Changed]* +- Now compatible with VR Builder 4.0.0 and later versions. + +**v2.0.0 (2023-05-03)** *[Changed]* - Now compatible with VR Builder 3.0.0 and later versions. diff --git a/Demo/Scenes/VR Builder Demo - VRIF Integration.unity b/Demo/Scenes/VR Builder Demo - VRIF Integration.unity index 3419dc1..fb7faf5 100644 --- a/Demo/Scenes/VR Builder Demo - VRIF Integration.unity +++ b/Demo/Scenes/VR Builder Demo - VRIF Integration.unity @@ -8812,6 +8812,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -9115,6 +9116,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -12128,6 +12130,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 812179936} @@ -18483,6 +18487,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 781666619} @@ -19386,6 +19392,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 m_SortingLayerID: 0 m_SortingOrder: -100 @@ -19469,6 +19476,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -29446,6 +29454,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 179551010} @@ -29728,6 +29738,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 177530551} @@ -34931,6 +34943,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 463067111} @@ -36563,6 +36577,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 727521751} @@ -41297,6 +41313,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 860913889} @@ -49631,6 +49649,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -64476,6 +64495,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1293541497} @@ -67644,6 +67665,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -83729,6 +83751,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1302114344} @@ -83892,6 +83916,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -88567,8 +88592,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: cc6af03d78e74e468cd44be3b5c62c50 uniqueName: Slot (8) - tags: [] + guids: [] --- !u!1 &847377411 GameObject: m_ObjectHideFlags: 0 @@ -90400,6 +90427,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -94513,6 +94541,7 @@ MonoBehaviour: VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null selectedProcessStreamingAssetsPath: Processes/Demo - VRIF Integration/Demo - VRIF Integration.json + processStringLocalizationTable: --- !u!4 &912355383 Transform: m_ObjectHideFlags: 0 @@ -112709,6 +112738,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 2120140264} @@ -115076,6 +115107,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 55961743} @@ -115734,6 +115767,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 854064332} @@ -117464,6 +117499,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1263140340} @@ -120374,6 +120411,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1440601576} @@ -124713,6 +124752,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1240489641} @@ -131517,6 +131558,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1689280360} @@ -133046,8 +133089,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 956a5f98534418449b31d4b5f7160037 uniqueName: GravityCube 1 - tags: [] + guids: [] --- !u!1 &1270487925 GameObject: m_ObjectHideFlags: 0 @@ -133943,6 +133988,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 795210615} @@ -135411,6 +135458,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1401721480} @@ -136198,6 +136247,8 @@ MonoBehaviour: SlowMoRateOfFire: 0.3 ShotForce: 20 BulletCasingForce: 3 + LaserGuided: 0 + LaserPoint: {fileID: 0} RecoilForce: {x: 0, y: 0, z: 0} RecoilDuration: 0.3 ValidLayers: @@ -137415,6 +137466,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 757868654} @@ -143701,6 +143754,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 524541292} @@ -144228,6 +144283,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1756895730} @@ -144548,6 +144605,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -144857,6 +144915,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -147830,6 +147889,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1688119738} @@ -152431,8 +152492,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 1cfc3a195715bd4bb98af0c6c117fdd8 uniqueName: Hinge - tags: [] + guids: [] --- !u!114 &1463236166 MonoBehaviour: m_ObjectHideFlags: 0 @@ -153015,6 +153078,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 682559161} @@ -153895,6 +153960,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -157535,6 +157601,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -160512,6 +160579,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -162738,6 +162806,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1728921174} @@ -167221,6 +167291,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 890513168} @@ -167551,6 +167623,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1630279031} @@ -168149,6 +168223,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1787981189} @@ -177650,8 +177726,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 4e4d1960c81699498a3f714d2cfe7120 uniqueName: LaserSword - tags: [] + guids: [] --- !u!1 &1717430778 GameObject: m_ObjectHideFlags: 0 @@ -181244,8 +181322,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 1c1c8ee1b49334479d88b78095490aa1 uniqueName: Marker Red - tags: [] + guids: [] --- !u!114 &1746294608 MonoBehaviour: m_ObjectHideFlags: 0 @@ -186271,6 +186351,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1701736973} @@ -186415,6 +186497,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -197520,6 +197603,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 974568373} @@ -202843,6 +202928,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 773433184} @@ -205036,6 +205123,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 5 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1792871748} @@ -206841,6 +206930,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1589197916} @@ -211187,6 +211278,7 @@ GameObject: - component: {fileID: 1956891032} - component: {fileID: 1956891031} - component: {fileID: 1956891030} + - component: {fileID: 1956891036} m_Layer: 0 m_Name: CenterEyeAnchor m_TagString: MainCamera @@ -211225,8 +211317,13 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f391ac734d94ea34697b6cde3269f11a, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 7d848dd120caf54f82d52a379fd07374 uniqueName: User - tags: [] + guids: [] + head: {fileID: 1956891029} + leftHand: {fileID: 0} + rightHand: {fileID: 0} --- !u!114 &1956891031 MonoBehaviour: m_ObjectHideFlags: 0 @@ -211324,6 +211421,102 @@ AudioListener: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1956891028} m_Enabled: 1 +--- !u!82 &1956891036 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956891028} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 --- !u!1 &1957028668 GameObject: m_ObjectHideFlags: 0 @@ -212092,6 +212285,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 705659179} @@ -224604,8 +224799,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: cc34ae9a0e88924e895a356e5d3a36de uniqueName: SteeringWheel Vertical - tags: [] + guids: [] --- !u!114 &2070968873 MonoBehaviour: m_ObjectHideFlags: 0 @@ -225740,6 +225937,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Health: 10 + SelfDestruct: 0 + SelfDestructDelay: 0.1 SpawnOnDeath: {fileID: 0} ActivateGameObjectsOnDeath: - {fileID: 1253141394} @@ -227136,6 +227335,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 m_SortingLayerID: 0 m_SortingOrder: -100 @@ -230921,6 +231121,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -236080,8 +236281,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 5dc210a4cddba74198e71b17ecf2c1a8 uniqueName: Bat 2H - tags: [] + guids: [] --- !u!23 &2466280432754187660 MeshRenderer: m_ObjectHideFlags: 0 @@ -236755,6 +236958,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -237810,6 +238014,8 @@ MonoBehaviour: SlowMoRateOfFire: 0.3 ShotForce: 20 BulletCasingForce: 3 + LaserGuided: 0 + LaserPoint: {fileID: 0} RecoilForce: {x: 0, y: 0, z: 0} RecoilDuration: 0.3 ValidLayers: diff --git a/Demo/StreamingAssets/Processes/Demo - VRIF Integration/Demo - VRIF Integration.json b/Demo/StreamingAssets/Processes/Demo - VRIF Integration/Demo - VRIF Integration.json index bda53b9..08cf48d 100644 --- a/Demo/StreamingAssets/Processes/Demo - VRIF Integration/Demo - VRIF Integration.json +++ b/Demo/StreamingAssets/Processes/Demo - VRIF Integration/Demo - VRIF Integration.json @@ -1,51 +1,57 @@ { "$id": "1", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper, VRBuilder.Core", - "Steps": { + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+ProcessWrapper, VRBuilder.Core", + "SubChapters": { "$id": "2", + "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IChapter, VRBuilder.Core]], mscorlib", + "$values": [] + }, + "Steps": { + "$id": "3", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "3", + "$id": "4", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "4", + "$id": "5", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { - "x": -102.4, + "x": -73.6, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "8667f78a-9b7a-4a38-a8a6-bfccffe501d2" }, "Data": { - "$id": "5", + "$id": "6", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Grab Condition", "Description": null, "Behaviors": { - "$id": "6", + "$id": "7", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "7", + "$id": "8", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "8", + "$id": "9", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "9", + "$id": "10", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "10", + "$id": "11", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "11", + "$id": "12", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Welcome to the demo scene of the integration between VRIF and VR Builder. VR Builder guides you through this app, while VRIF provides you with the interactions. Start by grabbing the red marker on the table." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -54,84 +60,103 @@ } }, "Transitions": { - "$id": "12", + "$id": "13", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "13", + "$id": "14", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "14", + "$id": "15", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "15", + "$id": "16", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "16", + "$id": "17", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "17", + "$id": "18", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "18", + "$id": "19", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "19", + "$id": "20", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "21", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "22", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "e18e1c1c-93b4-4734-9d88-b78095490aa1" + ] + } + }, "GrabbableProperty": { - "$id": "20", + "$id": "23", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Marker Red" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "21", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 1, + "$id": "24", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "25", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "56dcb89f-cec7-43a5-b7ff-8df4517bd098" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "22", + "$id": "26", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "23", + "$id": "27", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "24", + "$id": "28", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "25", + "$id": "29", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "26", + "$id": "30", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "27", + "$id": "31", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "28", + "$id": "32", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "29", + "$id": "33", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -139,17 +164,17 @@ ] }, "ChildMetadata": { - "$id": "30", + "$id": "34", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "31", + "$id": "35", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "32", + "$id": "36", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -161,7 +186,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "33", + "$id": "37", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -174,69 +199,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "34", + "$id": "38", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "39", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "39" + }, "Metadata": { - "$id": "35", + "$id": "40", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "36", + "$id": "41", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "37", + "$id": "42", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "38", + "$id": "43", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "39", + "$id": "44", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 128.0, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "56dcb89f-cec7-43a5-b7ff-8df4517bd098" }, "Data": { - "$id": "40", + "$id": "45", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Release Condition", "Description": null, "Behaviors": { - "$id": "41", + "$id": "46", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "42", + "$id": "47", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "43", + "$id": "48", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "44", + "$id": "49", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "45", + "$id": "50", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "46", + "$id": "51", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "You grabbed the marker, and VR Builder can react accordingly. Now release it." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -245,92 +277,111 @@ } }, "Transitions": { - "$id": "47", + "$id": "52", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "48", + "$id": "53", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "49", + "$id": "54", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "50", + "$id": "55", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "51", + "$id": "56", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "52", + "$id": "57", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "53", + "$id": "58", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "54", + "$id": "59", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition+EntityData, VRBuilder.BasicInteraction", + "GrabbableProperties": { + "$id": "60", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "61", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "e18e1c1c-93b4-4734-9d88-b78095490aa1" + ] + } + }, "GrabbableProperty": { - "$id": "55", + "$id": "62", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Marker Red" }, "IsCompleted": false, - "Name": "Release Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "56", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 5, + "$id": "63", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "64", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "8bd5e2f7-a6c1-4376-a087-2c112138b165" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "57", + "$id": "65", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "58", + "$id": "66", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "59", + "$id": "67", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "60", + "$id": "68", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "61", + "$id": "69", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "27" + "$ref": "31" }, { - "$ref": "28" + "$ref": "32" }, { - "$ref": "29" + "$ref": "33" } ] }, "ChildMetadata": { - "$id": "62", + "$id": "70", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "63", + "$id": "71", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "64", + "$id": "72", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -342,7 +393,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "65", + "$id": "73", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -355,69 +406,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "66", + "$id": "74", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "75", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "75" + }, "Metadata": { - "$id": "67", + "$id": "76", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "68", + "$id": "77", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "69", + "$id": "78", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "70", + "$id": "79", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "71", + "$id": "80", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 567.2, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "933d8ae3-d75e-4372-a49c-cff2fb958d74" }, "Data": { - "$id": "72", + "$id": "81", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Use Condition", "Description": null, "Behaviors": { - "$id": "73", + "$id": "82", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "74", + "$id": "83", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "75", + "$id": "84", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "76", + "$id": "85", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "77", + "$id": "86", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "78", + "$id": "87", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Good. Now to the use condition. Grab the black cylinder, which is actually a laser sword, and use it by pressing the trigger." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -426,83 +484,102 @@ } }, "Transitions": { - "$id": "79", + "$id": "88", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "80", + "$id": "89", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "81", + "$id": "90", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "82", + "$id": "91", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "83", + "$id": "92", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "84", + "$id": "93", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "85", + "$id": "94", "$type": "VRBuilder.BasicInteraction.Conditions.UsedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "86", + "$id": "95", "$type": "VRBuilder.BasicInteraction.Conditions.UsedCondition+EntityData, VRBuilder.BasicInteraction", + "UsableObjects": { + "$id": "96", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IUsableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "97", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "60194d4e-16c8-4999-8a3f-714d2cfe7120" + ] + } + }, "UsableProperty": { - "$id": "87", + "$id": "98", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IUsableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "LaserSword" }, "IsCompleted": false, - "Name": "Use Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "88", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 3, + "$id": "99", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "100", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "bf971c04-9397-4faf-a93c-01dc62882ae9" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "89", + "$id": "101", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "90", + "$id": "102", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "91", + "$id": "103", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "92", + "$id": "104", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "93", + "$id": "105", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "94", + "$id": "106", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "95", + "$id": "107", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "96", + "$id": "108", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -510,17 +587,17 @@ ] }, "ChildMetadata": { - "$id": "97", + "$id": "109", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "98", + "$id": "110", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "99", + "$id": "111", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -532,7 +609,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "100", + "$id": "112", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -545,69 +622,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "101", + "$id": "113", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "114", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "114" + }, "Metadata": { - "$id": "102", + "$id": "115", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "103", + "$id": "116", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "104", + "$id": "117", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "105", + "$id": "118", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "106", + "$id": "119", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 768.8, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "bf971c04-9397-4faf-a93c-01dc62882ae9" }, "Data": { - "$id": "107", + "$id": "120", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Snap Condition", "Description": null, "Behaviors": { - "$id": "108", + "$id": "121", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "109", + "$id": "122", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "110", + "$id": "123", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "111", + "$id": "124", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "112", + "$id": "125", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "113", + "$id": "126", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "When you're done, store it by snapping it to the bottom right snap point." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -616,96 +700,126 @@ } }, "Transitions": { - "$id": "114", + "$id": "127", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "115", + "$id": "128", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "116", + "$id": "129", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "117", + "$id": "130", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "118", + "$id": "131", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "119", + "$id": "132", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "120", + "$id": "133", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "121", + "$id": "134", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition+EntityData, VRBuilder.BasicInteraction", + "TargetObjects": { + "$id": "135", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "136", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "60194d4e-16c8-4999-8a3f-714d2cfe7120" + ] + } + }, "Target": { - "$id": "122", + "$id": "137", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "LaserSword" }, + "TargetSnapZone": { + "$id": "138", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "139", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "3df06acc-e778-464e-8cd4-4be3b5c62c50" + ] + } + }, "ZoneToSnapInto": { - "$id": "123", + "$id": "140", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Slot (8)" }, - "Name": "Snap Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "124", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 4, + "$id": "141", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "142", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "a54dcd86-c81f-4c7c-a56b-aa174c585a98" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "125", + "$id": "143", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "126", + "$id": "144", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "127", + "$id": "145", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "128", + "$id": "146", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "129", + "$id": "147", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "94" + "$ref": "106" }, { - "$ref": "95" + "$ref": "107" }, { - "$ref": "96" + "$ref": "108" } ] }, "ChildMetadata": { - "$id": "130", + "$id": "148", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "131", + "$id": "149", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "132", + "$id": "150", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -717,7 +831,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "133", + "$id": "151", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -730,69 +844,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "134", + "$id": "152", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "153", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "153" + }, "Metadata": { - "$id": "135", + "$id": "154", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "136", + "$id": "155", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "137", + "$id": "156", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "138", + "$id": "157", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "139", + "$id": "158", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { - "x": 980.8, + "x": 983.2, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "a54dcd86-c81f-4c7c-a56b-aa174c585a98" }, "Data": { - "$id": "140", + "$id": "159", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Two Hand Grab", "Description": null, "Behaviors": { - "$id": "141", + "$id": "160", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "142", + "$id": "161", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "143", + "$id": "162", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "144", + "$id": "163", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "145", + "$id": "164", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "146", + "$id": "165", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Let's try two hand grabbing. Grab the baseball bat with two hands." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -801,93 +922,112 @@ } }, "Transitions": { - "$id": "147", + "$id": "166", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "148", + "$id": "167", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "149", + "$id": "168", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "150", + "$id": "169", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "151", + "$id": "170", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "152", + "$id": "171", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "153", + "$id": "172", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "154", + "$id": "173", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "174", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "175", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "a410c25d-dbcd-41a7-98e7-1b17ecf2c1a8" + ] + } + }, "GrabbableProperty": { - "$id": "155", + "$id": "176", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Bat 2H" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "156", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 6, + "$id": "177", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "178", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "4b5831f5-c9d7-4a2b-8b02-2b55837fb205" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "157", + "$id": "179", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "158", + "$id": "180", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "159", + "$id": "181", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "160", + "$id": "182", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "161", + "$id": "183", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "94" + "$ref": "106" }, { - "$ref": "95" + "$ref": "107" }, { - "$ref": "96" + "$ref": "108" } ] }, "ChildMetadata": { - "$id": "162", + "$id": "184", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "163", + "$id": "185", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "164", + "$id": "186", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -899,7 +1039,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "165", + "$id": "187", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -912,69 +1052,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "166", + "$id": "188", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "189", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "189" + }, "Metadata": { - "$id": "167", + "$id": "190", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "168", + "$id": "191", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "169", + "$id": "192", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "170", + "$id": "193", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "171", + "$id": "194", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 356.0, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "8bd5e2f7-a6c1-4376-a087-2c112138b165" }, "Data": { - "$id": "172", + "$id": "195", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Touch Condition", "Description": null, "Behaviors": { - "$id": "173", + "$id": "196", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "174", + "$id": "197", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "175", + "$id": "198", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "176", + "$id": "199", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "177", + "$id": "200", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "178", + "$id": "201", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "To test the touch condition, touch the red cube" }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -983,83 +1130,102 @@ } }, "Transitions": { - "$id": "179", + "$id": "202", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "180", + "$id": "203", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "181", + "$id": "204", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "182", + "$id": "205", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "183", + "$id": "206", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "184", + "$id": "207", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "185", + "$id": "208", "$type": "VRBuilder.BasicInteraction.Conditions.TouchedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "186", + "$id": "209", "$type": "VRBuilder.BasicInteraction.Conditions.TouchedCondition+EntityData, VRBuilder.BasicInteraction", + "TouchableProperties": { + "$id": "210", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITouchableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "211", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "985f6a95-4453-4418-9b31-d4b5f7160037" + ] + } + }, "TouchableProperty": { - "$id": "187", + "$id": "212", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITouchableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "GravityCube 1" }, "IsCompleted": false, - "Name": "Touch Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "188", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 2, + "$id": "213", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "214", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "933d8ae3-d75e-4372-a49c-cff2fb958d74" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "189", + "$id": "215", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "190", + "$id": "216", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "191", + "$id": "217", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "192", + "$id": "218", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "193", + "$id": "219", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "194", + "$id": "220", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "195", + "$id": "221", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "196", + "$id": "222", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -1067,17 +1233,17 @@ ] }, "ChildMetadata": { - "$id": "197", + "$id": "223", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "198", + "$id": "224", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "199", + "$id": "225", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1089,7 +1255,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "200", + "$id": "226", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1102,69 +1268,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "201", + "$id": "227", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "228", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "228" + }, "Metadata": { - "$id": "202", + "$id": "229", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "203", + "$id": "230", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "204", + "$id": "231", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "205", + "$id": "232", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "206", + "$id": "233", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1241.6, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "4b5831f5-c9d7-4a2b-8b02-2b55837fb205" }, "Data": { - "$id": "207", + "$id": "234", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Control Position - Lever", "Description": null, "Behaviors": { - "$id": "208", + "$id": "235", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "209", + "$id": "236", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "210", + "$id": "237", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "211", + "$id": "238", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "212", + "$id": "239", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "213", + "$id": "240", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Great. Now pull the lever all the way towards you, then release it." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -1173,33 +1346,44 @@ } }, "Transitions": { - "$id": "214", + "$id": "241", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "215", + "$id": "242", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "216", + "$id": "243", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "217", + "$id": "244", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "218", + "$id": "245", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "219", + "$id": "246", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "220", + "$id": "247", "$type": "VRBuilder.VRIF.Conditions.CheckControlPositionCondition, Assembly-CSharp", "Data": { - "$id": "221", + "$id": "248", "$type": "VRBuilder.VRIF.Conditions.CheckControlPositionCondition+EntityData, Assembly-CSharp", + "ContinuousControl": { + "$id": "249", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.VRIF.Properties.IContinuousControlProperty, Assembly-CSharp]], VRBuilder.Core", + "guids": { + "$id": "250", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "193afc1c-1557-4bbd-b98a-f0c6c117fdd8" + ] + } + }, "ControlProperty": { - "$id": "222", + "$id": "251", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.VRIF.Properties.IContinuousControlProperty, Assembly-CSharp]], VRBuilder.Core", "UniqueName": "Hinge" }, @@ -1207,52 +1391,61 @@ "MaxPosition": 0.1, "RequireRelease": true, "IsCompleted": false, - "Name": "Check Control Position", + "Name": "Set 'Hinge' between 0 and 0.1", "Metadata": null } } ] }, "TargetStep": { - "$id": "223", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 7, + "$id": "252", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "253", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "3acfd6d9-94b8-4b23-952d-34ef8755cdc5" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "224", + "$id": "254", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "225", + "$id": "255", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "226", + "$id": "256", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "227", + "$id": "257", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "228", + "$id": "258", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "229", + "$id": "259", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "230", + "$id": "260", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "231", + "$id": "261", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -1260,17 +1453,17 @@ ] }, "ChildMetadata": { - "$id": "232", + "$id": "262", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "233", + "$id": "263", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "234", + "$id": "264", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1282,7 +1475,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "235", + "$id": "265", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1295,69 +1488,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "236", + "$id": "266", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "267", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "267" + }, "Metadata": { - "$id": "237", + "$id": "268", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "238", + "$id": "269", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "239", + "$id": "270", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "240", + "$id": "271", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "241", + "$id": "272", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1519.2, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "3acfd6d9-94b8-4b23-952d-34ef8755cdc5" }, "Data": { - "$id": "242", + "$id": "273", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Control Position - Wheel", "Description": null, "Behaviors": { - "$id": "243", + "$id": "274", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "244", + "$id": "275", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "245", + "$id": "276", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "246", + "$id": "277", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "247", + "$id": "278", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "248", + "$id": "279", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Now start turning the wheel counterclockwise." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": true } } @@ -1366,33 +1566,44 @@ } }, "Transitions": { - "$id": "249", + "$id": "280", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "250", + "$id": "281", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "251", + "$id": "282", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "252", + "$id": "283", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "253", + "$id": "284", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "254", + "$id": "285", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "255", + "$id": "286", "$type": "VRBuilder.VRIF.Conditions.CheckControlPositionCondition, Assembly-CSharp", "Data": { - "$id": "256", + "$id": "287", "$type": "VRBuilder.VRIF.Conditions.CheckControlPositionCondition+EntityData, Assembly-CSharp", + "ContinuousControl": { + "$id": "288", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.VRIF.Properties.IContinuousControlProperty, Assembly-CSharp]], VRBuilder.Core", + "guids": { + "$id": "289", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "9aae34cc-880e-4e92-895a-356e5d3a36de" + ] + } + }, "ControlProperty": { - "$id": "257", + "$id": "290", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.VRIF.Properties.IContinuousControlProperty, Assembly-CSharp]], VRBuilder.Core", "UniqueName": "SteeringWheel Vertical" }, @@ -1400,52 +1611,61 @@ "MaxPosition": 0.6, "RequireRelease": false, "IsCompleted": false, - "Name": "Check Control Position", + "Name": "Set 'SteeringWheel Vertical' between 0.5 and 0.6", "Metadata": null } } ] }, "TargetStep": { - "$id": "258", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 8, + "$id": "291", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null + "StepMetadata": { + "$id": "292", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "f43dcb9b-4f35-4564-b833-a3736186b785" + }, + "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "259", + "$id": "293", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "260", + "$id": "294", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "261", + "$id": "295", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "262", + "$id": "296", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "263", + "$id": "297", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "264", + "$id": "298", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "265", + "$id": "299", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "266", + "$id": "300", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -1453,17 +1673,17 @@ ] }, "ChildMetadata": { - "$id": "267", + "$id": "301", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "268", + "$id": "302", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "269", + "$id": "303", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1475,7 +1695,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "270", + "$id": "304", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1488,69 +1708,76 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "271", + "$id": "305", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "306", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "306" + }, "Metadata": { - "$id": "272", + "$id": "307", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "273", + "$id": "308", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "274", + "$id": "309", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", - "selected": 0 + "selected": 1 } } } } }, { - "$id": "275", + "$id": "310", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "276", + "$id": "311", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1757.6, "y": 0.0 - } + }, + "StepType": "default", + "Guid": "f43dcb9b-4f35-4564-b833-a3736186b785" }, "Data": { - "$id": "277", + "$id": "312", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "End", "Description": null, "Behaviors": { - "$id": "278", + "$id": "313", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "279", + "$id": "314", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "280", + "$id": "315", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "281", + "$id": "316", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "282", + "$id": "317", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "283", + "$id": "318", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", - "Text": "That's enough. This concludes this demo process. Feel free to check our the workflow editor to see how the process was built and look at the referenced objects to learn about their configuration." + "Text": "That's enough. This concludes this demo process. Feel free to check our the process editor to see how the process was built and look at the referenced objects to learn about their configuration." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": true } } @@ -1559,23 +1786,23 @@ } }, "Transitions": { - "$id": "284", + "$id": "319", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "285", + "$id": "320", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "286", + "$id": "321", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "287", + "$id": "322", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "288", + "$id": "323", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "289", + "$id": "324", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [] }, @@ -1589,21 +1816,27 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "290", + "$id": "325", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "326", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, + "GroupsToUnlock": { + "$ref": "326" + }, "Metadata": { - "$id": "291", + "$id": "327", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "292", + "$id": "328", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "293", + "$id": "329", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -1614,67 +1847,72 @@ ] }, "Process": { - "$id": "294", + "$id": "330", "$type": "VRBuilder.Core.Process, VRBuilder.Core", "CurrentStep": null, + "ProcessMetadata": { + "$id": "331", + "$type": "VRBuilder.Core.ProcessMetadata, VRBuilder.Core", + "StringLocalizationTable": null, + "Guid": "7ac84a6b-1821-4238-8888-36c14aac504a" + }, "Data": { - "$id": "295", + "$id": "332", "$type": "VRBuilder.Core.Process+EntityData, VRBuilder.Core", "Chapters": { - "$id": "296", + "$id": "333", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IChapter, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "297", + "$id": "334", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "298", + "$id": "335", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "275" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": -274.4, "y": 0.0 - } + }, + "Guid": "8d32cd77-a14e-4230-b8d9-d31acbcfa6cf" }, "Data": { - "$id": "299", + "$id": "336", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "Chapter 1", "FirstStep": { - "$ref": "3" + "$ref": "4" }, "Steps": { - "$id": "300", + "$id": "337", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "3" + "$ref": "4" }, { - "$ref": "38" + "$ref": "43" }, { - "$ref": "70" + "$ref": "79" }, { - "$ref": "105" + "$ref": "118" }, { - "$ref": "138" + "$ref": "157" }, { - "$ref": "170" + "$ref": "193" }, { - "$ref": "205" + "$ref": "232" }, { - "$ref": "240" + "$ref": "271" }, { - "$ref": "275" + "$ref": "310" } ] } @@ -1683,13 +1921,12 @@ ] }, "FirstChapter": { - "$ref": "297" + "$ref": "334" }, - "Current": null, "Name": "Demo - VRIF Integration", "Mode": null, "Metadata": null } }, - "$serializerVersion": 2 + "$serializerVersion": 4 } \ No newline at end of file diff --git a/Documentation/vrif-integration-manual.md b/Documentation/vrif-integration-manual.md index 3a90791..e3f1056 100644 --- a/Documentation/vrif-integration-manual.md +++ b/Documentation/vrif-integration-manual.md @@ -1,20 +1,24 @@ # VRIF Interaction Component for VR Builder ## Table of Contents -1. [Introduction](#introduction) -1. [Installation](#installation) +- [VRIF Interaction Component for VR Builder](#vrif-interaction-component-for-vr-builder) + - [Table of Contents](#table-of-contents) + - [Introduction](#introduction) + - [Installation](#installation) - [Requirements](#requirements) - [How to Install](#how-to-install) -1. [Quick Start](#quick-start) -1. [Differences from XRIT](#differences-from-xrit) -1. [Properties](#data-properties) + - [Quick Start](#quick-start) + - [Differences from XRIT](#differences-from-xrit) + - [Properties](#properties) - [Grabbable Property](#grabbable-property) - [Touchable Property](#touchable-property) - [Usable Property](#usable-property) - [Snappable/Snap Zone Property](#snappablesnap-zone-property) - [Lever/Wheel Property](#leverwheel-property) -1. [Check Control Position Condition](#check-control-position-condition) -1. [Contact](#contact) + - [Check Control Position Condition](#check-control-position-condition) + - [Description](#description) + - [Configuration](#configuration) + - [Contact](#contact) ## Introduction @@ -23,7 +27,7 @@ VR Builder is a tool for quickly creating sequential interactive processes, like ## Installation ### Requirements -- This add-on requires VR Builder version 3.0.0 or later to work. +- This add-on requires VR Builder version 4.0.0 or later to work. - This add-on is based on VRIF 2.0. Earlier versions might work, but they are untested. ### How to Install diff --git a/Documentation/vrif-integration-manual.pdf b/Documentation/vrif-integration-manual.pdf index ef69d89..b882c1a 100644 Binary files a/Documentation/vrif-integration-manual.pdf and b/Documentation/vrif-integration-manual.pdf differ diff --git a/Source/Runtime/Conditions/CheckControlPositionCondition.cs b/Source/Runtime/Conditions/CheckControlPositionCondition.cs index 52b6346..7a9909e 100644 --- a/Source/Runtime/Conditions/CheckControlPositionCondition.cs +++ b/Source/Runtime/Conditions/CheckControlPositionCondition.cs @@ -1,3 +1,4 @@ +using System; using System.Runtime.Serialization; using UnityEngine; using VRBuilder.Core; @@ -20,6 +21,12 @@ public class EntityData : IConditionData { [DataMember] [DisplayName("Control")] + public SingleScenePropertyReference ContinuousControl { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use ContinuousControl instead.")] + [LegacyProperty(nameof(ContinuousControl))] public ScenePropertyReference ControlProperty { get; set; } [DataMember] @@ -38,7 +45,7 @@ public class EntityData : IConditionData [DataMember] [HideInProcessInspector] - public string Name { get; set; } + public string Name => $"Set {ContinuousControl} between {MinPosition} and {MaxPosition}"; public Metadata Metadata { get; set; } } @@ -51,7 +58,7 @@ public EntityAutocompleter(EntityData data) : base(data) public override void Complete() { - Data.ControlProperty.Value.FastForwardPosition(Data.MinPosition + (Data.MaxPosition - Data.MinPosition) / 2); + Data.ContinuousControl.Value.FastForwardPosition(Data.MinPosition + (Data.MaxPosition - Data.MinPosition) / 2); } } @@ -59,17 +66,17 @@ private class ActiveProcess : BaseActiveProcessOverCompletable { protected override bool CheckIfCompleted() { - if(Data.MinPosition > Data.MaxPosition) + if (Data.MinPosition > Data.MaxPosition) { - Debug.LogError($"{typeof(CheckControlPositionCondition).Name} for object {Data.ControlProperty.UniqueName} will never complete as the minimum value is greater than the maximum value."); + Debug.LogError($"{typeof(CheckControlPositionCondition).Name} for object {Data.ContinuousControl} will never complete as the minimum value is greater than the maximum value."); } - if(Data.RequireRelease && Data.ControlProperty.Value.IsInteracting) + if (Data.RequireRelease && Data.ContinuousControl.Value.IsInteracting) { return false; } - return Data.ControlProperty.Value.Position >= Data.MinPosition && Data.ControlProperty.Value.Position <= Data.MaxPosition; + return Data.ContinuousControl.Value.Position >= Data.MinPosition && Data.ContinuousControl.Value.Position <= Data.MaxPosition; } public ActiveProcess(EntityData data) : base(data) @@ -77,21 +84,20 @@ public ActiveProcess(EntityData data) : base(data) } } - public CheckControlPositionCondition() : this("") + public CheckControlPositionCondition() : this(Guid.Empty) { } - public CheckControlPositionCondition(IContinuousControlProperty control, float minPosition, float maxPosition, bool requireRelease = false, string name = null) : this(ProcessReferenceUtils.GetNameFrom(control), minPosition, maxPosition, requireRelease, name) + public CheckControlPositionCondition(IContinuousControlProperty control, float minPosition, float maxPosition, bool requireRelease = false) : this(ProcessReferenceUtils.GetUniqueIdFrom(control), minPosition, maxPosition, requireRelease) { } - public CheckControlPositionCondition(string controlName, float minPosition = 0, float maxPosition = 1, bool requireRelease = false, string name = "Check Control Position") + public CheckControlPositionCondition(Guid control, float minPosition = 0, float maxPosition = 1, bool requireRelease = false) { - Data.ControlProperty = new ScenePropertyReference(controlName); + Data.ContinuousControl = new SingleScenePropertyReference(control); Data.MinPosition = minPosition; Data.MaxPosition = maxPosition; Data.RequireRelease = requireRelease; - Data.Name = name; } public override IStageProcess GetActiveProcess() diff --git a/Source/Runtime/Properties/SnapZoneProperty.cs b/Source/Runtime/Properties/SnapZoneProperty.cs index 7558509..d0000b7 100644 --- a/Source/Runtime/Properties/SnapZoneProperty.cs +++ b/Source/Runtime/Properties/SnapZoneProperty.cs @@ -31,7 +31,7 @@ protected SnapZone SnapZone { get { - if(snapZone == null) + if (snapZone == null) { snapZone = GetComponent(); } @@ -80,7 +80,7 @@ private void HandleSnapped(Grabbable grabbable) SnappedObject = grabbable.GetComponent(); if (SnappedObject == null) { - Debug.LogWarning($"SnapZone '{SceneObject.UniqueName}' received snap from object '{grabbable.gameObject.name}' without {typeof(SnappableProperty).Name}"); + Debug.LogWarning($"SnapZone '{SceneObject.GameObject.name}' received snap from object '{grabbable.gameObject.name}' without {typeof(SnappableProperty).Name}"); } else { @@ -116,7 +116,7 @@ protected void EmitUnsnapped() } public void Configure(IMode mode) - { + { } protected override void InternalSetLocked(bool lockState) diff --git a/Source/Runtime/Properties/SnappableProperty.cs b/Source/Runtime/Properties/SnappableProperty.cs index 8ec11de..e0ff033 100644 --- a/Source/Runtime/Properties/SnappableProperty.cs +++ b/Source/Runtime/Properties/SnappableProperty.cs @@ -27,7 +27,7 @@ public class SnappableProperty : LockableProperty, ISnappableProperty /// The grabbable property on this game object. /// protected GrabbableProperty GrabbableProperty - { + { get { if (grabbableProperty == null) @@ -37,8 +37,8 @@ protected GrabbableProperty GrabbableProperty return grabbableProperty; } - } - + } + /// public bool LockObjectOnSnap { get; set; } @@ -82,10 +82,10 @@ private void HandleUnsnapped() private void HandleSnapped() { Transform parent = transform.parent; - - if(parent == null) + + if (parent == null) { - Debug.LogError($"Object {SceneObject.UniqueName} should be snapped but is not child object."); + Debug.LogError($"Object {SceneObject.GameObject.name} should be snapped but is not child object."); return; } @@ -93,7 +93,7 @@ private void HandleSnapped() if (snapZone == null) { - Debug.LogWarning($"Object {SceneObject.UniqueName} has been snapped to a snap zone without a {typeof(SnapZoneProperty).Name}. The VR Builder process will not see the object as snapped."); + Debug.LogWarning($"Object {SceneObject.GameObject.name} has been snapped to a snap zone without a {typeof(SnapZoneProperty).Name}. The VR Builder process will not see the object as snapped."); return; }