forked from cgvr/DeltaVR
deltavr multiplayer 2.0
This commit is contained in:
8
Assets/XRI_Examples/Setup/Models.meta
Normal file
8
Assets/XRI_Examples/Setup/Models.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab9e53dcd89bd2c49b3a52b371dce816
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/XRI_Examples/Setup/Models/LocomotionTable.fbx
LFS
Normal file
BIN
Assets/XRI_Examples/Setup/Models/LocomotionTable.fbx
LFS
Normal file
Binary file not shown.
102
Assets/XRI_Examples/Setup/Models/LocomotionTable.fbx.meta
Normal file
102
Assets/XRI_Examples/Setup/Models/LocomotionTable.fbx.meta
Normal file
@@ -0,0 +1,102 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e036dba5a6004e84c933fea5c510aa33
|
||||
ModelImporter:
|
||||
serializedVersion: 20200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 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: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
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: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/XRI_Examples/Setup/Prefabs.meta
Normal file
8
Assets/XRI_Examples/Setup/Prefabs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0149119fce617e34fa6551aa58838e35
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8783
Assets/XRI_Examples/Setup/Prefabs/LocomotionSettings.prefab
Normal file
8783
Assets/XRI_Examples/Setup/Prefabs/LocomotionSettings.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 11d9c2d4a31153d48871dba786324550
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
468
Assets/XRI_Examples/Setup/Prefabs/LocomotionTable.prefab
Normal file
468
Assets/XRI_Examples/Setup/Prefabs/LocomotionTable.prefab
Normal file
@@ -0,0 +1,468 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1094996847
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1094996848}
|
||||
- component: {fileID: 1094996851}
|
||||
- component: {fileID: 1094996849}
|
||||
m_Layer: 0
|
||||
m_Name: Table Center
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 65
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1094996848
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1094996847}
|
||||
m_LocalRotation: {x: 0.38268337, y: 0.0000014042215, z: -0.00000058164756, w: 0.9238796}
|
||||
m_LocalPosition: {x: 0, y: 0.8877, z: 0.0459}
|
||||
m_LocalScale: {x: 1.000001, y: 0.12457039, z: 0.80550796}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1970400548}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1094996851
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1094996847}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!65 &1094996849
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1094996847}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1970400547
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1970400548}
|
||||
m_Layer: 0
|
||||
m_Name: Collision
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1970400548
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1970400547}
|
||||
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_Children:
|
||||
- {fileID: 7308607476931306224}
|
||||
- {fileID: 5678379014399711720}
|
||||
- {fileID: 3433210013781571556}
|
||||
- {fileID: 6848374802176725955}
|
||||
- {fileID: 2009002579}
|
||||
- {fileID: 1094996848}
|
||||
m_Father: {fileID: 6590299458507356306}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2009002578
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2009002579}
|
||||
- component: {fileID: 2009002582}
|
||||
- component: {fileID: 2009002580}
|
||||
m_Layer: 0
|
||||
m_Name: Table Sides
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 65
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2009002579
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2009002578}
|
||||
m_LocalRotation: {x: 0.38268337, y: 0.0000014042215, z: -0.00000058164756, w: 0.9238796}
|
||||
m_LocalPosition: {x: -0, y: 0.8217, z: 0.0347}
|
||||
m_LocalScale: {x: 2.5000012, y: 0.119087875, z: 0.7872326}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1970400548}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &2009002582
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2009002578}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!65 &2009002580
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2009002578}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1458097889261463903
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7308607476931306224}
|
||||
- component: {fileID: 2564774388506534721}
|
||||
- component: {fileID: 5869610997702573524}
|
||||
m_Layer: 0
|
||||
m_Name: Left Back Leg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7308607476931306224
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1458097889261463903}
|
||||
m_LocalRotation: {x: -0.000000015454335, y: -0.70710576, z: 0.000000015454292, w: 0.7071079}
|
||||
m_LocalPosition: {x: 0.9284, y: 0.5004, z: -0.1719}
|
||||
m_LocalScale: {x: 0.109750666, y: 1, z: 0.31491178}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1970400548}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &2564774388506534721
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1458097889261463903}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!65 &5869610997702573524
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1458097889261463903}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &3340271314665920620
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6848374802176725955}
|
||||
- component: {fileID: 1869235641528111730}
|
||||
- component: {fileID: 7715298675797413095}
|
||||
m_Layer: 0
|
||||
m_Name: Right Front Leg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6848374802176725955
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3340271314665920620}
|
||||
m_LocalRotation: {x: -0.000000015454335, y: -0.70710576, z: 0.000000015454292, w: 0.7071079}
|
||||
m_LocalPosition: {x: -0.9284, y: 0.322, z: 0.1719}
|
||||
m_LocalScale: {x: 0.109750666, y: 0.6432446, z: 0.31491208}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1970400548}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1869235641528111730
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3340271314665920620}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!65 &7715298675797413095
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3340271314665920620}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &4583802583218377287
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5678379014399711720}
|
||||
- component: {fileID: 591991149898586201}
|
||||
- component: {fileID: 8851201083269924556}
|
||||
m_Layer: 0
|
||||
m_Name: Right Back Leg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5678379014399711720
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4583802583218377287}
|
||||
m_LocalRotation: {x: -0.000000015454335, y: -0.70710576, z: 0.000000015454292, w: 0.7071079}
|
||||
m_LocalPosition: {x: -0.9284, y: 0.5004, z: -0.1719}
|
||||
m_LocalScale: {x: 0.109750666, y: 1, z: 0.31491178}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1970400548}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &591991149898586201
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4583802583218377287}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!65 &8851201083269924556
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4583802583218377287}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &5559436662704848902
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6590299458507356306}
|
||||
m_Layer: 0
|
||||
m_Name: LocomotionTable
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6590299458507356306
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5559436662704848902}
|
||||
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_Children:
|
||||
- {fileID: 4019229809371573268}
|
||||
- {fileID: 1970400548}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &6842201315543596107
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3433210013781571556}
|
||||
- component: {fileID: 7592995450168358485}
|
||||
- component: {fileID: 1998852270813030592}
|
||||
m_Layer: 0
|
||||
m_Name: Left Back Leg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3433210013781571556
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6842201315543596107}
|
||||
m_LocalRotation: {x: -0.000000015454335, y: -0.70710576, z: 0.000000015454292, w: 0.7071079}
|
||||
m_LocalPosition: {x: 0.9284, y: 0.322, z: 0.1719}
|
||||
m_LocalScale: {x: 0.109750666, y: 0.6432446, z: 0.31491208}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1970400548}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &7592995450168358485
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6842201315543596107}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!65 &1998852270813030592
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6842201315543596107}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &3480602236331854847
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 6590299458507356306}
|
||||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 90.00001
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -7511558181221131132, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: c8950304eea7f334dab6991341a45115, type: 2}
|
||||
- target: {fileID: 919132149155446097, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: LocomotionTable Visuals
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: e036dba5a6004e84c933fea5c510aa33, type: 3}
|
||||
--- !u!4 &4019229809371573268 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e036dba5a6004e84c933fea5c510aa33,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3480602236331854847}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a18a9ce135199bf4eb7814a44fc1d6d5
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/XRI_Examples/Setup/Scripts.meta
Normal file
8
Assets/XRI_Examples/Setup/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e81a27a6e2a77c149b3211c1a3070a51
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,36 @@
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
namespace UnityEngine.XR.Content.Interaction
|
||||
{
|
||||
public class DistanceCalculationToggle : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
Toggle m_Toggle;
|
||||
|
||||
[SerializeField]
|
||||
XRBaseInteractable[] m_Interactables;
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (m_Toggle == null)
|
||||
return;
|
||||
|
||||
OnToggleValueChanged(m_Toggle.isOn);
|
||||
m_Toggle.onValueChanged.AddListener(OnToggleValueChanged);
|
||||
}
|
||||
|
||||
void OnToggleValueChanged(bool value)
|
||||
{
|
||||
var distanceCalculationMode = value
|
||||
? XRBaseInteractable.DistanceCalculationMode.ColliderVolume
|
||||
: XRBaseInteractable.DistanceCalculationMode.ColliderPosition;
|
||||
|
||||
foreach (var interactable in m_Interactables)
|
||||
{
|
||||
if (interactable != null)
|
||||
interactable.distanceCalculationMode = distanceCalculationMode;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf5f6c9b23a00394b801658d1108122f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
518
Assets/XRI_Examples/Setup/Scripts/LocomotionSetup.cs
Normal file
518
Assets/XRI_Examples/Setup/Scripts/LocomotionSetup.cs
Normal file
@@ -0,0 +1,518 @@
|
||||
using TMPro;
|
||||
using UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets;
|
||||
|
||||
namespace UnityEngine.XR.Content.Interaction
|
||||
{
|
||||
/// <summary>
|
||||
/// Use this class to present locomotion control schemes and configuration preferences,
|
||||
/// and respond to player input in the UI to set them.
|
||||
/// </summary>
|
||||
/// <seealso cref="LocomotionManager"/>
|
||||
public class LocomotionSetup : MonoBehaviour
|
||||
{
|
||||
const float k_MaxMoveSpeed = 5.0f;
|
||||
const float k_MinMoveSpeed = 0.5f;
|
||||
const float k_MaxTurnSpeed = 180f;
|
||||
const float k_MaxSnapTurnAmount = 90f;
|
||||
const float k_MaxGrabMoveRatio = 4f;
|
||||
const float k_MinGrabMoveRatio = 0.5f;
|
||||
|
||||
const string k_SpeedFormat = "###.0";
|
||||
const string k_DegreeFormat = "###";
|
||||
const string k_GrabMoveRatioFormat = "###.0";
|
||||
const string k_MoveSpeedUnitLabel = " m/s";
|
||||
const string k_TurnSpeedUnitLabel = "°/s";
|
||||
const string k_SnapTurnAmountLabel = "°";
|
||||
const string k_GrabMoveRatioLabel = " : 1.0";
|
||||
|
||||
const string k_GravityLabel = "Rig Gravity";
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the behavior that will be used to configure locomotion control schemes and configuration preferences.")]
|
||||
LocomotionManager m_Manager;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the GameObject reference used to turn on and off the movement direction toggle in the 3D UI for the left hand.")]
|
||||
GameObject m_LeftHandMovementDirectionSelection;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the GameObject reference used to turn on and off the movement direction toggle in the 3D UI for the right hand.")]
|
||||
GameObject m_RightHandMovementDirectionSelection;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the GameObject reference used to turn on and off the turn style toggle in the 3D UI for the left hand.")]
|
||||
GameObject m_LeftHandTurnStyleSelection;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the GameObject reference used to turn on and off the turn style toggle in the 3D UI for the right hand.")]
|
||||
GameObject m_RightHandTurnStyleSelection;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the toggle lever used to choose the locomotion type between move/strafe and teleport/turn for the left hand.")]
|
||||
XRLever m_LeftHandLocomotionTypeToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the toggle lever used to choose the locomotion type between move/strafe and teleport/turn for the right hand.")]
|
||||
XRLever m_RightHandLocomotionTypeToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the toggle lever used to choose the movement direction between head-relative and hand-relative for the left hand.")]
|
||||
XRLever m_LeftHandMovementDirectionToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the toggle lever used to choose the movement direction between head-relative and hand-relative for the right hand.")]
|
||||
XRLever m_RightHandMovementDirectionToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the toggle lever used to choose the turn style between continuous and snap for the left hand.")]
|
||||
XRLever m_LeftHandTurnStyleToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the toggle lever used to choose the turn style between continuous and snap for the right hand.")]
|
||||
XRLever m_RightHandTurnStyleToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the Slider used to set the move speed of continuous movement.")]
|
||||
XRSlider m_MoveSpeedSlider;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the button toggle used to enable strafing movement.")]
|
||||
XRPushButton m_StrafeToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the button toggle used to enable comfort mode.")]
|
||||
XRPushButton m_ComfortModeToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the button toggle used to enable gravity.")]
|
||||
XRPushButton m_GravityToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the button toggle used to enable flying.")]
|
||||
XRPushButton m_FlyToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the knob used to set turn speed.")]
|
||||
XRKnob m_TurnSpeedKnob;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the button toggle used to enable instant turn-around.")]
|
||||
XRPushButton m_TurnAroundToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the knob used to set snap turn around.")]
|
||||
XRKnob m_SnapTurnKnob;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the button toggle used to enable grab movement.")]
|
||||
XRPushButton m_GrabMoveToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the Slider used to set the move ratio for grab movement.")]
|
||||
XRSlider m_MoveRatioSlider;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("Stores the button toggle used to enable grab scaling.")]
|
||||
XRPushButton m_ScalingToggle;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current movement speed value.")]
|
||||
TextMeshPro m_MoveSpeedLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current turn speed value.")]
|
||||
TextMeshPro m_TurnSpeedLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current snap turn value.")]
|
||||
TextMeshPro m_SnapTurnLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current grab move ratio value.")]
|
||||
TextMeshPro m_MoveRatioLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current strafe toggle value.")]
|
||||
TextMeshPro m_StrafeLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current gravity toggle value.")]
|
||||
TextMeshPro m_GravityLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current turn around toggle value.")]
|
||||
TextMeshPro m_TurnAroundLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current fly toggle value.")]
|
||||
TextMeshPro m_FlyLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current grab move toggle value.")]
|
||||
TextMeshPro m_GrabMoveLabel;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("The label that shows the current scaling toggle value.")]
|
||||
TextMeshPro m_ScalingLabel;
|
||||
|
||||
void ConnectControlEvents()
|
||||
{
|
||||
m_LeftHandLocomotionTypeToggle.onLeverActivate.AddListener(EnableLeftHandMoveAndStrafe);
|
||||
m_LeftHandLocomotionTypeToggle.onLeverDeactivate.AddListener(EnableLeftHandTeleportAndTurn);
|
||||
m_RightHandLocomotionTypeToggle.onLeverActivate.AddListener(EnableRightHandMoveAndStrafe);
|
||||
m_RightHandLocomotionTypeToggle.onLeverDeactivate.AddListener(EnableRightHandTeleportAndTurn);
|
||||
|
||||
m_LeftHandMovementDirectionToggle.onLeverActivate.AddListener(SetLeftMovementDirectionHeadRelative);
|
||||
m_LeftHandMovementDirectionToggle.onLeverDeactivate.AddListener(SetLeftMovementDirectionHandRelative);
|
||||
m_RightHandMovementDirectionToggle.onLeverActivate.AddListener(SetRightMovementDirectionHeadRelative);
|
||||
m_RightHandMovementDirectionToggle.onLeverDeactivate.AddListener(SetRightMovementDirectionHandRelative);
|
||||
|
||||
m_LeftHandTurnStyleToggle.onLeverActivate.AddListener(EnableLeftHandContinuousTurn);
|
||||
m_LeftHandTurnStyleToggle.onLeverDeactivate.AddListener(EnableLeftHandSnapTurn);
|
||||
m_RightHandTurnStyleToggle.onLeverActivate.AddListener(EnableRightHandContinuousTurn);
|
||||
m_RightHandTurnStyleToggle.onLeverDeactivate.AddListener(EnableRightHandSnapTurn);
|
||||
|
||||
m_MoveSpeedSlider.onValueChange.AddListener(SetMoveSpeed);
|
||||
m_StrafeToggle.onPress.AddListener(EnableStrafe);
|
||||
m_StrafeToggle.onRelease.AddListener(DisableStrafe);
|
||||
m_ComfortModeToggle.onPress.AddListener(EnableComfort);
|
||||
m_ComfortModeToggle.onRelease.AddListener(DisableComfort);
|
||||
m_GravityToggle.onPress.AddListener(EnableGravity);
|
||||
m_GravityToggle.onRelease.AddListener(DisableGravity);
|
||||
m_FlyToggle.onPress.AddListener(EnableFly);
|
||||
m_FlyToggle.onRelease.AddListener(DisableFly);
|
||||
|
||||
m_TurnSpeedKnob.onValueChange.AddListener(SetTurnSpeed);
|
||||
m_TurnAroundToggle.onPress.AddListener(EnableTurnAround);
|
||||
m_TurnAroundToggle.onRelease.AddListener(DisableTurnAround);
|
||||
m_SnapTurnKnob.onValueChange.AddListener(SetSnapTurnAmount);
|
||||
|
||||
m_GrabMoveToggle.onPress.AddListener(EnableGrabMove);
|
||||
m_GrabMoveToggle.onRelease.AddListener(DisableGrabMove);
|
||||
m_MoveRatioSlider.onValueChange.AddListener(SetGrabMoveRatio);
|
||||
m_ScalingToggle.onPress.AddListener(EnableScaling);
|
||||
m_ScalingToggle.onRelease.AddListener(DisableScaling);
|
||||
}
|
||||
|
||||
void DisconnectControlEvents()
|
||||
{
|
||||
m_LeftHandLocomotionTypeToggle.onLeverActivate.RemoveListener(EnableLeftHandMoveAndStrafe);
|
||||
m_LeftHandLocomotionTypeToggle.onLeverDeactivate.RemoveListener(EnableLeftHandTeleportAndTurn);
|
||||
m_RightHandLocomotionTypeToggle.onLeverActivate.RemoveListener(EnableRightHandMoveAndStrafe);
|
||||
m_RightHandLocomotionTypeToggle.onLeverDeactivate.RemoveListener(EnableRightHandTeleportAndTurn);
|
||||
|
||||
m_LeftHandMovementDirectionToggle.onLeverActivate.RemoveListener(SetLeftMovementDirectionHeadRelative);
|
||||
m_LeftHandMovementDirectionToggle.onLeverDeactivate.RemoveListener(SetLeftMovementDirectionHandRelative);
|
||||
m_RightHandMovementDirectionToggle.onLeverActivate.RemoveListener(SetRightMovementDirectionHeadRelative);
|
||||
m_RightHandMovementDirectionToggle.onLeverDeactivate.RemoveListener(SetRightMovementDirectionHandRelative);
|
||||
|
||||
m_LeftHandTurnStyleToggle.onLeverActivate.RemoveListener(EnableLeftHandContinuousTurn);
|
||||
m_LeftHandTurnStyleToggle.onLeverDeactivate.RemoveListener(EnableLeftHandSnapTurn);
|
||||
m_RightHandTurnStyleToggle.onLeverActivate.RemoveListener(EnableRightHandContinuousTurn);
|
||||
m_RightHandTurnStyleToggle.onLeverDeactivate.RemoveListener(EnableRightHandSnapTurn);
|
||||
|
||||
m_MoveSpeedSlider.onValueChange.RemoveListener(SetMoveSpeed);
|
||||
m_StrafeToggle.onPress.RemoveListener(EnableStrafe);
|
||||
m_StrafeToggle.onRelease.RemoveListener(DisableStrafe);
|
||||
m_ComfortModeToggle.onPress.RemoveListener(EnableComfort);
|
||||
m_ComfortModeToggle.onRelease.RemoveListener(DisableComfort);
|
||||
m_GravityToggle.onPress.RemoveListener(EnableGravity);
|
||||
m_GravityToggle.onRelease.RemoveListener(DisableGravity);
|
||||
m_FlyToggle.onPress.RemoveListener(EnableFly);
|
||||
m_FlyToggle.onRelease.RemoveListener(DisableFly);
|
||||
|
||||
m_TurnSpeedKnob.onValueChange.RemoveListener(SetTurnSpeed);
|
||||
m_TurnAroundToggle.onPress.RemoveListener(EnableTurnAround);
|
||||
m_TurnAroundToggle.onRelease.RemoveListener(DisableTurnAround);
|
||||
m_SnapTurnKnob.onValueChange.RemoveListener(SetSnapTurnAmount);
|
||||
|
||||
m_GrabMoveToggle.onPress.RemoveListener(EnableGrabMove);
|
||||
m_GrabMoveToggle.onRelease.RemoveListener(DisableGrabMove);
|
||||
m_MoveRatioSlider.onValueChange.RemoveListener(SetGrabMoveRatio);
|
||||
m_ScalingToggle.onPress.RemoveListener(EnableScaling);
|
||||
m_ScalingToggle.onRelease.RemoveListener(DisableScaling);
|
||||
}
|
||||
|
||||
void InitializeControls()
|
||||
{
|
||||
var isLeftHandMoveAndStrafe = m_Manager.leftHandLocomotionType == LocomotionManager.LocomotionType.MoveAndStrafe;
|
||||
var isRightHandMoveAndStrafe = m_Manager.rightHandLocomotionType == LocomotionManager.LocomotionType.MoveAndStrafe;
|
||||
m_LeftHandLocomotionTypeToggle.value = isLeftHandMoveAndStrafe;
|
||||
m_RightHandLocomotionTypeToggle.value = isRightHandMoveAndStrafe;
|
||||
|
||||
m_LeftHandTurnStyleSelection.SetActive(!isLeftHandMoveAndStrafe);
|
||||
m_RightHandTurnStyleSelection.SetActive(!isRightHandMoveAndStrafe);
|
||||
|
||||
m_LeftHandTurnStyleToggle.value = (m_Manager.leftHandTurnStyle == LocomotionManager.TurnStyle.Smooth);
|
||||
m_RightHandTurnStyleToggle.value = (m_Manager.rightHandTurnStyle == LocomotionManager.TurnStyle.Smooth);
|
||||
|
||||
m_MoveSpeedSlider.value = Mathf.InverseLerp(k_MinMoveSpeed, k_MaxMoveSpeed, m_Manager.dynamicMoveProvider.moveSpeed);
|
||||
m_StrafeToggle.toggleValue = m_Manager.dynamicMoveProvider.enableStrafe;
|
||||
m_ComfortModeToggle.toggleValue = (m_Manager.enableComfortMode);
|
||||
m_GravityToggle.toggleValue = m_Manager.useGravity;
|
||||
m_FlyToggle.toggleValue = m_Manager.enableFly;
|
||||
|
||||
m_TurnSpeedKnob.value = m_Manager.smoothTurnProvider.turnSpeed / k_MaxTurnSpeed;
|
||||
m_TurnAroundToggle.toggleValue = m_Manager.snapTurnProvider.enableTurnAround;
|
||||
m_SnapTurnKnob.value = m_Manager.snapTurnProvider.turnAmount / k_MaxSnapTurnAmount;
|
||||
|
||||
m_GrabMoveToggle.toggleValue = m_Manager.enableGrabMovement;
|
||||
m_MoveRatioSlider.value = Mathf.InverseLerp(k_MinGrabMoveRatio, k_MaxGrabMoveRatio, m_Manager.twoHandedGrabMoveProvider.moveFactor);
|
||||
m_ScalingToggle.toggleValue = m_Manager.enableGrabMovement && m_Manager.twoHandedGrabMoveProvider.enableScaling;
|
||||
|
||||
m_MoveSpeedLabel.text = $"{m_Manager.dynamicMoveProvider.moveSpeed.ToString(k_SpeedFormat)}{k_MoveSpeedUnitLabel}";
|
||||
m_TurnSpeedLabel.text = $"{m_Manager.smoothTurnProvider.turnSpeed.ToString(k_DegreeFormat)}{k_TurnSpeedUnitLabel}";
|
||||
m_SnapTurnLabel.text = $"{m_Manager.snapTurnProvider.turnAmount.ToString(k_DegreeFormat)}{k_TurnSpeedUnitLabel}";
|
||||
|
||||
m_StrafeLabel.text = $"Strafe\n{(m_Manager.dynamicMoveProvider.enableStrafe ? "Enabled" : "Disabled")}";
|
||||
m_GravityLabel.text = $"{k_GravityLabel}\n{(m_Manager.useGravity ? "Enabled" : "Disabled")}";
|
||||
m_TurnAroundLabel.text = $"Turn Around \n{(m_Manager.snapTurnProvider.enableTurnAround ? "Enabled" : "Disabled")}";
|
||||
m_FlyLabel.text = $"Fly\n{(m_Manager.enableFly ? "Enabled" : "Disabled")}";
|
||||
|
||||
m_GrabMoveLabel.text = $"Grab Move\n{(m_Manager.enableGrabMovement ? "Enabled" : "Disabled")}";
|
||||
m_MoveRatioLabel.text = $"{m_Manager.twoHandedGrabMoveProvider.moveFactor.ToString(k_GrabMoveRatioFormat)}{k_GrabMoveRatioLabel}";
|
||||
m_ScalingLabel.text = $"Scaling\n{(m_Manager.enableGrabMovement && m_Manager.twoHandedGrabMoveProvider.enableScaling ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
protected void OnEnable()
|
||||
{
|
||||
if (!ValidateManager())
|
||||
return;
|
||||
|
||||
ConnectControlEvents();
|
||||
InitializeControls();
|
||||
}
|
||||
|
||||
protected void OnDisable()
|
||||
{
|
||||
DisconnectControlEvents();
|
||||
}
|
||||
|
||||
bool ValidateManager()
|
||||
{
|
||||
if (m_Manager == null)
|
||||
{
|
||||
Debug.LogError($"Reference to the {nameof(LocomotionManager)} is not set or the object has been destroyed," +
|
||||
" configuring locomotion settings from the menu will not be possible." +
|
||||
" Ensure the value has been set in the Inspector.", this);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_Manager.dynamicMoveProvider == null)
|
||||
{
|
||||
Debug.LogError($"Reference to the {nameof(LocomotionManager.dynamicMoveProvider)} is not set or the object has been destroyed," +
|
||||
" configuring locomotion settings from the menu will not be possible." +
|
||||
$" Ensure the value has been set in the Inspector on {m_Manager}.", this);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_Manager.smoothTurnProvider == null)
|
||||
{
|
||||
Debug.LogError($"Reference to the {nameof(LocomotionManager.smoothTurnProvider)} is not set or the object has been destroyed," +
|
||||
" configuring locomotion settings from the menu will not be possible." +
|
||||
$" Ensure the value has been set in the Inspector on {m_Manager}.", this);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_Manager.snapTurnProvider == null)
|
||||
{
|
||||
Debug.LogError($"Reference to the {nameof(LocomotionManager.snapTurnProvider)} is not set or the object has been destroyed," +
|
||||
" configuring locomotion settings from the menu will not be possible." +
|
||||
$" Ensure the value has been set in the Inspector on {m_Manager}.", this);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_Manager.twoHandedGrabMoveProvider == null)
|
||||
{
|
||||
Debug.LogError($"Reference to the {nameof(LocomotionManager.twoHandedGrabMoveProvider)} is not set or the object has been destroyed," +
|
||||
" configuring locomotion settings from the menu will not be possible." +
|
||||
$" Ensure the value has been set in the Inspector on {m_Manager}.", this);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void EnableLeftHandMoveAndStrafe()
|
||||
{
|
||||
m_Manager.leftHandLocomotionType = LocomotionManager.LocomotionType.MoveAndStrafe;
|
||||
m_LeftHandMovementDirectionSelection.SetActive(true);
|
||||
m_LeftHandTurnStyleSelection.SetActive(false);
|
||||
}
|
||||
|
||||
void EnableRightHandMoveAndStrafe()
|
||||
{
|
||||
m_Manager.rightHandLocomotionType = LocomotionManager.LocomotionType.MoveAndStrafe;
|
||||
m_RightHandMovementDirectionSelection.SetActive(true);
|
||||
m_RightHandTurnStyleSelection.SetActive(false);
|
||||
}
|
||||
|
||||
void EnableLeftHandTeleportAndTurn()
|
||||
{
|
||||
m_Manager.leftHandLocomotionType = LocomotionManager.LocomotionType.TeleportAndTurn;
|
||||
m_LeftHandMovementDirectionSelection.SetActive(false);
|
||||
m_LeftHandTurnStyleSelection.SetActive(true);
|
||||
}
|
||||
|
||||
void EnableRightHandTeleportAndTurn()
|
||||
{
|
||||
m_Manager.rightHandLocomotionType = LocomotionManager.LocomotionType.TeleportAndTurn;
|
||||
m_RightHandMovementDirectionSelection.SetActive(false);
|
||||
m_RightHandTurnStyleSelection.SetActive(true);
|
||||
}
|
||||
|
||||
void EnableLeftHandContinuousTurn()
|
||||
{
|
||||
m_Manager.leftHandTurnStyle = LocomotionManager.TurnStyle.Smooth;
|
||||
}
|
||||
|
||||
void EnableRightHandContinuousTurn()
|
||||
{
|
||||
m_Manager.rightHandTurnStyle = LocomotionManager.TurnStyle.Smooth;
|
||||
}
|
||||
|
||||
void EnableLeftHandSnapTurn()
|
||||
{
|
||||
m_Manager.leftHandTurnStyle = LocomotionManager.TurnStyle.Snap;
|
||||
}
|
||||
|
||||
void EnableRightHandSnapTurn()
|
||||
{
|
||||
m_Manager.rightHandTurnStyle = LocomotionManager.TurnStyle.Snap;
|
||||
}
|
||||
|
||||
void SetLeftMovementDirectionHeadRelative()
|
||||
{
|
||||
m_Manager.dynamicMoveProvider.leftHandMovementDirection = DynamicMoveProvider.MovementDirection.HeadRelative;
|
||||
}
|
||||
|
||||
void SetLeftMovementDirectionHandRelative()
|
||||
{
|
||||
m_Manager.dynamicMoveProvider.leftHandMovementDirection = DynamicMoveProvider.MovementDirection.HandRelative;
|
||||
}
|
||||
|
||||
void SetRightMovementDirectionHeadRelative()
|
||||
{
|
||||
m_Manager.dynamicMoveProvider.rightHandMovementDirection = DynamicMoveProvider.MovementDirection.HeadRelative;
|
||||
}
|
||||
|
||||
void SetRightMovementDirectionHandRelative()
|
||||
{
|
||||
m_Manager.dynamicMoveProvider.rightHandMovementDirection = DynamicMoveProvider.MovementDirection.HandRelative;
|
||||
}
|
||||
|
||||
void SetMoveSpeed(float sliderValue)
|
||||
{
|
||||
m_Manager.dynamicMoveProvider.moveSpeed = Mathf.Lerp(k_MinMoveSpeed, k_MaxMoveSpeed, sliderValue);
|
||||
m_MoveSpeedLabel.text = $"{m_Manager.dynamicMoveProvider.moveSpeed.ToString(k_SpeedFormat)}{k_MoveSpeedUnitLabel}";
|
||||
}
|
||||
|
||||
void EnableStrafe()
|
||||
{
|
||||
m_Manager.dynamicMoveProvider.enableStrafe = true;
|
||||
m_StrafeLabel.text = $"Strafe\n{(m_Manager.dynamicMoveProvider.enableStrafe ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void DisableStrafe()
|
||||
{
|
||||
m_Manager.dynamicMoveProvider.enableStrafe = false;
|
||||
m_StrafeLabel.text = $"Strafe\n{(m_Manager.dynamicMoveProvider.enableStrafe ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void EnableComfort()
|
||||
{
|
||||
m_Manager.enableComfortMode = true;
|
||||
}
|
||||
|
||||
void DisableComfort()
|
||||
{
|
||||
m_Manager.enableComfortMode = false;
|
||||
}
|
||||
|
||||
void EnableGravity()
|
||||
{
|
||||
m_Manager.useGravity = true;
|
||||
m_GravityLabel.text = $"{k_GravityLabel}\n{(m_Manager.useGravity ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void DisableGravity()
|
||||
{
|
||||
m_Manager.useGravity = false;
|
||||
m_GravityLabel.text = $"{k_GravityLabel}\n{(m_Manager.useGravity ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void EnableFly()
|
||||
{
|
||||
m_Manager.enableFly = true;
|
||||
m_FlyLabel.text = $"Fly\n{(m_Manager.enableFly ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void DisableFly()
|
||||
{
|
||||
m_Manager.enableFly = false;
|
||||
m_FlyLabel.text = $"Fly\n{(m_Manager.enableFly ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void SetTurnSpeed(float knobValue)
|
||||
{
|
||||
m_Manager.smoothTurnProvider.turnSpeed = Mathf.Lerp(m_TurnSpeedKnob.minAngle, m_TurnSpeedKnob.maxAngle, knobValue);
|
||||
m_TurnSpeedLabel.text = $"{m_Manager.smoothTurnProvider.turnSpeed.ToString(k_DegreeFormat)}{k_TurnSpeedUnitLabel}";
|
||||
}
|
||||
|
||||
void EnableTurnAround()
|
||||
{
|
||||
m_Manager.snapTurnProvider.enableTurnAround = true;
|
||||
m_TurnAroundLabel.text = $"Turn Around \n{(m_Manager.snapTurnProvider.enableTurnAround ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void DisableTurnAround()
|
||||
{
|
||||
m_Manager.snapTurnProvider.enableTurnAround = false;
|
||||
m_TurnAroundLabel.text = $"Turn Around \n{(m_Manager.snapTurnProvider.enableTurnAround ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void SetSnapTurnAmount(float newAmount)
|
||||
{
|
||||
m_Manager.snapTurnProvider.turnAmount = Mathf.Lerp(m_SnapTurnKnob.minAngle, m_SnapTurnKnob.maxAngle, newAmount);
|
||||
m_SnapTurnLabel.text = $"{m_Manager.snapTurnProvider.turnAmount.ToString(k_DegreeFormat)}{k_SnapTurnAmountLabel}";
|
||||
}
|
||||
|
||||
void EnableGrabMove()
|
||||
{
|
||||
m_Manager.enableGrabMovement = true;
|
||||
m_GrabMoveLabel.text = $"Grab Move\n{(m_Manager.enableGrabMovement ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void DisableGrabMove()
|
||||
{
|
||||
m_ScalingToggle.toggleValue = false;
|
||||
DisableScaling();
|
||||
m_Manager.enableGrabMovement = false;
|
||||
m_GrabMoveLabel.text = $"Grab Move\n{(m_Manager.enableGrabMovement ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void SetGrabMoveRatio(float sliderValue)
|
||||
{
|
||||
var moveRatio = Mathf.Lerp(k_MinGrabMoveRatio, k_MaxGrabMoveRatio, sliderValue);
|
||||
var twoHandedGrabMoveProvider = m_Manager.twoHandedGrabMoveProvider;
|
||||
twoHandedGrabMoveProvider.moveFactor = moveRatio;
|
||||
twoHandedGrabMoveProvider.leftGrabMoveProvider.moveFactor = moveRatio;
|
||||
twoHandedGrabMoveProvider.rightGrabMoveProvider.moveFactor = moveRatio;
|
||||
m_MoveRatioLabel.text = $"{twoHandedGrabMoveProvider.moveFactor.ToString(k_GrabMoveRatioFormat)}{k_GrabMoveRatioLabel}";
|
||||
}
|
||||
|
||||
void EnableScaling()
|
||||
{
|
||||
m_GrabMoveToggle.toggleValue = true;
|
||||
EnableGrabMove();
|
||||
m_Manager.twoHandedGrabMoveProvider.enableScaling = true;
|
||||
m_ScalingLabel.text = $"Scaling\n{(m_Manager.enableGrabMovement && m_Manager.twoHandedGrabMoveProvider.enableScaling ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
|
||||
void DisableScaling()
|
||||
{
|
||||
m_Manager.twoHandedGrabMoveProvider.enableScaling = false;
|
||||
m_ScalingLabel.text = $"Scaling\n{(m_Manager.enableGrabMovement && m_Manager.twoHandedGrabMoveProvider.enableScaling ? "Enabled" : "Disabled")}";
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XRI_Examples/Setup/Scripts/LocomotionSetup.cs.meta
Normal file
11
Assets/XRI_Examples/Setup/Scripts/LocomotionSetup.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f551c91a74ed8141a0dd9812048b31c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
42
Assets/XRI_Examples/Setup/Scripts/TargetFilterToggle.cs
Normal file
42
Assets/XRI_Examples/Setup/Scripts/TargetFilterToggle.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
using UnityEngine.XR.Interaction.Toolkit.Filtering;
|
||||
|
||||
namespace UnityEngine.XR.Content.Interaction
|
||||
{
|
||||
public class TargetFilterToggle : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
Toggle m_Toggle;
|
||||
|
||||
[SerializeField]
|
||||
XRTargetFilter m_TargetFilter;
|
||||
|
||||
[SerializeField]
|
||||
XRDirectInteractor m_LeftInteractor;
|
||||
|
||||
[SerializeField]
|
||||
XRDirectInteractor m_RightInteractor;
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (m_Toggle == null || m_TargetFilter == null)
|
||||
return;
|
||||
|
||||
m_Toggle.isOn = m_TargetFilter != null && m_TargetFilter.enabled;
|
||||
m_Toggle.onValueChanged.AddListener(OnToggleValueChanged);
|
||||
|
||||
if (m_LeftInteractor != null && m_LeftInteractor.targetFilter == null)
|
||||
m_LeftInteractor.targetFilter = m_TargetFilter;
|
||||
|
||||
if (m_RightInteractor != null && m_RightInteractor.targetFilter == null)
|
||||
m_RightInteractor.targetFilter = m_TargetFilter;
|
||||
}
|
||||
|
||||
void OnToggleValueChanged(bool value)
|
||||
{
|
||||
if (m_TargetFilter != null)
|
||||
m_TargetFilter.enabled = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XRI_Examples/Setup/Scripts/TargetFilterToggle.cs.meta
Normal file
11
Assets/XRI_Examples/Setup/Scripts/TargetFilterToggle.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77480361fe46d7343a4791450a43abd3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user