Merge pull request 'MAVRIC-2175: Sockets and Interactables' (#11) from feature/MAVRIC-2175_Socket-Complete-Step into development

Reviewed-on: http://104.1.10.149:3000/MAVRIC/Stratasys-450mc-VR/pulls/11
This commit is contained in:
Joshua Latham 2023-11-08 02:52:42 +00:00
commit 7e5276463f
47 changed files with 7254 additions and 104 deletions

BIN
Assets/Models/Fortus Canister/Model/CanisterTape.fbx (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,109 @@
fileFormatVersion: 2
guid: 153511fbcba98f74d9ff5c476b31ed9e
ModelImporter:
serializedVersion: 22200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 0.1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 0
importBlendShapes: 0
importCameras: 0
importLights: 0
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 0
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 0.1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 0
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,63 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &8110114255918648719
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071067
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -7511558181221131132, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 253ad6941df254150874ec0bb9fa269b, type: 2}
- target: {fileID: 919132149155446097, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}
propertyPath: m_Name
value: CanisterTape
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 153511fbcba98f74d9ff5c476b31ed9e, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1f47e590eb2fa144a9c6a414e189d8ec
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -919,6 +919,7 @@ GameObject:
- component: {fileID: 8801511750272889294}
- component: {fileID: 8968831067221612345}
- component: {fileID: 5120842126136810086}
- component: {fileID: 5283149584349960253}
m_Layer: 0
m_Name: Video
m_TagString: Untagged
@ -980,6 +981,20 @@ MonoBehaviour:
y: 0
width: 1
height: 1
--- !u!114 &5283149584349960253
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6425093103385875613}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3}
m_Name:
m_EditorClassIdentifier:
m_AspectMode: 3
m_AspectRatio: 1.7777778
--- !u!1 &6555537633652659965
GameObject:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

@ -92,7 +92,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &4511161329263451975
RectTransform:
m_ObjectHideFlags: 0
@ -187,6 +187,7 @@ RectTransform:
m_Children:
- {fileID: 4511161329263451975}
- {fileID: 8385248346746893682}
- {fileID: 443341572928742100}
m_Father: {fileID: 922321810071726470}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@ -245,6 +246,140 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &3766939818792708032
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 443341572928742100}
- component: {fileID: 5372381641711497685}
- component: {fileID: 2744076953404010343}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &443341572928742100
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3766939818792708032}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6549269621878670052}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5372381641711497685
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3766939818792708032}
m_CullTransparentMesh: 1
--- !u!114 &2744076953404010343
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3766939818792708032}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Next
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 16
m_fontSizeBase: 16
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4323489679071539380
GameObject:
m_ObjectHideFlags: 0
@ -488,7 +623,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1080, y: 920}
m_SizeDelta: {x: 125, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &5152353046531303230
Canvas:

View File

@ -38,7 +38,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1080, y: 920}
m_SizeDelta: {x: 125, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &2910802714526350162
Canvas:
@ -432,7 +432,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &8994394839035763704
RectTransform:
m_ObjectHideFlags: 0
@ -527,6 +527,7 @@ RectTransform:
m_Children:
- {fileID: 8994394839035763704}
- {fileID: 3897370497677586893}
- {fileID: 3856213020574536911}
m_Father: {fileID: 5657895439849286969}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@ -585,3 +586,137 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &8434746410029166534
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3856213020574536911}
- component: {fileID: 2411468913442717124}
- component: {fileID: 5845010832612405794}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3856213020574536911
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8434746410029166534}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1777779622553486939}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2411468913442717124
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8434746410029166534}
m_CullTransparentMesh: 1
--- !u!114 &5845010832612405794
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8434746410029166534}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Reset
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 16
m_fontSizeBase: 16
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

