mirror of
https://udrimavric.com/MAVRIC/Stratasys-450mc-VR.git
synced 2025-01-22 07:09:01 -05:00
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:
commit
7e5276463f
BIN
Assets/Models/Fortus Canister/Model/CanisterTape.fbx
(Stored with Git LFS)
Normal file
BIN
Assets/Models/Fortus Canister/Model/CanisterTape.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
109
Assets/Models/Fortus Canister/Model/CanisterTape.fbx.meta
Normal file
109
Assets/Models/Fortus Canister/Model/CanisterTape.fbx.meta
Normal 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:
|
63
Assets/Models/Fortus Canister/Model/CanisterTape.prefab
Normal file
63
Assets/Models/Fortus Canister/Model/CanisterTape.prefab
Normal 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}
|
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f47e590eb2fa144a9c6a414e189d8ec
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -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
@ -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:
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
8
Assets/Scripts/Interactions/Filters.meta
Normal file
8
Assets/Scripts/Interactions/Filters.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a25fbf4948e15af418ab70ce0fcfcaba
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
89
Assets/Scripts/Interactions/Filters/XRInteractableFilter.cs
Normal file
89
Assets/Scripts/Interactions/Filters/XRInteractableFilter.cs
Normal 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
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 09d904c9a3326044c90622d5ef2ec522
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
91
Assets/Scripts/Interactions/Filters/XRSocketFilter.cs
Normal file
91
Assets/Scripts/Interactions/Filters/XRSocketFilter.cs
Normal 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
|
||||
}
|
||||
}
|
11
Assets/Scripts/Interactions/Filters/XRSocketFilter.cs.meta
Normal file
11
Assets/Scripts/Interactions/Filters/XRSocketFilter.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00595e96a5ebe674fa2da9cf41a3c0f7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
44
Assets/Scripts/Interactions/LockingInteractable.cs
Normal file
44
Assets/Scripts/Interactions/LockingInteractable.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
3
Assets/Scripts/Interactions/LockingInteractable.cs.meta
Normal file
3
Assets/Scripts/Interactions/LockingInteractable.cs.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 79c13d866a814d78bf9e6570a81d3f46
|
||||
timeCreated: 1699314667
|
70
Assets/Scripts/Interactions/ManualInteractionEvents.cs
Normal file
70
Assets/Scripts/Interactions/ManualInteractionEvents.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Interactions/ManualInteractionEvents.cs.meta
Normal file
11
Assets/Scripts/Interactions/ManualInteractionEvents.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 426bd03eda44ac347a42a48fdf9a1341
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
45
Assets/Scripts/Listeners/StepChannelListener.cs
Normal file
45
Assets/Scripts/Listeners/StepChannelListener.cs
Normal 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);
|
||||
}
|
||||
}
|
13
Assets/Scripts/Listeners/StepChannelListener.cs.meta
Normal file
13
Assets/Scripts/Listeners/StepChannelListener.cs.meta
Normal 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:
|
@ -1,14 +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: PreviousStepChannel
|
||||
m_EditorClassIdentifier:
|
||||
%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: PreviousStepChannel
|
||||
m_EditorClassIdentifier:
|
||||
|
8
Assets/Scripts/SO Data/Channels/States/OnComplete.meta
Normal file
8
Assets/Scripts/SO Data/Channels/States/OnComplete.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6451fbea9aa59ca4bbc775f7435cbc7c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78770a9efddde154095e9292abfe87bf
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5fb97b32f7bc3104b8970ee3b855e3fe
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 546202cfa84a1fd469e28103b2ea9e82
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 54702ecabe2d19947a88e71cc94732cc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a50eda04e9496cb40bc1fa6a5e92db9a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1a50509a12c0464b9a0c51a420eedf0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83169d82db9665741b22501e0b124843
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d35664db79331fc4e9c60017c63670d8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fefb0cfdb21b525479a81eecc6abf003
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f3b5cd74e7d3317449b8f4e62466aa5c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4e35c8151d7335849a1a056996fa1a37
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe96a5f4be50e96429a11f02ae8d95e1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 596c4fb03be086e4b97a3a7559a4ace4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,13 +14,13 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
m_LayerNames:
|
||||
- Default
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
- FlipArm
|
||||
- Plug
|
||||
- Tape
|
||||
- Clip
|
||||
- FlipArmPadPullOut
|
||||
- Locked
|
||||
- Unlocked
|
||||
-
|
||||
-
|
||||
-
|
||||
|
Loading…
Reference in New Issue
Block a user