@ -185,6 +185,91 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5e629b36dd520da42a7d3b0c54050ea4, type: 3}
--- !u!1001 &1537653302
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalPosition.x
value: -1.6339
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalPosition.y
value: 1.2313
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalPosition.z
value: 2.6381
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_Name
value: Push Button
objectReference: {fileID: 0}
- target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 11400000, guid: 648f6d9dcf9343447b8eac905a58a9f2, type: 2}
- target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: RaiseEvent
objectReference: {fileID: 0}
- target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: SO.Channels.SimpleChannelSO, Assembly-CSharp
objectReference: {fileID: 0}
- target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3}
--- !u!1001 &1835422393
PrefabInstance:
m_ObjectHideFlags: 0
@ -843,7 +928,7 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 2232222763306151469, guid: 264e5f04d776bce4fba764d0f71070e6, type: 3}
propertyPath: m_LocalPosition.x
value: 0
value: -1.015
objectReference: {fileID: 0}
- target: {fileID: 2232222763306151469, guid: 264e5f04d776bce4fba764d0f71070e6, type: 3}
propertyPath: m_LocalPosition.y
@ -851,7 +936,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2232222763306151469, guid: 264e5f04d776bce4fba764d0f71070e6, type: 3}
propertyPath: m_LocalPosition.z
value: 0
value: 2.183
objectReference: {fileID: 0}
- target: {fileID: 2232222763306151469, guid: 264e5f04d776bce4fba764d0f71070e6, type: 3}
propertyPath: m_LocalRotation.w
@ -901,3 +986,4 @@ SceneRoots:
- {fileID: 7987195067118194837}
- {fileID: 5912600794632349664}
- {fileID: 1520454031}
- {fileID: 1537653302}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a25fbf4948e15af418ab70ce0fcfcaba
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,89 @@
/// Traken from https://forum.unity.com/threads/how-to-prevent-interactable-from-being-selected-while-in-socket.1317246/#post-9101254
using UnityEngine.Assertions;
namespace UnityEngine.XR.Interaction.Toolkit.Filtering
{
[DisallowMultipleComponent]
public class XRInteractableFilter : MonoBehaviour, IXRHoverFilter, IXRSelectFilter
{
#region Fields
[Tooltip("The interactor that this filter is associated with. If none, will attempt to find on self.")]
[SerializeField]
private XRBaseInteractable interactable;
[SerializeField]
private bool m_locked = false;
#endregion
#region Properties
public bool locked { get => m_locked; set => m_locked = value; }
public bool canProcess => true;
#endregion
#region Methods
private void Awake()
{
interactable = interactable ? interactable : GetComponent<XRBaseInteractable>();
Assert.IsNotNull(interactable);
}
private void OnEnable()
{
interactable.selectEntered.AddListener(Socket_SelectEntered);
interactable.selectExited.AddListener(Socket_SelectExited);
}
private void OnDisable()
{
interactable.selectEntered.RemoveListener(Socket_SelectEntered);
interactable.selectExited.RemoveListener(Socket_SelectExited);
}
private void Socket_SelectEntered(SelectEnterEventArgs e)
{
if (interactable == null)
return;
// Add filter to interactable
interactable.hoverFilters.Add(this);
interactable.selectFilters.Add(this);
}
private void Socket_SelectExited(SelectExitEventArgs e)
{
if (interactable == null)
return;
// Remove filter from interactable
interactable.hoverFilters.Remove(this);
interactable.selectFilters.Remove(this);
}
public bool Process(IXRHoverInteractor interactor, IXRHoverInteractable interactable)
{
return Process();
}
public bool Process(IXRSelectInteractor interactor, IXRSelectInteractable interactable)
{
return Process();
}
private bool Process()
{
if (interactable == null)
return false;
return !m_locked;
}
#endregion
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 09d904c9a3326044c90622d5ef2ec522
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,91 @@
/// Traken from https://forum.unity.com/threads/how-to-prevent-interactable-from-being-selected-while-in-socket.1317246/#post-9101254
using UnityEngine.Assertions;
namespace UnityEngine.XR.Interaction.Toolkit.Filtering
{
[DisallowMultipleComponent]
public class XRSocketInteractorFilter : MonoBehaviour, IXRHoverFilter, IXRSelectFilter
{
#region Fields
[Tooltip("The interactor that this filter is associated with. If none, will attempt to find on self.")]
[SerializeField]
private XRSocketInteractor m_interactor;
[SerializeField]
private bool m_locked = false;
#endregion
#region Properties
public bool locked { get => m_locked; set => m_locked = value; }
public bool canProcess => true;
#endregion
#region Methods
private void Awake()
{
m_interactor = m_interactor ? m_interactor : GetComponent<XRSocketInteractor>();
Assert.IsNotNull(m_interactor);
}
private void OnEnable()
{
m_interactor.selectEntered.AddListener(Socket_SelectEntered);
m_interactor.selectExited.AddListener(Socket_SelectExited);
}
private void OnDisable()
{
m_interactor.selectEntered.RemoveListener(Socket_SelectEntered);
m_interactor.selectExited.RemoveListener(Socket_SelectExited);
}
private void Socket_SelectEntered(SelectEnterEventArgs e)
{
var interactable = e.interactableObject.transform.GetComponent<XRBaseInteractable>();
if (interactable == null)
return;
// Add filter to interactable
interactable.hoverFilters.Add(this);
interactable.selectFilters.Add(this);
}
private void Socket_SelectExited(SelectExitEventArgs e)
{
var interactable = e.interactableObject.transform.GetComponent<XRBaseInteractable>();
if (interactable == null)
return;
// Remove filter from interactable
interactable.hoverFilters.Remove(this);
interactable.selectFilters.Remove(this);
}
public bool Process(IXRHoverInteractor interactor, IXRHoverInteractable interactable)
{
return Process();
}
public bool Process(IXRSelectInteractor interactor, IXRSelectInteractable interactable)
{
return Process();
}
private bool Process()
{
if (m_interactor == null)
return false;
return !m_locked;
}
#endregion
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 00595e96a5ebe674fa2da9cf41a3c0f7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,44 @@
using System;
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;
namespace Interactions
{
[DisallowMultipleComponent]
[RequireComponent(typeof(XRGrabInteractable))]
public class LockingInteractable : MonoBehaviour
{
[SerializeField] private InteractionLayerMask unlockedLayer;
[SerializeField] private bool isLocked = false;
private XRGrabInteractable grabInteractable;
public bool IsLocked => isLocked;
private void OnEnable()
{
TryGetComponent(out grabInteractable);
if (isLocked)
{
Lock();
return;
}
Unlock();
}
public void Unlock()
{
// Add the unlocked layer to the interaction layer mask
grabInteractable.interactionLayerMask |= unlockedLayer;
isLocked = false;
}
public void Lock()
{
// Remove the unlocked layer from the interaction layer mask
grabInteractable.interactionLayerMask &= ~unlockedLayer;
isLocked = true;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 79c13d866a814d78bf9e6570a81d3f46
timeCreated: 1699314667

View File

@ -0,0 +1,70 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.XR.Interaction.Toolkit;
public class ManualInteractionEvents : MonoBehaviour
{
[SerializeField] private XRSocketInteractor interactor;
[SerializeField] private HoverEnterEvent onHoverEnter;
[SerializeField] private HoverExitEvent onHoverExit;
[SerializeField] private SelectEnterEvent onSelectEnter;
[SerializeField] private SelectExitEvent onSelectExit;
public void AddListeners()
{
if (interactor == null) return;
Debug.Log($"Adding listeners to {interactor.name}");
if (onHoverEnter.GetPersistentEventCount() > 0)
{
interactor.hoverEntered.AddListener(onHoverEnter.Invoke);
}
if (onHoverExit.GetPersistentEventCount() > 0)
{
interactor.hoverExited.AddListener(onHoverExit.Invoke);
}
if (onSelectEnter.GetPersistentEventCount() > 0)
{
interactor.selectEntered.AddListener(onSelectEnter.Invoke);
}
if (onSelectExit.GetPersistentEventCount() > 0)
{
interactor.selectExited.AddListener(onSelectExit.Invoke);
}
}
public void RemoveListeners()
{
if (interactor == null) return;
Debug.Log($"Removing listeners from {interactor.name}");
if (onHoverEnter != null && onHoverEnter.GetPersistentEventCount() > 0)
{
interactor.hoverEntered.RemoveListener(onHoverEnter.Invoke);
}
if (onHoverExit != null && onHoverExit.GetPersistentEventCount() > 0)
{
interactor.hoverExited.RemoveListener(onHoverExit.Invoke);
}
if (onSelectEnter != null && onSelectEnter.GetPersistentEventCount() > 0)
{
interactor.selectEntered.RemoveListener(onSelectEnter.Invoke);
}
if (onSelectExit != null && onSelectExit.GetPersistentEventCount() > 0)
{
interactor.selectExited.RemoveListener(onSelectExit.Invoke);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 426bd03eda44ac347a42a48fdf9a1341
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,45 @@
using System.Collections;
using System.Collections.Generic;
using SO;
using SO.Channels;
using UnityEngine;
using UnityEngine.Events;
public class StepChannelListener : MonoBehaviour
{
[SerializeField, TextArea] private string description;
[SerializeField] private StepChangeChannelSO channel;
[SerializeField] private StepSO focusStep;
[SerializeField] private UnityEvent<StepSO> focusResponse;
private void OnEnable()
{
if (channel == null)
{
Debug.LogError("No channel found for CurrentStepChannelListener");
return;
}
channel.OnStepChanged += Invoke;
}
private void OnDisable()
{
if (channel == null)
{
Debug.LogError("No channel found for CurrentStepChannelListener");
return;
}
channel.OnStepChanged -= Invoke;
}
private void Invoke(StepSO step)
{
if (step == null || !step.Equals(focusStep)) return;
focusResponse?.Invoke(step);
}
}

View File

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 9b475c9cc9b3efa4a8b68f22256096d6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- channel: {fileID: 11400000, guid: d1c3fee5a7e29bf49b295b270071caac, type: 2}
- focusStep: {instanceID: 0}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6451fbea9aa59ca4bbc775f7435cbc7c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 78770a9efddde154095e9292abfe87bf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_RemoveCap
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5fb97b32f7bc3104b8970ee3b855e3fe
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 546202cfa84a1fd469e28103b2ea9e82
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_FlipArmClosed
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 54702ecabe2d19947a88e71cc94732cc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_FlipArmOpen
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a50eda04e9496cb40bc1fa6a5e92db9a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b1a50509a12c0464b9a0c51a420eedf0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_MovePatch
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 83169d82db9665741b22501e0b124843
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_RemovePatch
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d35664db79331fc4e9c60017c63670d8
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fefb0cfdb21b525479a81eecc6abf003
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_RemovePlug
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f3b5cd74e7d3317449b8f4e62466aa5c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4e35c8151d7335849a1a056996fa1a37
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_PeelTape
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fe96a5f4be50e96429a11f02ae8d95e1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cacf97afa8ecd4b9be403677b76e4e, type: 3}
m_Name: OnComplete_ReplaceTape
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 596c4fb03be086e4b97a3a7559a4ace4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,3 +1,4 @@
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.Events;
@ -6,11 +7,13 @@ namespace SO.Channels
[CreateAssetMenu(menuName = "Channel/StepChangeChannelSO")]
public class StepChangeChannelSO : ScriptableObject
{
[SerializeField, ReadOnly] private StepSO currentStep;
public UnityAction<StepSO> OnStepChanged;
public void RaiseEvent(StepSO step)
{
OnStepChanged?.Invoke(step);
OnStepChanged?.Invoke(currentStep = step);
}
}
}

View File

@ -1,3 +1,5 @@
using System;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.Video;
@ -6,6 +8,7 @@ namespace SO
[CreateAssetMenu(menuName = "Definitions/StepSO")]
public class StepSO : ScriptableObject
{
[SerializeField, ReadOnly] private string guid = System.Guid.NewGuid().ToString();
[SerializeField] private string stepName;
[SerializeField] private string description;
[SerializeField] private Texture document;
@ -19,5 +22,12 @@ namespace SO
public AnimationClip Animation => animationClip;
public AnimationClip GuideClip => guideClip;
public VideoClip Video => video;
public override bool Equals(object other)
{
if (other == null) return false;
if (other.GetType() != typeof(StepSO)) return false;
return ((StepSO)other).guid.Equals(guid, StringComparison.InvariantCultureIgnoreCase);
}
}
}

View File

@ -14,13 +14,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_LayerNames:
- Default
-
-
-
-
-
-
-
- FlipArm
- Plug
- Tape
- Clip
- FlipArmPadPullOut
- Locked
- Unlocked
-
-
-