├── ProjectSettings ├── ProjectVersion.txt ├── ClusterInputManager.asset ├── PresetManager.asset ├── NetworkManager.asset ├── TimeManager.asset ├── EditorBuildSettings.asset ├── AudioManager.asset ├── EditorSettings.asset ├── TagManager.asset ├── DynamicsManager.asset ├── UnityConnectSettings.asset ├── Physics2DSettings.asset ├── NavMeshAreas.asset ├── GraphicsSettings.asset ├── QualitySettings.asset ├── InputManager.asset └── ProjectSettings.asset ├── UnityPackageManager └── manifest.json ├── Assets ├── OVR.meta ├── Plugins.meta ├── VrGrabber.meta ├── VrGrabber │ ├── Scenes │ │ ├── VrGrabber Example.unity.meta │ │ ├── VrGrabber Example WinMR MotionController.unity.meta │ │ └── VrGrabber Example WinMR MotionController.unity │ ├── Materials.meta │ ├── Prefabs.meta │ ├── Scenes.meta │ ├── Scripts.meta │ ├── Materials │ │ ├── Vrg Line.mat.meta │ │ ├── Vrg Table.mat.meta │ │ ├── Vrg Object.mat.meta │ │ ├── Vrg Floating Object.mat.meta │ │ ├── Vrg Object.mat │ │ ├── Vrg Table.mat │ │ ├── Vrg Floating Object.mat │ │ └── Vrg Line.mat │ ├── Prefabs │ │ ├── Vrg Left Grabber.prefab.meta │ │ ├── Vrg Right Grabber.prefab.meta │ │ ├── Vrg Left Controller.prefab.meta │ │ ├── Vrg Right Controller.prefab.meta │ │ ├── Vrg Left Controller.prefab │ │ ├── Vrg Right Controller.prefab │ │ ├── Vrg Left Grabber.prefab │ │ └── Vrg Right Grabber.prefab │ └── Scripts │ │ ├── VrgDevice.cs.meta │ │ ├── VrgGrabbable.cs.meta │ │ ├── VrgGrabber.cs.meta │ │ ├── VrgFloatingObject.cs.meta │ │ ├── VrgTargetLine.cs.meta │ │ ├── VrgMatrixExtension.cs.meta │ │ ├── VrgIDevice.cs.meta │ │ ├── VrgNodeTracker.cs.meta │ │ ├── VrgOculusTouchDevice.cs.meta │ │ ├── VrgNodeTracker.cs │ │ ├── VrgWinMRMotionControllerDevice.cs.meta │ │ ├── VrgIDevice.cs │ │ ├── VrgFloatingObject.cs │ │ ├── VrgMatrixExtension.cs │ │ ├── VrgOculusTouchDevice.cs │ │ ├── VrgDevice.cs │ │ ├── VrgTargetLine.cs │ │ ├── VrgWinMRMotionControllerDevice.cs │ │ ├── VrgGrabbable.cs │ │ └── VrgGrabber.cs └── OvrAvatar.meta ├── .gitignore └── README.md /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2017.2.0f1 2 | -------------------------------------------------------------------------------- /UnityPackageManager/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /Assets/OVR.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 869fc009969608e4a9071237c584be0d 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 602d520ecaed20f4fbdf14fc8eecaf1b 3 | folderAsset: yes 4 | timeCreated: 1501422408 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7abf69413e9db345b103aef0a33f3ad 3 | folderAsset: yes 4 | timeCreated: 1501402337 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scenes/VrGrabber Example.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ef7984c9ae84fb47996391660d92e3b 3 | timeCreated: 1501402244 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/OvrAvatar.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4808572c3a25f0d4090c2ab5af88c08f 3 | folderAsset: yes 4 | timeCreated: 1466550217 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd8faad08649bcc4584b6adf9612f250 3 | folderAsset: yes 4 | timeCreated: 1501419072 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 158fdbbe0b9c675408f93abb7126995f 3 | folderAsset: yes 4 | timeCreated: 1501419777 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 489e94aa693d5be41916833fbfb06d91 3 | folderAsset: yes 4 | timeCreated: 1501402353 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e3c17b59454e4e41b725ae528a138b4 3 | folderAsset: yes 4 | timeCreated: 1501402345 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Line.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad4c144012fff3142a00c95f833b244a 3 | timeCreated: 1501402700 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Table.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 945b3ef5bae8b284982b37b44355e4b1 3 | timeCreated: 1501419872 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Object.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b82445bd9f69b8439840e50252129d9 3 | timeCreated: 1501419864 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Floating Object.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1170a292998e70d4a8d8613ec3f7da18 3 | timeCreated: 1501419830 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Left Grabber.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0ebbafe85c5de047a4fd5c09f76b9d6 3 | timeCreated: 1501419780 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Right Grabber.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d939a13af958dc49a95c255c7bc51c9 3 | timeCreated: 1501419785 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scenes/VrGrabber Example WinMR MotionController.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a28029de2dae0e44aad9d2e4fef36117 3 | timeCreated: 1506928059 4 | licenseType: Pro 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Left Controller.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e437c60d9722a548ba6b6c06d881659 3 | timeCreated: 1506928135 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 100100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Right Controller.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68af46e6b1651df46b7a288d34b73a5a 3 | timeCreated: 1506928133 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 100100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/VrGrabber/Scenes/VrGrabber Example.unity 10 | guid: 3ef7984c9ae84fb47996391660d92e3b 11 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgDevice.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfc79568b7b89a843b4127936f63e437 3 | timeCreated: 1501313927 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgGrabbable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26b3f6d65fd2b41459135a4c82a6c4f8 3 | timeCreated: 1501305914 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgGrabber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40f52bb2b49943a498e44b97d4085085 3 | timeCreated: 1501305914 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgFloatingObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0f42ee1cd1a04f41b727c7a360da4ec 3 | timeCreated: 1501407014 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgTargetLine.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c98c03068b886634c98b87e2e307ebc6 3 | timeCreated: 1501306215 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgMatrixExtension.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ef4c4bca66cc7a4c8c976d8ae5aad91 3 | timeCreated: 1501392693 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgIDevice.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6120da458494bd4eacca6a891b94b0f 3 | timeCreated: 1506917893 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgNodeTracker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f74a2308edfb224882e5fb481d58ebe 3 | timeCreated: 1506927926 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgOculusTouchDevice.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7cb6b4e04035ef4588a3de543062aff 3 | timeCreated: 1506917812 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgNodeTracker.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.XR; 3 | 4 | public class VrgNodeTracker : MonoBehaviour 5 | { 6 | [SerializeField] 7 | XRNode node = XRNode.LeftHand; 8 | 9 | void Update() 10 | { 11 | transform.SetPositionAndRotation(InputTracking.GetLocalPosition(node), InputTracking.GetLocalRotation(node)); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgWinMRMotionControllerDevice.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21504f1f2d5c8c54d95b9ef4a76fc0d2 3 | timeCreated: 1506917812 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_DefaultBehaviorMode: 0 10 | m_SpritePackerMode: 0 11 | m_SpritePackerPaddingPower: 1 12 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 13 | m_ProjectGenerationRootNamespace: 14 | m_UserGeneratedProjectSuffix: 15 | m_CollabEditorSettings: 16 | inProgressEnabled: 1 17 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgIDevice.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace VrGrabber 4 | { 5 | 6 | public enum ControllerSide 7 | { 8 | Left, 9 | Right, 10 | } 11 | 12 | public interface IDevice 13 | { 14 | Vector3 GetLocalPosition(ControllerSide side); 15 | Quaternion GetLocalRotation(ControllerSide side); 16 | bool GetHold(ControllerSide side); 17 | bool GetRelease(ControllerSide side); 18 | bool GetHover(ControllerSide side); 19 | bool GetClick(ControllerSide side); 20 | Vector2 GetCoord(ControllerSide side); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Unity3D temporary directories 2 | /[Ll]ibrary/ 3 | /[Tt]emp/ 4 | /[Oo]bj/ 5 | /[Bb]uild/ 6 | /[Ww]iki/ 7 | /[Mm]isc/ 8 | 9 | # Autogenerated VS/MD solution and project files 10 | *.csproj 11 | *.unityproj 12 | *.sln 13 | *.suo 14 | *.tmp 15 | *.user 16 | *.userprefs 17 | *.pidb 18 | *.booproj 19 | .vs/ 20 | 21 | # Unity3D generated meta files 22 | *.pidb.meta 23 | 24 | # Unity3D Generated File On Crash Reports 25 | sysinfo.txt 26 | 27 | # Others 28 | .DS_Store 29 | /Assets/AssetStoreTools* 30 | /Assets/Extensions* 31 | /Assets/OVR 32 | /Assets/OvrAvatar 33 | /Assets/Plugins 34 | /*.log 35 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - Hand 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgFloatingObject.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace VrGrabber 4 | { 5 | 6 | [RequireComponent(typeof(Rigidbody))] 7 | public class VrgFloatingObject : MonoBehaviour 8 | { 9 | Rigidbody rigidbody_; 10 | 11 | [SerializeField, Range(0f, 1f)] 12 | float moveDamping = 0.95f; 13 | 14 | [SerializeField, Range(0f, 1f)] 15 | float rotationDamping = 0.95f; 16 | 17 | void Awake() 18 | { 19 | rigidbody_ = GetComponent(); 20 | } 21 | 22 | void Start() 23 | { 24 | rigidbody_.velocity = Vector3.zero; 25 | rigidbody_.angularVelocity = Vector3.zero; 26 | } 27 | 28 | void Update() 29 | { 30 | rigidbody_.velocity *= moveDamping; 31 | rigidbody_.angularVelocity *= rotationDamping; 32 | } 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | m_AutoSyncTransforms: 1 21 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_Enabled: 0 14 | m_CaptureEditorExceptions: 1 15 | UnityPurchasingSettings: 16 | m_Enabled: 0 17 | m_TestMode: 0 18 | UnityAnalyticsSettings: 19 | m_Enabled: 0 20 | m_InitializeOnStartup: 1 21 | m_TestMode: 0 22 | m_TestEventUrl: 23 | m_TestConfigUrl: 24 | UnityAdsSettings: 25 | m_Enabled: 0 26 | m_InitializeOnStartup: 1 27 | m_TestMode: 0 28 | m_EnabledPlatforms: 4294967295 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgMatrixExtension.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace VrGrabber 4 | { 5 | 6 | public static class MatrixExtension 7 | { 8 | public static Vector3 GetRight(this Matrix4x4 m) 9 | { 10 | return m.GetColumn(0); 11 | } 12 | 13 | public static Vector3 GetUp(this Matrix4x4 m) 14 | { 15 | return m.GetColumn(1); 16 | } 17 | 18 | public static Vector3 GetForward(this Matrix4x4 m) 19 | { 20 | return m.GetColumn(2); 21 | } 22 | 23 | public static Vector3 GetPosition(this Matrix4x4 m) 24 | { 25 | return m.GetColumn(3); 26 | } 27 | 28 | public static Quaternion GetRotation(this Matrix4x4 m) 29 | { 30 | return Quaternion.LookRotation(m.GetForward(), m.GetUp()); 31 | } 32 | 33 | public static Vector3 GetScale(this Matrix4x4 m) 34 | { 35 | return new Vector3( 36 | m.GetRight().magnitude, 37 | m.GetUp().magnitude, 38 | m.GetForward().magnitude); 39 | } 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgOculusTouchDevice.cs: -------------------------------------------------------------------------------- 1 | #if !UNITY_WSA 2 | using UnityEngine; 3 | 4 | namespace VrGrabber 5 | { 6 | 7 | public class VrgOculusTouchDevice : IDevice 8 | { 9 | private OVRInput.Controller GetOVRController(ControllerSide side) 10 | { 11 | return (side == ControllerSide.Left) ? 12 | OVRInput.Controller.LTouch : 13 | OVRInput.Controller.RTouch; 14 | } 15 | 16 | public Vector3 GetLocalPosition(ControllerSide side) 17 | { 18 | return OVRInput.GetLocalControllerPosition(GetOVRController(side)); 19 | } 20 | 21 | public Quaternion GetLocalRotation(ControllerSide side) 22 | { 23 | return OVRInput.GetLocalControllerRotation(GetOVRController(side)); 24 | } 25 | 26 | public bool GetHold(ControllerSide side) 27 | { 28 | return OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger); 29 | } 30 | 31 | public bool GetRelease(ControllerSide side) 32 | { 33 | return OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger); 34 | } 35 | 36 | public bool GetHover(ControllerSide side) 37 | { 38 | return OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger); 39 | } 40 | 41 | public bool GetClick(ControllerSide side) 42 | { 43 | return OVRInput.Get(OVRInput.Button.PrimaryTouchpad); 44 | } 45 | 46 | public Vector2 GetCoord(ControllerSide side) 47 | { 48 | return OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad); 49 | } 50 | } 51 | 52 | } 53 | #endif 54 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgDevice.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace VrGrabber 4 | { 5 | public class Device { 6 | static IDevice _instance; 7 | public static IDevice instance { 8 | get { 9 | if (_instance == null) { 10 | #if !UNITY_WSA 11 | _instance = new VrgOculusTouchDevice(); 12 | #elif UNITY_WSA 13 | _instance = new VrgWinMRMotionControllerDevice(); 14 | #else 15 | #error "Not implemented." 16 | #endif 17 | } 18 | return _instance; 19 | } 20 | } 21 | 22 | public Vector3 GetLocalPosition(ControllerSide side) { 23 | return _instance.GetLocalPosition(side); 24 | } 25 | 26 | public Quaternion GetLocalRotation(ControllerSide side) { 27 | return _instance.GetLocalRotation(side); 28 | } 29 | 30 | public bool GetHold(ControllerSide side) { 31 | return _instance.GetHold(side); 32 | } 33 | 34 | public bool GetRelease(ControllerSide side) 35 | { 36 | return _instance.GetRelease(side); 37 | } 38 | 39 | public bool GetHover(ControllerSide side) { 40 | return _instance.GetHover(side); 41 | } 42 | 43 | public bool GetClick(ControllerSide side) { 44 | return _instance.GetClick(side); 45 | } 46 | 47 | public Vector2 GetCoord(ControllerSide side) { 48 | return _instance.GetCoord(side); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | m_SettingNames: 89 | - Humanoid 90 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgTargetLine.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace VrGrabber 4 | { 5 | 6 | [RequireComponent(typeof(VrgGrabber)), 7 | RequireComponent(typeof(LineRenderer))] 8 | public class VrgTargetLine : MonoBehaviour 9 | { 10 | private VrgGrabber grabber_; 11 | private LineRenderer line_; 12 | 13 | public float maxAngle = 60f; 14 | public int jointNum = 32; 15 | 16 | void Awake() 17 | { 18 | grabber_ = GetComponent(); 19 | line_ = GetComponent(); 20 | } 21 | 22 | void Update() 23 | { 24 | if (!grabber_ || !grabber_.enabled) 25 | { 26 | line_.enabled = false; 27 | return; 28 | } 29 | line_.enabled = true; 30 | 31 | var startPos = transform.position; 32 | var dir = grabber_.gripDir.normalized; 33 | var to = grabber_.targetPos - startPos; 34 | 35 | var d = to.magnitude; 36 | if (d < Mathf.Epsilon) 37 | { 38 | line_.enabled = false; 39 | return; 40 | } 41 | 42 | var xAxis = to.normalized; 43 | 44 | var maxRadian = maxAngle * Mathf.Deg2Rad; 45 | var minProd = Mathf.Cos(maxRadian); 46 | 47 | var prodX = Mathf.Max(Vector3.Dot(xAxis, dir), minProd); 48 | var up = dir - prodX * xAxis; 49 | var yAxis = up.normalized; 50 | 51 | var prodY = Vector3.Dot(yAxis, dir); 52 | var dydx0 = prodY / prodX; 53 | var xc = d / 2; 54 | var a = - dydx0 / (2 * xc); 55 | var b = - a * xc * xc; 56 | 57 | line_.positionCount = jointNum; 58 | 59 | var dx = d / (jointNum - 1); 60 | for (int i = 0; i < jointNum; ++i) 61 | { 62 | var x = dx * i; 63 | var y = a * Mathf.Pow(x - xc, 2f) + b; 64 | var pos = startPos + (x * xAxis) + (y * yAxis); 65 | line_.SetPosition(i, pos); 66 | } 67 | } 68 | } 69 | 70 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | VrGrabberGo 2 | ========= 3 | 4 | **VrGrabberGo** is a Unity components for Oculus Go or Gear VR. 5 | VrGrabberGo is the mod of hecomi's VrGrabber. 6 | 7 | - Grab and release by trigger button 8 | - Z-distance control by touch pad 9 | 10 | ![image1](https://raw.githubusercontent.com/RyoKosaka/ryokosaka.github.io/master/image/vrgrabbergo/vrgrabbergo1.jpg) 11 | ![image2](https://raw.githubusercontent.com/RyoKosaka/ryokosaka.github.io/master/image/vrgrabbergo/vrgrabbergo2.jpg) 12 | 13 | Demo 14 | ---- 15 | 16 | - [https://www.youtube.com/watch?v=SR686aPVT1Q](https://www.youtube.com/watch?v=SR686aPVT1Q) 17 | 18 | Setup 19 | ------- 20 | 21 | 1. Download the latest *.unitypackage* from [Release](https://github.com/ryokosaka/VrGrabberGo/releases) page. 22 | 2. Import it into your project. 23 | 3. Add `Vrg Left Grabber` or `Vrg Right Grabber` from *VrGrabber > Prefabs* 24 | to `TrackingSpace` under `OVRCameraRig`. 25 | 26 | License 27 | ------- 28 | 29 | The MIT License (MIT) 30 | 31 | Copyright (c) 2017 hecomi 32 | 33 | Permission is hereby granted, free of charge, to any person obtaining a copy of 34 | this software and associated documentation files (the "Software"), to deal in 35 | the Software without restriction, including without limitation the rights to 36 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 37 | the Software, and to permit persons to whom the Software is furnished to do so, 38 | subject to the following conditions: 39 | 40 | The above copyright notice and this permission notice shall be included in all 41 | copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 44 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 45 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 46 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 47 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 48 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 49 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Object.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Vrg Object 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_CustomRenderQueue: -1 15 | stringTagMap: {} 16 | disabledShaderPasses: [] 17 | m_SavedProperties: 18 | serializedVersion: 3 19 | m_TexEnvs: 20 | - _BumpMap: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - _DetailAlbedoMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _DetailMask: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailNormalMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _EmissionMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _MainTex: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _MetallicGlossMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _OcclusionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _ParallaxMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | m_Floats: 57 | - _BumpScale: 1 58 | - _Cutoff: 0.5 59 | - _DetailNormalMapScale: 1 60 | - _DstBlend: 0 61 | - _GlossMapScale: 1 62 | - _Glossiness: 1 63 | - _GlossyReflections: 1 64 | - _Metallic: 0 65 | - _Mode: 0 66 | - _OcclusionStrength: 1 67 | - _Parallax: 0.02 68 | - _SmoothnessTextureChannel: 0 69 | - _SpecularHighlights: 1 70 | - _SrcBlend: 1 71 | - _UVSec: 0 72 | - _ZWrite: 1 73 | m_Colors: 74 | - _Color: {r: 0.1473832, g: 0.1815565, b: 0.3455882, a: 1} 75 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 76 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Table.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Vrg Table 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_CustomRenderQueue: -1 15 | stringTagMap: {} 16 | disabledShaderPasses: [] 17 | m_SavedProperties: 18 | serializedVersion: 3 19 | m_TexEnvs: 20 | - _BumpMap: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - _DetailAlbedoMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _DetailMask: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailNormalMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _EmissionMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _MainTex: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _MetallicGlossMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _OcclusionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _ParallaxMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | m_Floats: 57 | - _BumpScale: 1 58 | - _Cutoff: 0.5 59 | - _DetailNormalMapScale: 1 60 | - _DstBlend: 0 61 | - _GlossMapScale: 1 62 | - _Glossiness: 0.062 63 | - _GlossyReflections: 1 64 | - _Metallic: 0.048 65 | - _Mode: 0 66 | - _OcclusionStrength: 1 67 | - _Parallax: 0.02 68 | - _SmoothnessTextureChannel: 0 69 | - _SpecularHighlights: 1 70 | - _SrcBlend: 1 71 | - _UVSec: 0 72 | - _ZWrite: 1 73 | m_Colors: 74 | - _Color: {r: 0.41911763, g: 0.41911763, b: 0.41911763, a: 1} 75 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 76 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Floating Object.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Vrg Floating Object 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_CustomRenderQueue: -1 15 | stringTagMap: {} 16 | disabledShaderPasses: [] 17 | m_SavedProperties: 18 | serializedVersion: 3 19 | m_TexEnvs: 20 | - _BumpMap: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - _DetailAlbedoMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _DetailMask: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailNormalMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _EmissionMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _MainTex: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _MetallicGlossMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _OcclusionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _ParallaxMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | m_Floats: 57 | - _BumpScale: 1 58 | - _Cutoff: 0.5 59 | - _DetailNormalMapScale: 1 60 | - _DstBlend: 0 61 | - _GlossMapScale: 1 62 | - _Glossiness: 1 63 | - _GlossyReflections: 1 64 | - _Metallic: 0 65 | - _Mode: 0 66 | - _OcclusionStrength: 1 67 | - _Parallax: 0.02 68 | - _SmoothnessTextureChannel: 0 69 | - _SpecularHighlights: 1 70 | - _SrcBlend: 1 71 | - _UVSec: 0 72 | - _ZWrite: 1 73 | m_Colors: 74 | - _Color: {r: 0.33607265, g: 0.61764705, b: 0.33801454, a: 1} 75 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 76 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Materials/Vrg Line.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Vrg Line 10 | m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_CustomRenderQueue: -1 15 | stringTagMap: {} 16 | disabledShaderPasses: [] 17 | m_SavedProperties: 18 | serializedVersion: 3 19 | m_TexEnvs: 20 | - _BumpMap: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - _DetailAlbedoMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _DetailMask: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailNormalMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _EmissionMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _MainTex: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _MetallicGlossMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _OcclusionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _ParallaxMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | m_Floats: 57 | - _BumpScale: 1 58 | - _Cutoff: 0.5 59 | - _DetailNormalMapScale: 1 60 | - _DstBlend: 0 61 | - _GlossMapScale: 1 62 | - _Glossiness: 0.5 63 | - _GlossyReflections: 1 64 | - _InvFade: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | - _TintColor: {r: 1, g: 1, b: 1, a: 1} 78 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 42 | type: 0} 43 | m_CustomRenderPipeline: {fileID: 0} 44 | m_TransparencySortMode: 0 45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 46 | m_DefaultRenderingPath: 1 47 | m_DefaultMobileRenderingPath: 1 48 | m_TierSettings: [] 49 | m_LightmapStripping: 0 50 | m_FogStripping: 0 51 | m_InstancingStripping: 0 52 | m_LightmapKeepPlain: 1 53 | m_LightmapKeepDirCombined: 1 54 | m_LightmapKeepDynamicPlain: 1 55 | m_LightmapKeepDynamicDirCombined: 1 56 | m_LightmapKeepShadowMask: 1 57 | m_LightmapKeepSubtractive: 1 58 | m_FogKeepLinear: 1 59 | m_FogKeepExp: 1 60 | m_FogKeepExp2: 1 61 | m_AlbedoSwatchInfos: [] 62 | m_LightsUseLinearIntensity: 0 63 | m_LightsUseColorTemperature: 0 64 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Left Controller.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1813123692307056} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1813123692307056 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4934257319846562} 22 | - component: {fileID: 33604653122287540} 23 | - component: {fileID: 23732168056458758} 24 | - component: {fileID: 114510256591346848} 25 | m_Layer: 0 26 | m_Name: Vrg Left Controller 27 | m_TagString: Untagged 28 | m_Icon: {fileID: 0} 29 | m_NavMeshLayer: 0 30 | m_StaticEditorFlags: 0 31 | m_IsActive: 1 32 | --- !u!4 &4934257319846562 33 | Transform: 34 | m_ObjectHideFlags: 1 35 | m_PrefabParentObject: {fileID: 0} 36 | m_PrefabInternal: {fileID: 100100000} 37 | m_GameObject: {fileID: 1813123692307056} 38 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 39 | m_LocalPosition: {x: 0, y: 0, z: 0} 40 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 41 | m_Children: [] 42 | m_Father: {fileID: 0} 43 | m_RootOrder: 0 44 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 45 | --- !u!23 &23732168056458758 46 | MeshRenderer: 47 | m_ObjectHideFlags: 1 48 | m_PrefabParentObject: {fileID: 0} 49 | m_PrefabInternal: {fileID: 100100000} 50 | m_GameObject: {fileID: 1813123692307056} 51 | m_Enabled: 1 52 | m_CastShadows: 1 53 | m_ReceiveShadows: 1 54 | m_DynamicOccludee: 1 55 | m_MotionVectors: 1 56 | m_LightProbeUsage: 1 57 | m_ReflectionProbeUsage: 1 58 | m_Materials: 59 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 60 | m_StaticBatchInfo: 61 | firstSubMesh: 0 62 | subMeshCount: 0 63 | m_StaticBatchRoot: {fileID: 0} 64 | m_ProbeAnchor: {fileID: 0} 65 | m_LightProbeVolumeOverride: {fileID: 0} 66 | m_ScaleInLightmap: 1 67 | m_PreserveUVs: 1 68 | m_IgnoreNormalsForChartDetection: 0 69 | m_ImportantGI: 0 70 | m_StitchLightmapSeams: 0 71 | m_SelectedEditorRenderState: 3 72 | m_MinimumChartSize: 4 73 | m_AutoUVMaxDistance: 0.5 74 | m_AutoUVMaxAngle: 89 75 | m_LightmapParameters: {fileID: 0} 76 | m_SortingLayerID: 0 77 | m_SortingLayer: 0 78 | m_SortingOrder: 0 79 | --- !u!33 &33604653122287540 80 | MeshFilter: 81 | m_ObjectHideFlags: 1 82 | m_PrefabParentObject: {fileID: 0} 83 | m_PrefabInternal: {fileID: 100100000} 84 | m_GameObject: {fileID: 1813123692307056} 85 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 86 | --- !u!114 &114510256591346848 87 | MonoBehaviour: 88 | m_ObjectHideFlags: 1 89 | m_PrefabParentObject: {fileID: 0} 90 | m_PrefabInternal: {fileID: 100100000} 91 | m_GameObject: {fileID: 1813123692307056} 92 | m_Enabled: 1 93 | m_EditorHideFlags: 0 94 | m_Script: {fileID: 11500000, guid: 9f74a2308edfb224882e5fb481d58ebe, type: 3} 95 | m_Name: 96 | m_EditorClassIdentifier: 97 | node: 4 98 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Right Controller.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1069190713629296} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1069190713629296 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4666131520364568} 22 | - component: {fileID: 33430412202994142} 23 | - component: {fileID: 23602884626865694} 24 | - component: {fileID: 114393683668178336} 25 | m_Layer: 0 26 | m_Name: Vrg Right Controller 27 | m_TagString: Untagged 28 | m_Icon: {fileID: 0} 29 | m_NavMeshLayer: 0 30 | m_StaticEditorFlags: 0 31 | m_IsActive: 1 32 | --- !u!4 &4666131520364568 33 | Transform: 34 | m_ObjectHideFlags: 1 35 | m_PrefabParentObject: {fileID: 0} 36 | m_PrefabInternal: {fileID: 100100000} 37 | m_GameObject: {fileID: 1069190713629296} 38 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 39 | m_LocalPosition: {x: 0, y: 0, z: 0} 40 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 41 | m_Children: [] 42 | m_Father: {fileID: 0} 43 | m_RootOrder: 0 44 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 45 | --- !u!23 &23602884626865694 46 | MeshRenderer: 47 | m_ObjectHideFlags: 1 48 | m_PrefabParentObject: {fileID: 0} 49 | m_PrefabInternal: {fileID: 100100000} 50 | m_GameObject: {fileID: 1069190713629296} 51 | m_Enabled: 1 52 | m_CastShadows: 1 53 | m_ReceiveShadows: 1 54 | m_DynamicOccludee: 1 55 | m_MotionVectors: 1 56 | m_LightProbeUsage: 1 57 | m_ReflectionProbeUsage: 1 58 | m_Materials: 59 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 60 | m_StaticBatchInfo: 61 | firstSubMesh: 0 62 | subMeshCount: 0 63 | m_StaticBatchRoot: {fileID: 0} 64 | m_ProbeAnchor: {fileID: 0} 65 | m_LightProbeVolumeOverride: {fileID: 0} 66 | m_ScaleInLightmap: 1 67 | m_PreserveUVs: 1 68 | m_IgnoreNormalsForChartDetection: 0 69 | m_ImportantGI: 0 70 | m_StitchLightmapSeams: 0 71 | m_SelectedEditorRenderState: 3 72 | m_MinimumChartSize: 4 73 | m_AutoUVMaxDistance: 0.5 74 | m_AutoUVMaxAngle: 89 75 | m_LightmapParameters: {fileID: 0} 76 | m_SortingLayerID: 0 77 | m_SortingLayer: 0 78 | m_SortingOrder: 0 79 | --- !u!33 &33430412202994142 80 | MeshFilter: 81 | m_ObjectHideFlags: 1 82 | m_PrefabParentObject: {fileID: 0} 83 | m_PrefabInternal: {fileID: 100100000} 84 | m_GameObject: {fileID: 1069190713629296} 85 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 86 | --- !u!114 &114393683668178336 87 | MonoBehaviour: 88 | m_ObjectHideFlags: 1 89 | m_PrefabParentObject: {fileID: 0} 90 | m_PrefabInternal: {fileID: 100100000} 91 | m_GameObject: {fileID: 1069190713629296} 92 | m_Enabled: 1 93 | m_EditorHideFlags: 0 94 | m_Script: {fileID: 11500000, guid: 9f74a2308edfb224882e5fb481d58ebe, type: 3} 95 | m_Name: 96 | m_EditorClassIdentifier: 97 | node: 5 98 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgWinMRMotionControllerDevice.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_WSA 2 | using UnityEngine; 3 | using UnityEngine.XR; 4 | using UnityEngine.XR.WSA.Input; 5 | 6 | namespace VrGrabber 7 | { 8 | 9 | public class VrgWinMRMotionControllerDevice : IDevice 10 | { 11 | public bool GetClick(ControllerSide side) 12 | { 13 | switch (side) 14 | { 15 | case ControllerSide.Left: 16 | return Input.GetKey(KeyCode.JoystickButton16); 17 | case ControllerSide.Right: 18 | return Input.GetKey(KeyCode.JoystickButton17); 19 | default: 20 | return false; 21 | } 22 | } 23 | 24 | public Vector2 GetCoord(ControllerSide side) 25 | { 26 | var interactionStates = InteractionManager.GetCurrentReading(); 27 | foreach (var state in interactionStates) 28 | { 29 | if (side == ControllerSide.Left && state.source.handedness == InteractionSourceHandedness.Left || 30 | side == ControllerSide.Right && state.source.handedness == InteractionSourceHandedness.Right) 31 | { 32 | return state.touchpadPosition; 33 | } 34 | } 35 | return Vector2.zero; 36 | } 37 | 38 | public float GetHold(ControllerSide side) 39 | { 40 | var interactionStates = InteractionManager.GetCurrentReading(); 41 | foreach (var state in interactionStates) 42 | { 43 | if (side == ControllerSide.Left && state.source.handedness == InteractionSourceHandedness.Left || 44 | side == ControllerSide.Right && state.source.handedness == InteractionSourceHandedness.Right) 45 | { 46 | if (state.grasped) 47 | { 48 | return 1f; 49 | } 50 | else 51 | { 52 | return 0f; 53 | } 54 | } 55 | } 56 | return 0.0f; 57 | } 58 | 59 | public bool GetHover(ControllerSide side) 60 | { 61 | switch (side) 62 | { 63 | case ControllerSide.Left: 64 | return Input.GetKey(KeyCode.JoystickButton18); 65 | case ControllerSide.Right: 66 | return Input.GetKey(KeyCode.JoystickButton19); 67 | default: 68 | return false; 69 | } 70 | } 71 | 72 | public Vector3 GetLocalPosition(ControllerSide side) 73 | { 74 | switch (side) 75 | { 76 | case ControllerSide.Left: 77 | return InputTracking.GetLocalPosition(XRNode.LeftHand); 78 | case ControllerSide.Right: 79 | return InputTracking.GetLocalPosition(XRNode.RightHand); 80 | default: 81 | return Vector2.zero; 82 | } 83 | } 84 | 85 | public Quaternion GetLocalRotation(ControllerSide side) 86 | { 87 | switch (side) 88 | { 89 | case ControllerSide.Left: 90 | return InputTracking.GetLocalRotation(XRNode.LeftHand); 91 | case ControllerSide.Right: 92 | return InputTracking.GetLocalRotation(XRNode.RightHand); 93 | default: 94 | return Quaternion.identity; 95 | } 96 | } 97 | } 98 | 99 | } 100 | #endif -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgGrabbable.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.XR; 3 | using UnityEngine.Events; 4 | using System.Collections.Generic; 5 | 6 | namespace VrGrabber 7 | { 8 | 9 | [RequireComponent(typeof(Rigidbody))] 10 | public class VrgGrabbable : MonoBehaviour 11 | { 12 | public bool isScalable = true; 13 | public bool avoidIntersection = false; 14 | public float maxSpeed = 10f; 15 | 16 | public UnityEvent onGrabbed = new UnityEvent(); 17 | public UnityEvent onReleased = new UnityEvent(); 18 | public UnityEvent onGrabClicked = new UnityEvent(); 19 | public UnityEvent onGrabMoved = new UnityEvent(); 20 | 21 | int grabId_ = 0; 22 | float grabClickCooldown_ = 0f; 23 | 24 | List grabbers_ = new List(); 25 | public List grabbers 26 | { 27 | get { return grabbers_; } 28 | } 29 | 30 | Rigidbody rigidbody_; 31 | public new Rigidbody rigidbody 32 | { 33 | get { return rigidbody_; } 34 | } 35 | 36 | public bool isGrabbed 37 | { 38 | get { return grabbers_.Count > 0; } 39 | } 40 | 41 | public bool isMultiGrabbed 42 | { 43 | get { return grabbers_.Count > 1; } 44 | } 45 | 46 | public Vector3 position 47 | { 48 | get { return rigidbody.position; } 49 | set { SetPosition(value); } 50 | } 51 | 52 | public Quaternion rotation 53 | { 54 | get { return rigidbody.rotation; } 55 | set { SetRotation(value); } 56 | } 57 | 58 | public Vector3 scale 59 | { 60 | get { return transform.localScale; } 61 | set { transform.localScale = value; } 62 | } 63 | 64 | public Vector3 velocity 65 | { 66 | get { return rigidbody.velocity; } 67 | set { rigidbody.velocity = value; } 68 | } 69 | 70 | public Vector3 angularVelocity 71 | { 72 | get { return rigidbody.angularVelocity; } 73 | set { rigidbody.angularVelocity = value; } 74 | } 75 | 76 | private Vector3 vrWorldPos 77 | { 78 | get 79 | { 80 | var vrLocalPos = InputTracking.GetLocalPosition(XRNode.CenterEye); 81 | var vrWorldPos = Camera.main.cameraToWorldMatrix.MultiplyPoint(vrLocalPos); 82 | return vrWorldPos; 83 | } 84 | } 85 | 86 | void Awake() 87 | { 88 | rigidbody_ = GetComponent(); 89 | } 90 | 91 | void Update() 92 | { 93 | grabClickCooldown_ -= Time.deltaTime; 94 | 95 | if (isGrabbed) 96 | { 97 | onGrabMoved.Invoke(); 98 | } 99 | } 100 | 101 | void FixedUpdate() 102 | { 103 | if (isGrabbed && rigidbody.useGravity && !rigidbody.isKinematic) 104 | { 105 | rigidbody.AddForce(-Physics.gravity); 106 | } 107 | } 108 | 109 | public int OnGrabbed(VrgGrabber grabber) 110 | { 111 | grabbers_.Add(grabber); 112 | 113 | velocity = Vector3.zero; 114 | angularVelocity = Vector3.zero; 115 | 116 | onGrabbed.Invoke(); 117 | 118 | return grabId_++; 119 | } 120 | 121 | public void OnReleased(VrgGrabber grabber) 122 | { 123 | grabbers_.Remove(grabber); 124 | 125 | onReleased.Invoke(); 126 | } 127 | 128 | public void OnGrabClicked(VrgGrabber grabber) 129 | { 130 | if (grabClickCooldown_ > 0f) return; 131 | onGrabClicked.Invoke(); 132 | grabClickCooldown_ = 0.1f; 133 | } 134 | 135 | void SetPosition(Vector3 dest) 136 | { 137 | if (avoidIntersection) 138 | { 139 | var v = (dest - position) / Time.fixedUnscaledDeltaTime; 140 | if (v.magnitude > maxSpeed) 141 | { 142 | v = v.normalized * maxSpeed; 143 | } 144 | rigidbody.velocity = v; 145 | } 146 | else 147 | { 148 | rigidbody.MovePosition(dest); 149 | } 150 | } 151 | 152 | void SetRotation(Quaternion dest) 153 | { 154 | /* 155 | if (avoidIntersection) 156 | { 157 | var dRot = dest * Quaternion.Inverse(rotation); 158 | var dEuler = dRot.eulerAngles; 159 | if (dEuler.x > 180) dEuler.x -= 360; 160 | if (dEuler.y > 180) dEuler.y -= 360; 161 | if (dEuler.z > 180) dEuler.z -= 360; 162 | var w = dEuler / Time.fixedUnscaledDeltaTime; 163 | rigidbody.angularVelocity = (w - rigidbody.angularVelocity) * 0.01f; 164 | } 165 | else 166 | { 167 | rigidbody.MoveRotation(dest); 168 | } 169 | */ 170 | rigidbody.MoveRotation(dest); 171 | } 172 | } 173 | 174 | } -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 4 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 4 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 4 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 0 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 4 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 70 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 2 136 | antiAliasing: 2 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 4 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 19 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 2 164 | antiAliasing: 2 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 4 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSM: 5 183 | PSP2: 2 184 | Samsung TV: 2 185 | Standalone: 5 186 | Tizen: 2 187 | Web: 5 188 | WebGL: 3 189 | WiiU: 5 190 | Windows Store Apps: 5 191 | XboxOne: 5 192 | iPhone: 2 193 | tvOS: 2 194 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Left Grabber.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1766923493158342} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1029300669237714 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4417886897033160} 22 | - component: {fileID: 135362111297503850} 23 | m_Layer: 0 24 | m_Name: Collider 25 | m_TagString: Untagged 26 | m_Icon: {fileID: 0} 27 | m_NavMeshLayer: 0 28 | m_StaticEditorFlags: 0 29 | m_IsActive: 1 30 | --- !u!1 &1766923493158342 31 | GameObject: 32 | m_ObjectHideFlags: 0 33 | m_PrefabParentObject: {fileID: 0} 34 | m_PrefabInternal: {fileID: 100100000} 35 | serializedVersion: 5 36 | m_Component: 37 | - component: {fileID: 4788090113365204} 38 | - component: {fileID: 54868460236267190} 39 | - component: {fileID: 120689371643996842} 40 | - component: {fileID: 114049894653424962} 41 | - component: {fileID: 114810357824127338} 42 | m_Layer: 0 43 | m_Name: Vrg Left Grabber 44 | m_TagString: Untagged 45 | m_Icon: {fileID: 0} 46 | m_NavMeshLayer: 0 47 | m_StaticEditorFlags: 0 48 | m_IsActive: 1 49 | --- !u!4 &4417886897033160 50 | Transform: 51 | m_ObjectHideFlags: 1 52 | m_PrefabParentObject: {fileID: 0} 53 | m_PrefabInternal: {fileID: 100100000} 54 | m_GameObject: {fileID: 1029300669237714} 55 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 56 | m_LocalPosition: {x: 0, y: 0, z: 0} 57 | m_LocalScale: {x: 1, y: 1, z: 1} 58 | m_Children: [] 59 | m_Father: {fileID: 4788090113365204} 60 | m_RootOrder: 0 61 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 62 | --- !u!4 &4788090113365204 63 | Transform: 64 | m_ObjectHideFlags: 1 65 | m_PrefabParentObject: {fileID: 0} 66 | m_PrefabInternal: {fileID: 100100000} 67 | m_GameObject: {fileID: 1766923493158342} 68 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 69 | m_LocalPosition: {x: 0, y: 0, z: 0} 70 | m_LocalScale: {x: 1, y: 1, z: 1} 71 | m_Children: 72 | - {fileID: 4417886897033160} 73 | m_Father: {fileID: 0} 74 | m_RootOrder: 0 75 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 76 | --- !u!54 &54868460236267190 77 | Rigidbody: 78 | m_ObjectHideFlags: 1 79 | m_PrefabParentObject: {fileID: 0} 80 | m_PrefabInternal: {fileID: 100100000} 81 | m_GameObject: {fileID: 1766923493158342} 82 | serializedVersion: 2 83 | m_Mass: 1 84 | m_Drag: 0 85 | m_AngularDrag: 0.05 86 | m_UseGravity: 0 87 | m_IsKinematic: 1 88 | m_Interpolate: 0 89 | m_Constraints: 0 90 | m_CollisionDetection: 0 91 | --- !u!114 &114049894653424962 92 | MonoBehaviour: 93 | m_ObjectHideFlags: 1 94 | m_PrefabParentObject: {fileID: 0} 95 | m_PrefabInternal: {fileID: 100100000} 96 | m_GameObject: {fileID: 1766923493158342} 97 | m_Enabled: 1 98 | m_EditorHideFlags: 0 99 | m_Script: {fileID: 11500000, guid: 40f52bb2b49943a498e44b97d4085085, type: 3} 100 | m_Name: 101 | m_EditorClassIdentifier: 102 | side: 0 103 | grip: {fileID: 0} 104 | line: {fileID: 0} 105 | maxGrabDistance: 10 106 | stickMoveSpeed: 0.05 107 | layerMask: 108 | serializedVersion: 2 109 | m_Bits: 2147483647 110 | --- !u!114 &114810357824127338 111 | MonoBehaviour: 112 | m_ObjectHideFlags: 1 113 | m_PrefabParentObject: {fileID: 0} 114 | m_PrefabInternal: {fileID: 100100000} 115 | m_GameObject: {fileID: 1766923493158342} 116 | m_Enabled: 1 117 | m_EditorHideFlags: 0 118 | m_Script: {fileID: 11500000, guid: c98c03068b886634c98b87e2e307ebc6, type: 3} 119 | m_Name: 120 | m_EditorClassIdentifier: 121 | maxAngle: 60 122 | jointNum: 32 123 | --- !u!120 &120689371643996842 124 | LineRenderer: 125 | m_ObjectHideFlags: 1 126 | m_PrefabParentObject: {fileID: 0} 127 | m_PrefabInternal: {fileID: 100100000} 128 | m_GameObject: {fileID: 1766923493158342} 129 | m_Enabled: 1 130 | m_CastShadows: 0 131 | m_ReceiveShadows: 0 132 | m_MotionVectors: 0 133 | m_LightProbeUsage: 0 134 | m_ReflectionProbeUsage: 0 135 | m_Materials: 136 | - {fileID: 2100000, guid: ad4c144012fff3142a00c95f833b244a, type: 2} 137 | m_StaticBatchInfo: 138 | firstSubMesh: 0 139 | subMeshCount: 0 140 | m_StaticBatchRoot: {fileID: 0} 141 | m_ProbeAnchor: {fileID: 0} 142 | m_LightProbeVolumeOverride: {fileID: 0} 143 | m_ScaleInLightmap: 1 144 | m_PreserveUVs: 0 145 | m_IgnoreNormalsForChartDetection: 0 146 | m_ImportantGI: 0 147 | m_SelectedEditorRenderState: 3 148 | m_MinimumChartSize: 4 149 | m_AutoUVMaxDistance: 0.5 150 | m_AutoUVMaxAngle: 89 151 | m_LightmapParameters: {fileID: 0} 152 | m_SortingLayerID: 0 153 | m_SortingLayer: 0 154 | m_SortingOrder: 0 155 | m_Positions: 156 | - {x: 0, y: 0, z: 0} 157 | - {x: 0, y: 0, z: 1} 158 | m_Parameters: 159 | serializedVersion: 2 160 | widthMultiplier: 0.01 161 | widthCurve: 162 | serializedVersion: 2 163 | m_Curve: 164 | - serializedVersion: 2 165 | time: 0 166 | value: 0 167 | inSlope: 0 168 | outSlope: 0 169 | tangentMode: 0 170 | - serializedVersion: 2 171 | time: 0.022286821 172 | value: 1 173 | inSlope: 0 174 | outSlope: 0 175 | tangentMode: 0 176 | m_PreInfinity: 2 177 | m_PostInfinity: 2 178 | m_RotationOrder: 0 179 | colorGradient: 180 | serializedVersion: 2 181 | key0: {r: 0, g: 1, b: 0.006896496, a: 0} 182 | key1: {r: 0.034482475, g: 0, b: 1, a: 1} 183 | key2: {r: 1, g: 1, b: 1, a: 1} 184 | key3: {r: 0, g: 0, b: 0, a: 0} 185 | key4: {r: 0, g: 0, b: 0, a: 0} 186 | key5: {r: 0, g: 0, b: 0, a: 0} 187 | key6: {r: 0, g: 0, b: 0, a: 0} 188 | key7: {r: 0, g: 0, b: 0, a: 0} 189 | ctime0: 0 190 | ctime1: 65535 191 | ctime2: 65535 192 | ctime3: 0 193 | ctime4: 0 194 | ctime5: 0 195 | ctime6: 0 196 | ctime7: 0 197 | atime0: 0 198 | atime1: 3662 199 | atime2: 62066 200 | atime3: 65535 201 | atime4: 0 202 | atime5: 0 203 | atime6: 0 204 | atime7: 0 205 | m_Mode: 0 206 | m_NumColorKeys: 2 207 | m_NumAlphaKeys: 4 208 | numCornerVertices: 0 209 | numCapVertices: 0 210 | alignment: 0 211 | textureMode: 0 212 | generateLightingData: 0 213 | m_UseWorldSpace: 1 214 | m_Loop: 0 215 | --- !u!135 &135362111297503850 216 | SphereCollider: 217 | m_ObjectHideFlags: 1 218 | m_PrefabParentObject: {fileID: 0} 219 | m_PrefabInternal: {fileID: 100100000} 220 | m_GameObject: {fileID: 1029300669237714} 221 | m_Material: {fileID: 0} 222 | m_IsTrigger: 1 223 | m_Enabled: 1 224 | serializedVersion: 2 225 | m_Radius: 0.1 226 | m_Center: {x: 0, y: 0, z: 0} 227 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Prefabs/Vrg Right Grabber.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1238830876462374} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1238830876462374 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4002061232394670} 22 | - component: {fileID: 54202957679167084} 23 | - component: {fileID: 120167829660119720} 24 | - component: {fileID: 114251522122755498} 25 | - component: {fileID: 114525878838424268} 26 | m_Layer: 0 27 | m_Name: Vrg Right Grabber 28 | m_TagString: Untagged 29 | m_Icon: {fileID: 0} 30 | m_NavMeshLayer: 0 31 | m_StaticEditorFlags: 0 32 | m_IsActive: 1 33 | --- !u!1 &1447145790840988 34 | GameObject: 35 | m_ObjectHideFlags: 0 36 | m_PrefabParentObject: {fileID: 0} 37 | m_PrefabInternal: {fileID: 100100000} 38 | serializedVersion: 5 39 | m_Component: 40 | - component: {fileID: 4974925078748536} 41 | - component: {fileID: 135442760705934192} 42 | m_Layer: 0 43 | m_Name: Collider 44 | m_TagString: Untagged 45 | m_Icon: {fileID: 0} 46 | m_NavMeshLayer: 0 47 | m_StaticEditorFlags: 0 48 | m_IsActive: 1 49 | --- !u!4 &4002061232394670 50 | Transform: 51 | m_ObjectHideFlags: 1 52 | m_PrefabParentObject: {fileID: 0} 53 | m_PrefabInternal: {fileID: 100100000} 54 | m_GameObject: {fileID: 1238830876462374} 55 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 56 | m_LocalPosition: {x: 0, y: 0, z: 0} 57 | m_LocalScale: {x: 1, y: 1, z: 1} 58 | m_Children: 59 | - {fileID: 4974925078748536} 60 | m_Father: {fileID: 0} 61 | m_RootOrder: 0 62 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 63 | --- !u!4 &4974925078748536 64 | Transform: 65 | m_ObjectHideFlags: 1 66 | m_PrefabParentObject: {fileID: 0} 67 | m_PrefabInternal: {fileID: 100100000} 68 | m_GameObject: {fileID: 1447145790840988} 69 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 70 | m_LocalPosition: {x: 0, y: 0, z: 0} 71 | m_LocalScale: {x: 1, y: 1, z: 1} 72 | m_Children: [] 73 | m_Father: {fileID: 4002061232394670} 74 | m_RootOrder: 0 75 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 76 | --- !u!54 &54202957679167084 77 | Rigidbody: 78 | m_ObjectHideFlags: 1 79 | m_PrefabParentObject: {fileID: 0} 80 | m_PrefabInternal: {fileID: 100100000} 81 | m_GameObject: {fileID: 1238830876462374} 82 | serializedVersion: 2 83 | m_Mass: 1 84 | m_Drag: 0 85 | m_AngularDrag: 0.05 86 | m_UseGravity: 0 87 | m_IsKinematic: 1 88 | m_Interpolate: 0 89 | m_Constraints: 0 90 | m_CollisionDetection: 0 91 | --- !u!114 &114251522122755498 92 | MonoBehaviour: 93 | m_ObjectHideFlags: 1 94 | m_PrefabParentObject: {fileID: 0} 95 | m_PrefabInternal: {fileID: 100100000} 96 | m_GameObject: {fileID: 1238830876462374} 97 | m_Enabled: 1 98 | m_EditorHideFlags: 0 99 | m_Script: {fileID: 11500000, guid: 40f52bb2b49943a498e44b97d4085085, type: 3} 100 | m_Name: 101 | m_EditorClassIdentifier: 102 | side: 1 103 | grip: {fileID: 0} 104 | line: {fileID: 0} 105 | maxGrabDistance: 10 106 | stickMoveSpeed: 0.05 107 | layerMask: 108 | serializedVersion: 2 109 | m_Bits: 2147483647 110 | --- !u!114 &114525878838424268 111 | MonoBehaviour: 112 | m_ObjectHideFlags: 1 113 | m_PrefabParentObject: {fileID: 0} 114 | m_PrefabInternal: {fileID: 100100000} 115 | m_GameObject: {fileID: 1238830876462374} 116 | m_Enabled: 1 117 | m_EditorHideFlags: 0 118 | m_Script: {fileID: 11500000, guid: c98c03068b886634c98b87e2e307ebc6, type: 3} 119 | m_Name: 120 | m_EditorClassIdentifier: 121 | maxAngle: 60 122 | jointNum: 32 123 | --- !u!120 &120167829660119720 124 | LineRenderer: 125 | m_ObjectHideFlags: 1 126 | m_PrefabParentObject: {fileID: 0} 127 | m_PrefabInternal: {fileID: 100100000} 128 | m_GameObject: {fileID: 1238830876462374} 129 | m_Enabled: 1 130 | m_CastShadows: 0 131 | m_ReceiveShadows: 0 132 | m_MotionVectors: 0 133 | m_LightProbeUsage: 0 134 | m_ReflectionProbeUsage: 0 135 | m_Materials: 136 | - {fileID: 2100000, guid: ad4c144012fff3142a00c95f833b244a, type: 2} 137 | m_StaticBatchInfo: 138 | firstSubMesh: 0 139 | subMeshCount: 0 140 | m_StaticBatchRoot: {fileID: 0} 141 | m_ProbeAnchor: {fileID: 0} 142 | m_LightProbeVolumeOverride: {fileID: 0} 143 | m_ScaleInLightmap: 1 144 | m_PreserveUVs: 0 145 | m_IgnoreNormalsForChartDetection: 0 146 | m_ImportantGI: 0 147 | m_SelectedEditorRenderState: 3 148 | m_MinimumChartSize: 4 149 | m_AutoUVMaxDistance: 0.5 150 | m_AutoUVMaxAngle: 89 151 | m_LightmapParameters: {fileID: 0} 152 | m_SortingLayerID: 0 153 | m_SortingLayer: 0 154 | m_SortingOrder: 0 155 | m_Positions: 156 | - {x: 0, y: 0, z: 0} 157 | - {x: 0, y: 0, z: 1} 158 | m_Parameters: 159 | serializedVersion: 2 160 | widthMultiplier: 0.01 161 | widthCurve: 162 | serializedVersion: 2 163 | m_Curve: 164 | - serializedVersion: 2 165 | time: 0 166 | value: 0 167 | inSlope: 0 168 | outSlope: 0 169 | tangentMode: 0 170 | - serializedVersion: 2 171 | time: 0.022286821 172 | value: 1 173 | inSlope: 0 174 | outSlope: 0 175 | tangentMode: 0 176 | m_PreInfinity: 2 177 | m_PostInfinity: 2 178 | m_RotationOrder: 0 179 | colorGradient: 180 | serializedVersion: 2 181 | key0: {r: 0, g: 1, b: 0.006896496, a: 0} 182 | key1: {r: 0.034482475, g: 0, b: 1, a: 1} 183 | key2: {r: 1, g: 1, b: 1, a: 1} 184 | key3: {r: 0, g: 0, b: 0, a: 0} 185 | key4: {r: 0, g: 0, b: 0, a: 0} 186 | key5: {r: 0, g: 0, b: 0, a: 0} 187 | key6: {r: 0, g: 0, b: 0, a: 0} 188 | key7: {r: 0, g: 0, b: 0, a: 0} 189 | ctime0: 0 190 | ctime1: 65535 191 | ctime2: 65535 192 | ctime3: 0 193 | ctime4: 0 194 | ctime5: 0 195 | ctime6: 0 196 | ctime7: 0 197 | atime0: 0 198 | atime1: 3662 199 | atime2: 62066 200 | atime3: 65535 201 | atime4: 0 202 | atime5: 0 203 | atime6: 0 204 | atime7: 0 205 | m_Mode: 0 206 | m_NumColorKeys: 2 207 | m_NumAlphaKeys: 4 208 | numCornerVertices: 0 209 | numCapVertices: 0 210 | alignment: 0 211 | textureMode: 0 212 | generateLightingData: 0 213 | m_UseWorldSpace: 1 214 | m_Loop: 0 215 | --- !u!135 &135442760705934192 216 | SphereCollider: 217 | m_ObjectHideFlags: 1 218 | m_PrefabParentObject: {fileID: 0} 219 | m_PrefabInternal: {fileID: 100100000} 220 | m_GameObject: {fileID: 1447145790840988} 221 | m_Material: {fileID: 0} 222 | m_IsTrigger: 1 223 | m_Enabled: 1 224 | serializedVersion: 2 225 | m_Radius: 0.1 226 | m_Center: {x: 0, y: 0, z: 0} 227 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Oculus_GearVR_LThumbstickX 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: 302 | altNegativeButton: 303 | altPositiveButton: 304 | gravity: 0 305 | dead: 0.001 306 | sensitivity: 1 307 | snap: 0 308 | invert: 0 309 | type: 2 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Oculus_GearVR_LThumbstickY 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: 318 | altNegativeButton: 319 | altPositiveButton: 320 | gravity: 0 321 | dead: 0.001 322 | sensitivity: 1 323 | snap: 0 324 | invert: 1 325 | type: 2 326 | axis: 1 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Oculus_GearVR_RThumbstickX 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: 334 | altNegativeButton: 335 | altPositiveButton: 336 | gravity: 0 337 | dead: 0.001 338 | sensitivity: 1 339 | snap: 0 340 | invert: 0 341 | type: 2 342 | axis: 2 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Oculus_GearVR_RThumbstickY 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: 350 | altNegativeButton: 351 | altPositiveButton: 352 | gravity: 0 353 | dead: 0.001 354 | sensitivity: 1 355 | snap: 0 356 | invert: 1 357 | type: 2 358 | axis: 3 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Oculus_GearVR_DpadX 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: 366 | altNegativeButton: 367 | altPositiveButton: 368 | gravity: 0 369 | dead: 0.001 370 | sensitivity: 1 371 | snap: 0 372 | invert: 0 373 | type: 2 374 | axis: 4 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Oculus_GearVR_DpadY 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: 382 | altNegativeButton: 383 | altPositiveButton: 384 | gravity: 0 385 | dead: 0.001 386 | sensitivity: 1 387 | snap: 0 388 | invert: 1 389 | type: 2 390 | axis: 5 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Oculus_GearVR_LIndexTrigger 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: 398 | altNegativeButton: 399 | altPositiveButton: 400 | gravity: 0 401 | dead: 0.001 402 | sensitivity: 1 403 | snap: 0 404 | invert: 0 405 | type: 2 406 | axis: 12 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Oculus_GearVR_RIndexTrigger 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: 414 | altNegativeButton: 415 | altPositiveButton: 416 | gravity: 0 417 | dead: 0.001 418 | sensitivity: 1 419 | snap: 0 420 | invert: 0 421 | type: 2 422 | axis: 11 423 | joyNum: 0 424 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scripts/VrgGrabber.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Events; 3 | using UnityEngine.Assertions; 4 | using System.Collections.Generic; 5 | 6 | namespace VrGrabber 7 | { 8 | 9 | [RequireComponent(typeof(Rigidbody))] 10 | public class VrgGrabber : MonoBehaviour 11 | { 12 | const float grabBeginThreshold = 0.55f; 13 | const float grabEndThreshold = 0.35f; 14 | const float minGrabSmoothDist = 0.5f; 15 | const float maxGrabSmoothDist = 2f; 16 | const float minGrabSmoothFilter = 0.15f; 17 | 18 | public ControllerSide side = ControllerSide.Left; 19 | 20 | public bool isLeft 21 | { 22 | get { return side == ControllerSide.Left; } 23 | } 24 | 25 | public bool isRight 26 | { 27 | get { return side == ControllerSide.Right; } 28 | } 29 | 30 | [SerializeField] 31 | Transform grip = null; 32 | 33 | [SerializeField] 34 | VrgTargetLine line; 35 | 36 | [SerializeField] 37 | float maxGrabDistance = 10f; 38 | 39 | [SerializeField] 40 | float stickMoveSpeed = 0.1f; 41 | 42 | [SerializeField] 43 | LayerMask layerMask = ~0; 44 | 45 | public class TargetClickEvent : UnityEvent {} 46 | public TargetClickEvent onTargetClicked = new TargetClickEvent(); 47 | 48 | internal class AverageVelocity 49 | { 50 | private const int n = 3; 51 | private Vector3[] velocities_ = new Vector3[n]; 52 | private int index_ = 0; 53 | 54 | public Vector3 average 55 | { 56 | get 57 | { 58 | var a = Vector3.zero; 59 | for (int i = 0; i < n; ++i) 60 | { 61 | a += velocities_[i]; 62 | } 63 | return a / n; 64 | } 65 | } 66 | 67 | public void Add(Vector3 velocity) 68 | { 69 | velocities_[index_] = velocity; 70 | index_ = (index_ + 1) % n; 71 | } 72 | } 73 | 74 | internal class GrabInfo 75 | { 76 | public int id = -1; 77 | public VrgGrabber grabber = null; 78 | public VrgGrabbable grabbable = null; 79 | public Matrix4x4 initGripToGrabbableMat; 80 | public Matrix4x4 initGrabbableToGrabMat; 81 | public float distance = 0f; 82 | public AverageVelocity velocity = new AverageVelocity(); 83 | public bool isKinematic = false; 84 | public float smoothFilter = 0f; 85 | public float stickMove = 0f; 86 | 87 | public Matrix4x4 grabMat 88 | { 89 | get 90 | { 91 | var transMat = Matrix4x4.Translate(new Vector3(0, 0, distance)); 92 | return grabber.gripTransform.localToWorldMatrix * transMat; 93 | } 94 | } 95 | 96 | public Matrix4x4 gripToGrabbableMat 97 | { 98 | get 99 | { 100 | return grabMat * initGripToGrabbableMat; 101 | } 102 | } 103 | } 104 | GrabInfo grabInfo_ = new GrabInfo(); 105 | 106 | internal class DualGrabInfo 107 | { 108 | public Vector3 primaryToSecondary; 109 | public Vector3 pos; 110 | public Vector3 center; 111 | public Vector3 scale; 112 | public Quaternion rot; 113 | } 114 | DualGrabInfo dualGrabInfo_ = new DualGrabInfo(); 115 | 116 | internal class CandidateInfo 117 | { 118 | public VrgGrabbable grabbable; 119 | public Collider collider; 120 | public int refCount = 0; 121 | } 122 | Dictionary directGrabCandidates_ = new Dictionary(); 123 | 124 | RaycastHit targetHit_; 125 | bool holdInput_ = false; 126 | bool releaseInput_ = false; 127 | bool isHoldStart_ = false; 128 | bool isHoleEnd_ = false; 129 | Vector3 preRayDirection_; 130 | 131 | public Transform gripTransform 132 | { 133 | get { return grip ? grip : transform; } 134 | } 135 | 136 | public Vector3 gripDir 137 | { 138 | get { return gripTransform.forward; } 139 | } 140 | 141 | public Vector3 targetPos 142 | { 143 | get 144 | { 145 | if (isGrabbing) 146 | { 147 | var grabMat = grabInfo_.grabbable.transform.localToWorldMatrix; 148 | return (grabMat * grabInfo_.initGrabbableToGrabMat).GetPosition(); 149 | } 150 | else if (targetHit_.transform) 151 | { 152 | return targetHit_.point; 153 | } 154 | else if (directGrabCandidates_.Count > 0) 155 | { 156 | return gripTransform.position; 157 | } 158 | else 159 | { 160 | return gripTransform.position + preRayDirection_ * maxGrabDistance; 161 | } 162 | } 163 | } 164 | 165 | public bool isGrabbing 166 | { 167 | get { return grabInfo_.grabbable != null; } 168 | } 169 | 170 | VrgGrabber opposite 171 | { 172 | get 173 | { 174 | if (!isGrabbing) 175 | { 176 | return null; 177 | } 178 | return grabInfo_.grabbable.grabbers.Find(grabber => grabber != this); 179 | } 180 | } 181 | 182 | public bool isPrimary 183 | { 184 | get 185 | { 186 | if (!isGrabbing) return false; 187 | 188 | if (!grabInfo_.grabbable.isMultiGrabbed) return true; 189 | 190 | return grabInfo_.id < opposite.grabInfo_.id; 191 | } 192 | } 193 | 194 | void Update() 195 | { 196 | UpdateInput(); 197 | UpdateGrab(); 198 | } 199 | 200 | void LateUpdate() 201 | { 202 | UpdateTransform(); 203 | 204 | if (!isGrabbing) 205 | { 206 | UpdateTouch(); 207 | } 208 | } 209 | 210 | void FixedUpdate() 211 | { 212 | if (isGrabbing) 213 | { 214 | FixedUpdateGrabbingObject(); 215 | } 216 | } 217 | 218 | void OnTriggerEnter(Collider collider) 219 | { 220 | var grabbable = 221 | collider.GetComponent() ?? 222 | collider.GetComponentInParent(); 223 | if (!grabbable) return; 224 | 225 | CandidateInfo info; 226 | if (!directGrabCandidates_.TryGetValue(collider, out info)) 227 | { 228 | info = new CandidateInfo(); 229 | info.collider = collider; 230 | info.grabbable = grabbable; 231 | directGrabCandidates_.Add(collider, info); 232 | } 233 | info.refCount++; 234 | } 235 | 236 | void OnTriggerExit(Collider collider) 237 | { 238 | CandidateInfo info = null; 239 | if (!directGrabCandidates_.TryGetValue(collider, out info)) return; 240 | 241 | info.refCount--; 242 | if (info.refCount <= 0) 243 | { 244 | directGrabCandidates_.Remove(collider); 245 | } 246 | } 247 | 248 | void UpdateTransform() 249 | { 250 | transform.localPosition = Device.instance.GetLocalPosition(side); 251 | transform.localRotation = Device.instance.GetLocalRotation(side); 252 | } 253 | 254 | void UpdateInput() 255 | { 256 | var preHoldInput = holdInput_; 257 | holdInput_ = Device.instance.GetHold(side); 258 | releaseInput_ = Device.instance.GetRelease(side); 259 | isHoldStart_ = holdInput_ == true; 260 | isHoleEnd_ = releaseInput_ == true; 261 | //isHoldStart_ = (holdInput_ >= grabBeginThreshold) && (preHoldInput < grabBeginThreshold); 262 | //isHoleEnd_ = (holdInput_ <= grabEndThreshold) && (preHoldInput > grabEndThreshold); 263 | } 264 | 265 | void UpdateGrab() 266 | { 267 | if (isHoldStart_) 268 | { 269 | DirectGrab(); 270 | RemoteGrab(); 271 | } 272 | else if (isHoleEnd_) 273 | { 274 | Release(); 275 | } 276 | } 277 | 278 | void UpdateTouch() 279 | { 280 | var forward = gripTransform.forward; 281 | 282 | var ray = new Ray(); 283 | ray.origin = gripTransform.position; 284 | ray.direction = Vector3.Lerp(preRayDirection_, forward, 0.25f); 285 | 286 | targetHit_ = new RaycastHit(); 287 | bool hit = Physics.Raycast(ray, out targetHit_, maxGrabDistance, layerMask); 288 | preRayDirection_ = hit ? ray.direction : forward; 289 | } 290 | 291 | void Grab(VrgGrabbable grabbable, float distance) 292 | { 293 | grabInfo_.grabber = this; 294 | grabInfo_.grabbable = grabbable; 295 | grabInfo_.distance = distance; 296 | var grabMat = grabInfo_.grabMat; 297 | grabInfo_.initGripToGrabbableMat = grabMat.inverse * grabbable.transform.localToWorldMatrix; 298 | grabInfo_.initGrabbableToGrabMat = grabbable.transform.worldToLocalMatrix * grabMat; 299 | grabInfo_.isKinematic = grabbable.rigidbody.isKinematic; 300 | 301 | if (!grabbable.avoidIntersection) 302 | { 303 | grabbable.rigidbody.isKinematic = true; 304 | } 305 | 306 | if (grabbable.isGrabbed) 307 | { 308 | SecondGrab(grabbable); 309 | } 310 | 311 | grabInfo_.id = grabbable.OnGrabbed(this); 312 | } 313 | 314 | void DirectGrab() 315 | { 316 | if (isGrabbing || directGrabCandidates_.Count == 0) return; 317 | 318 | VrgGrabbable grabbable = null; 319 | float minDist = float.MaxValue; 320 | 321 | var gripPos = gripTransform.position; 322 | foreach (var kv in directGrabCandidates_) 323 | { 324 | var candidate = kv.Value; 325 | var pos = candidate.collider.ClosestPoint(gripPos); 326 | var dist = Vector3.Distance(gripPos, pos); 327 | 328 | if (dist < minDist) 329 | { 330 | grabbable = candidate.grabbable; 331 | minDist = dist; 332 | } 333 | } 334 | 335 | if (grabbable) 336 | { 337 | Grab(grabbable, 0f); 338 | } 339 | } 340 | 341 | void RemoteGrab() 342 | { 343 | if (isGrabbing) return; 344 | 345 | var ray = new Ray(); 346 | ray.origin = gripTransform.position; 347 | ray.direction = gripTransform.forward; 348 | RaycastHit hit; 349 | 350 | if (!Physics.Raycast(ray, out hit, maxGrabDistance, layerMask)) 351 | { 352 | return; 353 | } 354 | 355 | var grabbable = 356 | hit.collider.GetComponent() ?? 357 | hit.collider.GetComponentInParent(); 358 | 359 | if (grabbable) 360 | { 361 | Grab(grabbable, hit.distance); 362 | } 363 | } 364 | 365 | void SecondGrab(VrgGrabbable grabbable) 366 | { 367 | var primary = opposite; 368 | var secondary = this; 369 | 370 | var primaryMat = primary.grabInfo_.gripToGrabbableMat; 371 | var secondaryMat = secondary.grabInfo_.gripToGrabbableMat; 372 | var primaryPos = primaryMat.GetPosition(); 373 | var secondaryPos = secondaryMat.GetPosition(); 374 | var primaryGripPos = primary.gripTransform.position; 375 | var secondaryGripPos = secondary.gripTransform.position; 376 | 377 | primary.dualGrabInfo_.primaryToSecondary = primaryGripPos - secondaryGripPos; 378 | primary.dualGrabInfo_.pos = grabbable.transform.position; 379 | primary.dualGrabInfo_.center = (primaryPos + secondaryPos) / 2; 380 | primary.dualGrabInfo_.rot = grabbable.transform.rotation; 381 | primary.dualGrabInfo_.scale = grabbable.transform.localScale; 382 | 383 | grabInfo_.isKinematic = primary.grabInfo_.isKinematic; 384 | } 385 | 386 | void Release() 387 | { 388 | if (!isGrabbing) return; 389 | 390 | var grabbable = grabInfo_.grabbable; 391 | 392 | Assert.IsTrue(grabbable.isGrabbed); 393 | 394 | grabbable.velocity = grabInfo_.velocity.average; 395 | grabbable.OnReleased(this); 396 | 397 | if (grabbable.isGrabbed) 398 | { 399 | // opposite.ReGrab(); 400 | } 401 | else 402 | { 403 | grabbable.rigidbody.isKinematic = grabInfo_.isKinematic; 404 | } 405 | 406 | grabInfo_ = new GrabInfo(); 407 | } 408 | 409 | void ReGrab() 410 | { 411 | var grabbable = grabInfo_.grabbable; 412 | if (!grabbable) return; 413 | 414 | var grabMat = grabInfo_.grabMat; 415 | grabInfo_.initGripToGrabbableMat = grabMat.inverse * grabbable.transform.localToWorldMatrix; 416 | } 417 | 418 | void FixedUpdateGrabbingObject() 419 | { 420 | if (Device.instance.GetClick(side)) 421 | { 422 | grabInfo_.grabbable.OnGrabClicked(this); 423 | } 424 | 425 | if (grabInfo_.grabbable.isMultiGrabbed) 426 | { 427 | FixedUpdateGrabbingObjectByDualHand(); 428 | } 429 | else 430 | { 431 | FixedUpdateGrabbingObjectBySingleHand(); 432 | } 433 | } 434 | 435 | void FixedUpdateGrabbingObjectBySingleHand() 436 | { 437 | var grabbable = grabInfo_.grabbable; 438 | 439 | var stickY = Device.instance.GetCoord(side).y; 440 | var stickMove = stickY * stickMoveSpeed; 441 | var stickMoveFilter = stickY > Mathf.Epsilon ? 0.1f : 0.3f; 442 | grabInfo_.stickMove += (stickMove - grabInfo_.stickMove) * stickMoveFilter; 443 | 444 | var dist = Mathf.Clamp(grabInfo_.distance + grabInfo_.stickMove, 0f, maxGrabDistance); 445 | var actualDist = (targetPos - gripTransform.position).magnitude; 446 | var deltaDist = dist - actualDist; 447 | var threshDist = Mathf.Max(dist * 0.1f, 0.1f); 448 | if (Mathf.Abs(deltaDist) > threshDist) 449 | { 450 | dist = Mathf.Lerp(grabInfo_.distance, actualDist, 0.05f); 451 | } 452 | grabInfo_.distance = dist; 453 | 454 | var mat = grabInfo_.gripToGrabbableMat; 455 | var pos = mat.GetPosition(); 456 | var rot = mat.GetRotation(); 457 | 458 | FixedUpdateGrabbingObjectTransform(pos, rot, grabbable.transform.localScale); 459 | } 460 | 461 | void FixedUpdateGrabbingObjectByDualHand() 462 | { 463 | if (!isPrimary) return; 464 | 465 | var secondary = opposite; 466 | Assert.IsNotNull(secondary); 467 | 468 | var primaryGripPos = gripTransform.position; 469 | var primaryGripRot = gripTransform.rotation; 470 | var secondaryGripPos = secondary.gripTransform.position; 471 | var secondaryGripRot = secondary.gripTransform.rotation; 472 | 473 | var primaryMat = grabInfo_.gripToGrabbableMat; 474 | var secondaryMat = secondary.grabInfo_.gripToGrabbableMat; 475 | var primaryPos = primaryMat.GetPosition(); 476 | var secondaryPos = secondaryMat.GetPosition(); 477 | 478 | var center = (primaryPos + secondaryPos) / 2; 479 | var dCenter = center - dualGrabInfo_.center; 480 | var pos = dualGrabInfo_.pos + dCenter; 481 | 482 | var primaryToSecondary = primaryGripPos - secondaryGripPos; 483 | var currentDir = primaryToSecondary.normalized; 484 | var initDir = dualGrabInfo_.primaryToSecondary.normalized; 485 | var dRot = Quaternion.FromToRotation(initDir, currentDir); 486 | var rot = dRot * dualGrabInfo_.rot; 487 | 488 | var scale = dualGrabInfo_.scale; 489 | if (grabInfo_.grabbable.isScalable) 490 | { 491 | var currentDistance = primaryToSecondary.magnitude; 492 | var initDistance = dualGrabInfo_.primaryToSecondary.magnitude; 493 | scale *= currentDistance / initDistance; 494 | } 495 | 496 | grabInfo_.smoothFilter = 0f; 497 | FixedUpdateGrabbingObjectTransform(pos, rot, scale); 498 | } 499 | 500 | void FixedUpdateGrabbingObjectTransform(Vector3 pos, Quaternion rot, Vector3 scale) 501 | { 502 | var grabbable = grabInfo_.grabbable; 503 | 504 | var a = (Mathf.Clamp(grabInfo_.distance, minGrabSmoothDist, maxGrabSmoothDist) - minGrabSmoothDist) / (maxGrabSmoothDist - minGrabSmoothDist); 505 | var targetFilter = 1f - (1f - minGrabSmoothFilter) * a; 506 | var filter = grabInfo_.smoothFilter + (targetFilter - grabInfo_.smoothFilter) * 0.1f; 507 | grabInfo_.smoothFilter = filter; 508 | 509 | pos = Vector3.Lerp(grabbable.position, pos, filter); 510 | scale = Vector3.Lerp(grabbable.transform.localScale, scale, filter); 511 | 512 | var v = (pos - grabbable.position) / Time.fixedDeltaTime; 513 | grabInfo_.velocity.Add(v); 514 | 515 | grabbable.scale = scale; 516 | grabbable.position = pos; 517 | grabbable.rotation = rot; 518 | } 519 | } 520 | 521 | } 522 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 15 7 | productGUID: e8859c765e4efb044be55a3f6c01ffc8 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: VRGrabber 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | tizenShowActivityIndicatorOnLoading: -1 56 | iosAppInBackgroundBehavior: 0 57 | displayResolutionDialog: 1 58 | iosAllowHTTPDownload: 1 59 | allowedAutorotateToPortrait: 1 60 | allowedAutorotateToPortraitUpsideDown: 1 61 | allowedAutorotateToLandscapeRight: 1 62 | allowedAutorotateToLandscapeLeft: 1 63 | useOSAutorotation: 1 64 | use32BitDisplayBuffer: 1 65 | preserveFramebufferAlpha: 0 66 | disableDepthAndStencilBuffers: 0 67 | androidBlitType: 0 68 | defaultIsNativeResolution: 1 69 | macRetinaSupport: 1 70 | runInBackground: 0 71 | captureSingleScreen: 0 72 | muteOtherAudioSources: 0 73 | Prepare IOS For Recording: 0 74 | Force IOS Speakers When Recording: 0 75 | deferSystemGesturesMode: 0 76 | hideHomeButton: 0 77 | submitAnalytics: 1 78 | usePlayerLog: 1 79 | bakeCollisionMeshes: 0 80 | forceSingleInstance: 0 81 | resizableWindow: 0 82 | useMacAppStoreValidation: 0 83 | macAppStoreCategory: public.app-category.games 84 | gpuSkinning: 0 85 | graphicsJobs: 0 86 | xboxPIXTextureCapture: 0 87 | xboxEnableAvatar: 0 88 | xboxEnableKinect: 0 89 | xboxEnableKinectAutoTracking: 0 90 | xboxEnableFitness: 0 91 | visibleInBackground: 1 92 | allowFullscreenSwitch: 1 93 | graphicsJobMode: 0 94 | fullscreenMode: -1 95 | xboxSpeechDB: 0 96 | xboxEnableHeadOrientation: 0 97 | xboxEnableGuest: 0 98 | xboxEnablePIXSampling: 0 99 | metalFramebufferOnly: 0 100 | n3dsDisableStereoscopicView: 0 101 | n3dsEnableSharedListOpt: 1 102 | n3dsEnableVSync: 0 103 | xboxOneResolution: 0 104 | xboxOneSResolution: 0 105 | xboxOneXResolution: 3 106 | xboxOneMonoLoggingLevel: 0 107 | xboxOneLoggingLevel: 1 108 | xboxOneDisableEsram: 0 109 | xboxOnePresentImmediateThreshold: 0 110 | videoMemoryForVertexBuffers: 0 111 | psp2PowerMode: 0 112 | psp2AcquireBGM: 1 113 | m_SupportedAspectRatios: 114 | 4:3: 1 115 | 5:4: 1 116 | 16:10: 1 117 | 16:9: 1 118 | Others: 1 119 | bundleVersion: 1.0 120 | preloadedAssets: [] 121 | metroInputSource: 0 122 | wsaTransparentSwapchain: 0 123 | m_HolographicPauseOnTrackingLoss: 1 124 | xboxOneDisableKinectGpuReservation: 0 125 | xboxOneEnable7thCore: 0 126 | vrSettings: 127 | cardboard: 128 | depthFormat: 0 129 | enableTransitionView: 0 130 | daydream: 131 | depthFormat: 0 132 | useSustainedPerformanceMode: 0 133 | enableVideoLayer: 0 134 | useProtectedVideoMemory: 0 135 | minimumSupportedHeadTracking: 0 136 | maximumSupportedHeadTracking: 1 137 | hololens: 138 | depthFormat: 1 139 | depthBufferSharingEnabled: 0 140 | enable360StereoCapture: 0 141 | oculus: 142 | sharedDepthBuffer: 0 143 | dashSupport: 0 144 | protectGraphicsMemory: 0 145 | useHDRDisplay: 0 146 | m_ColorGamuts: 00000000 147 | targetPixelDensity: 30 148 | resolutionScalingMode: 0 149 | androidSupportedAspectRatio: 1 150 | androidMaxAspectRatio: 2.1 151 | applicationIdentifier: 152 | Metro: com.oculus.UnitySample 153 | Standalone: com.oculus.UnitySample 154 | buildNumber: {} 155 | AndroidBundleVersionCode: 1 156 | AndroidMinSdkVersion: 16 157 | AndroidTargetSdkVersion: 0 158 | AndroidPreferredInstallLocation: 0 159 | aotOptions: 160 | stripEngineCode: 1 161 | iPhoneStrippingLevel: 0 162 | iPhoneScriptCallOptimization: 0 163 | ForceInternetPermission: 0 164 | ForceSDCardPermission: 0 165 | CreateWallpaper: 0 166 | APKExpansionFiles: 0 167 | keepLoadedShadersAlive: 0 168 | StripUnusedMeshComponents: 0 169 | VertexChannelCompressionMask: 214 170 | iPhoneSdkVersion: 988 171 | iOSTargetOSVersionString: 8.0 172 | tvOSSdkVersion: 0 173 | tvOSRequireExtendedGameController: 0 174 | tvOSTargetOSVersionString: 9.0 175 | uIPrerenderedIcon: 0 176 | uIRequiresPersistentWiFi: 0 177 | uIRequiresFullScreen: 1 178 | uIStatusBarHidden: 1 179 | uIExitOnSuspend: 0 180 | uIStatusBarStyle: 0 181 | iPhoneSplashScreen: {fileID: 0} 182 | iPhoneHighResSplashScreen: {fileID: 0} 183 | iPhoneTallHighResSplashScreen: {fileID: 0} 184 | iPhone47inSplashScreen: {fileID: 0} 185 | iPhone55inPortraitSplashScreen: {fileID: 0} 186 | iPhone55inLandscapeSplashScreen: {fileID: 0} 187 | iPhone58inPortraitSplashScreen: {fileID: 0} 188 | iPhone58inLandscapeSplashScreen: {fileID: 0} 189 | iPadPortraitSplashScreen: {fileID: 0} 190 | iPadHighResPortraitSplashScreen: {fileID: 0} 191 | iPadLandscapeSplashScreen: {fileID: 0} 192 | iPadHighResLandscapeSplashScreen: {fileID: 0} 193 | appleTVSplashScreen: {fileID: 0} 194 | appleTVSplashScreen2x: {fileID: 0} 195 | tvOSSmallIconLayers: [] 196 | tvOSSmallIconLayers2x: [] 197 | tvOSLargeIconLayers: [] 198 | tvOSLargeIconLayers2x: [] 199 | tvOSTopShelfImageLayers: [] 200 | tvOSTopShelfImageLayers2x: [] 201 | tvOSTopShelfImageWideLayers: [] 202 | tvOSTopShelfImageWideLayers2x: [] 203 | iOSLaunchScreenType: 0 204 | iOSLaunchScreenPortrait: {fileID: 0} 205 | iOSLaunchScreenLandscape: {fileID: 0} 206 | iOSLaunchScreenBackgroundColor: 207 | serializedVersion: 2 208 | rgba: 0 209 | iOSLaunchScreenFillPct: 100 210 | iOSLaunchScreenSize: 100 211 | iOSLaunchScreenCustomXibPath: 212 | iOSLaunchScreeniPadType: 0 213 | iOSLaunchScreeniPadImage: {fileID: 0} 214 | iOSLaunchScreeniPadBackgroundColor: 215 | serializedVersion: 2 216 | rgba: 0 217 | iOSLaunchScreeniPadFillPct: 100 218 | iOSLaunchScreeniPadSize: 100 219 | iOSLaunchScreeniPadCustomXibPath: 220 | iOSUseLaunchScreenStoryboard: 0 221 | iOSLaunchScreenCustomStoryboardPath: 222 | iOSDeviceRequirements: [] 223 | iOSURLSchemes: [] 224 | iOSBackgroundModes: 0 225 | iOSMetalForceHardShadows: 0 226 | metalEditorSupport: 1 227 | metalAPIValidation: 1 228 | iOSRenderExtraFrameOnPause: 0 229 | appleDeveloperTeamID: 230 | iOSManualSigningProvisioningProfileID: 231 | tvOSManualSigningProvisioningProfileID: 232 | appleEnableAutomaticSigning: 0 233 | iOSRequireARKit: 0 234 | appleEnableProMotion: 0 235 | clonedFromGUID: 00000000000000000000000000000000 236 | templatePackageId: 237 | templateDefaultScene: 238 | AndroidTargetArchitectures: 5 239 | AndroidSplashScreenScale: 0 240 | androidSplashScreen: {fileID: 0} 241 | AndroidKeystoreName: 242 | AndroidKeyaliasName: 243 | AndroidTVCompatibility: 1 244 | AndroidIsGame: 1 245 | AndroidEnableTango: 0 246 | androidEnableBanner: 1 247 | androidUseLowAccuracyLocation: 0 248 | m_AndroidBanners: 249 | - width: 320 250 | height: 180 251 | banner: {fileID: 0} 252 | androidGamepadSupportLevel: 0 253 | resolutionDialogBanner: {fileID: 0} 254 | m_BuildTargetIcons: [] 255 | m_BuildTargetPlatformIcons: [] 256 | m_BuildTargetBatching: [] 257 | m_BuildTargetGraphicsAPIs: [] 258 | m_BuildTargetVRSettings: 259 | - m_BuildTarget: Standalone 260 | m_Enabled: 1 261 | m_Devices: 262 | - Oculus 263 | - m_BuildTarget: Metro 264 | m_Enabled: 1 265 | m_Devices: 266 | - WindowsMR 267 | m_BuildTargetEnableVuforiaSettings: [] 268 | openGLRequireES31: 0 269 | openGLRequireES31AEP: 0 270 | m_TemplateCustomTags: {} 271 | mobileMTRendering: 272 | iPhone: 1 273 | tvOS: 1 274 | m_BuildTargetGroupLightmapEncodingQuality: 275 | - m_BuildTarget: Standalone 276 | m_EncodingQuality: 1 277 | - m_BuildTarget: XboxOne 278 | m_EncodingQuality: 1 279 | - m_BuildTarget: PS4 280 | m_EncodingQuality: 1 281 | playModeTestRunnerEnabled: 0 282 | runPlayModeTestAsEditModeTest: 0 283 | actionOnDotNetUnhandledException: 1 284 | enableInternalProfiler: 0 285 | logObjCUncaughtExceptions: 1 286 | enableCrashReportAPI: 0 287 | cameraUsageDescription: 288 | locationUsageDescription: 289 | microphoneUsageDescription: 290 | switchNetLibKey: 291 | switchSocketMemoryPoolSize: 6144 292 | switchSocketAllocatorPoolSize: 128 293 | switchSocketConcurrencyLimit: 14 294 | switchScreenResolutionBehavior: 2 295 | switchUseCPUProfiler: 0 296 | switchApplicationID: 0x01004b9000490000 297 | switchNSODependencies: 298 | switchTitleNames_0: 299 | switchTitleNames_1: 300 | switchTitleNames_2: 301 | switchTitleNames_3: 302 | switchTitleNames_4: 303 | switchTitleNames_5: 304 | switchTitleNames_6: 305 | switchTitleNames_7: 306 | switchTitleNames_8: 307 | switchTitleNames_9: 308 | switchTitleNames_10: 309 | switchTitleNames_11: 310 | switchTitleNames_12: 311 | switchTitleNames_13: 312 | switchTitleNames_14: 313 | switchPublisherNames_0: 314 | switchPublisherNames_1: 315 | switchPublisherNames_2: 316 | switchPublisherNames_3: 317 | switchPublisherNames_4: 318 | switchPublisherNames_5: 319 | switchPublisherNames_6: 320 | switchPublisherNames_7: 321 | switchPublisherNames_8: 322 | switchPublisherNames_9: 323 | switchPublisherNames_10: 324 | switchPublisherNames_11: 325 | switchPublisherNames_12: 326 | switchPublisherNames_13: 327 | switchPublisherNames_14: 328 | switchIcons_0: {fileID: 0} 329 | switchIcons_1: {fileID: 0} 330 | switchIcons_2: {fileID: 0} 331 | switchIcons_3: {fileID: 0} 332 | switchIcons_4: {fileID: 0} 333 | switchIcons_5: {fileID: 0} 334 | switchIcons_6: {fileID: 0} 335 | switchIcons_7: {fileID: 0} 336 | switchIcons_8: {fileID: 0} 337 | switchIcons_9: {fileID: 0} 338 | switchIcons_10: {fileID: 0} 339 | switchIcons_11: {fileID: 0} 340 | switchIcons_12: {fileID: 0} 341 | switchIcons_13: {fileID: 0} 342 | switchIcons_14: {fileID: 0} 343 | switchSmallIcons_0: {fileID: 0} 344 | switchSmallIcons_1: {fileID: 0} 345 | switchSmallIcons_2: {fileID: 0} 346 | switchSmallIcons_3: {fileID: 0} 347 | switchSmallIcons_4: {fileID: 0} 348 | switchSmallIcons_5: {fileID: 0} 349 | switchSmallIcons_6: {fileID: 0} 350 | switchSmallIcons_7: {fileID: 0} 351 | switchSmallIcons_8: {fileID: 0} 352 | switchSmallIcons_9: {fileID: 0} 353 | switchSmallIcons_10: {fileID: 0} 354 | switchSmallIcons_11: {fileID: 0} 355 | switchSmallIcons_12: {fileID: 0} 356 | switchSmallIcons_13: {fileID: 0} 357 | switchSmallIcons_14: {fileID: 0} 358 | switchManualHTML: 359 | switchAccessibleURLs: 360 | switchLegalInformation: 361 | switchMainThreadStackSize: 1048576 362 | switchPresenceGroupId: 0x01004b9000490000 363 | switchLogoHandling: 0 364 | switchReleaseVersion: 0 365 | switchDisplayVersion: 1.0.0 366 | switchStartupUserAccount: 0 367 | switchTouchScreenUsage: 0 368 | switchSupportedLanguagesMask: 0 369 | switchLogoType: 0 370 | switchApplicationErrorCodeCategory: 371 | switchUserAccountSaveDataSize: 0 372 | switchUserAccountSaveDataJournalSize: 0 373 | switchApplicationAttribute: 0 374 | switchCardSpecSize: 4 375 | switchCardSpecClock: 25 376 | switchRatingsMask: 0 377 | switchRatingsInt_0: 0 378 | switchRatingsInt_1: 0 379 | switchRatingsInt_2: 0 380 | switchRatingsInt_3: 0 381 | switchRatingsInt_4: 0 382 | switchRatingsInt_5: 0 383 | switchRatingsInt_6: 0 384 | switchRatingsInt_7: 0 385 | switchRatingsInt_8: 0 386 | switchRatingsInt_9: 0 387 | switchRatingsInt_10: 0 388 | switchRatingsInt_11: 0 389 | switchLocalCommunicationIds_0: 0x01004b9000490000 390 | switchLocalCommunicationIds_1: 391 | switchLocalCommunicationIds_2: 392 | switchLocalCommunicationIds_3: 393 | switchLocalCommunicationIds_4: 394 | switchLocalCommunicationIds_5: 395 | switchLocalCommunicationIds_6: 396 | switchLocalCommunicationIds_7: 397 | switchParentalControl: 0 398 | switchAllowsScreenshot: 1 399 | switchAllowsVideoCapturing: 1 400 | switchAllowsRuntimeAddOnContentInstall: 0 401 | switchDataLossConfirmation: 0 402 | switchSupportedNpadStyles: 3 403 | switchSocketConfigEnabled: 0 404 | switchTcpInitialSendBufferSize: 32 405 | switchTcpInitialReceiveBufferSize: 64 406 | switchTcpAutoSendBufferSizeMax: 256 407 | switchTcpAutoReceiveBufferSizeMax: 256 408 | switchUdpSendBufferSize: 9 409 | switchUdpReceiveBufferSize: 42 410 | switchSocketBufferEfficiency: 4 411 | switchSocketInitializeEnabled: 1 412 | switchNetworkInterfaceManagerInitializeEnabled: 1 413 | switchPlayerConnectionEnabled: 1 414 | ps4NPAgeRating: 12 415 | ps4NPTitleSecret: 416 | ps4NPTrophyPackPath: 417 | ps4ParentalLevel: 1 418 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 419 | ps4Category: 0 420 | ps4MasterVersion: 01.00 421 | ps4AppVersion: 01.00 422 | ps4AppType: 0 423 | ps4ParamSfxPath: 424 | ps4VideoOutPixelFormat: 0 425 | ps4VideoOutInitialWidth: 1920 426 | ps4VideoOutBaseModeInitialWidth: 1920 427 | ps4VideoOutReprojectionRate: 120 428 | ps4PronunciationXMLPath: 429 | ps4PronunciationSIGPath: 430 | ps4BackgroundImagePath: 431 | ps4StartupImagePath: 432 | ps4StartupImagesFolder: 433 | ps4IconImagesFolder: 434 | ps4SaveDataImagePath: 435 | ps4SdkOverride: 436 | ps4BGMPath: 437 | ps4ShareFilePath: 438 | ps4ShareOverlayImagePath: 439 | ps4PrivacyGuardImagePath: 440 | ps4NPtitleDatPath: 441 | ps4RemotePlayKeyAssignment: -1 442 | ps4RemotePlayKeyMappingDir: 443 | ps4PlayTogetherPlayerCount: 0 444 | ps4EnterButtonAssignment: 1 445 | ps4ApplicationParam1: 0 446 | ps4ApplicationParam2: 0 447 | ps4ApplicationParam3: 0 448 | ps4ApplicationParam4: 0 449 | ps4DownloadDataSize: 0 450 | ps4GarlicHeapSize: 2048 451 | ps4ProGarlicHeapSize: 2560 452 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 453 | ps4pnSessions: 1 454 | ps4pnPresence: 1 455 | ps4pnFriends: 1 456 | ps4pnGameCustomData: 1 457 | playerPrefsSupport: 0 458 | enableApplicationExit: 0 459 | restrictedAudioUsageRights: 0 460 | ps4UseResolutionFallback: 0 461 | ps4ReprojectionSupport: 0 462 | ps4UseAudio3dBackend: 0 463 | ps4SocialScreenEnabled: 0 464 | ps4ScriptOptimizationLevel: 0 465 | ps4Audio3dVirtualSpeakerCount: 14 466 | ps4attribCpuUsage: 0 467 | ps4PatchPkgPath: 468 | ps4PatchLatestPkgPath: 469 | ps4PatchChangeinfoPath: 470 | ps4PatchDayOne: 0 471 | ps4attribUserManagement: 0 472 | ps4attribMoveSupport: 0 473 | ps4attrib3DSupport: 0 474 | ps4attribShareSupport: 0 475 | ps4attribExclusiveVR: 0 476 | ps4disableAutoHideSplash: 0 477 | ps4videoRecordingFeaturesUsed: 0 478 | ps4contentSearchFeaturesUsed: 0 479 | ps4attribEyeToEyeDistanceSettingVR: 0 480 | ps4IncludedModules: [] 481 | monoEnv: 482 | psp2Splashimage: {fileID: 0} 483 | psp2NPTrophyPackPath: 484 | psp2NPSupportGBMorGJP: 0 485 | psp2NPAgeRating: 12 486 | psp2NPTitleDatPath: 487 | psp2NPCommsID: 488 | psp2NPCommunicationsID: 489 | psp2NPCommsPassphrase: 490 | psp2NPCommsSig: 491 | psp2ParamSfxPath: 492 | psp2ManualPath: 493 | psp2LiveAreaGatePath: 494 | psp2LiveAreaBackroundPath: 495 | psp2LiveAreaPath: 496 | psp2LiveAreaTrialPath: 497 | psp2PatchChangeInfoPath: 498 | psp2PatchOriginalPackage: 499 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui 500 | psp2KeystoneFile: 501 | psp2MemoryExpansionMode: 0 502 | psp2DRMType: 0 503 | psp2StorageType: 0 504 | psp2MediaCapacity: 0 505 | psp2DLCConfigPath: 506 | psp2ThumbnailPath: 507 | psp2BackgroundPath: 508 | psp2SoundPath: 509 | psp2TrophyCommId: 510 | psp2TrophyPackagePath: 511 | psp2PackagedResourcesPath: 512 | psp2SaveDataQuota: 10240 513 | psp2ParentalLevel: 1 514 | psp2ShortTitle: Not Set 515 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 516 | psp2Category: 0 517 | psp2MasterVersion: 01.00 518 | psp2AppVersion: 01.00 519 | psp2TVBootMode: 0 520 | psp2EnterButtonAssignment: 2 521 | psp2TVDisableEmu: 0 522 | psp2AllowTwitterDialog: 1 523 | psp2Upgradable: 0 524 | psp2HealthWarning: 0 525 | psp2UseLibLocation: 0 526 | psp2InfoBarOnStartup: 0 527 | psp2InfoBarColor: 0 528 | psp2ScriptOptimizationLevel: 0 529 | splashScreenBackgroundSourceLandscape: {fileID: 0} 530 | splashScreenBackgroundSourcePortrait: {fileID: 0} 531 | spritePackerPolicy: 532 | webGLMemorySize: 256 533 | webGLExceptionSupport: 1 534 | webGLNameFilesAsHashes: 0 535 | webGLDataCaching: 0 536 | webGLDebugSymbols: 0 537 | webGLEmscriptenArgs: 538 | webGLModulesDirectory: 539 | webGLTemplate: APPLICATION:Default 540 | webGLAnalyzeBuildSize: 0 541 | webGLUseEmbeddedResources: 0 542 | webGLCompressionFormat: 1 543 | webGLLinkerTarget: 0 544 | scriptingDefineSymbols: {} 545 | platformArchitecture: {} 546 | scriptingBackend: {} 547 | il2cppCompilerConfiguration: {} 548 | incrementalIl2cppBuild: {} 549 | additionalIl2CppArgs: 550 | scriptingRuntimeVersion: 0 551 | apiCompatibilityLevelPerPlatform: {} 552 | m_RenderingPath: 1 553 | m_MobileRenderingPath: 1 554 | metroPackageName: VRGrabber 555 | metroPackageVersion: 556 | metroCertificatePath: 557 | metroCertificatePassword: 558 | metroCertificateSubject: 559 | metroCertificateIssuer: 560 | metroCertificateNotAfter: 0000000000000000 561 | metroApplicationDescription: VRGrabber 562 | wsaImages: {} 563 | metroTileShortName: 564 | metroCommandLineArgsFile: 565 | metroTileShowName: 0 566 | metroMediumTileShowName: 0 567 | metroLargeTileShowName: 0 568 | metroWideTileShowName: 0 569 | metroDefaultTileSize: 1 570 | metroTileForegroundText: 2 571 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 572 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 573 | a: 1} 574 | metroSplashScreenUseBackgroundColor: 0 575 | platformCapabilities: {} 576 | metroFTAName: 577 | metroFTAFileTypes: [] 578 | metroProtocolName: 579 | metroCompilationOverrides: 1 580 | tizenProductDescription: 581 | tizenProductURL: 582 | tizenSigningProfileName: 583 | tizenGPSPermissions: 0 584 | tizenMicrophonePermissions: 0 585 | tizenDeploymentTarget: 586 | tizenDeploymentTargetType: -1 587 | tizenMinOSVersion: 1 588 | n3dsUseExtSaveData: 0 589 | n3dsCompressStaticMem: 1 590 | n3dsExtSaveDataNumber: 0x12345 591 | n3dsStackSize: 131072 592 | n3dsTargetPlatform: 2 593 | n3dsRegion: 7 594 | n3dsMediaSize: 0 595 | n3dsLogoStyle: 3 596 | n3dsTitle: GameName 597 | n3dsProductCode: 598 | n3dsApplicationId: 0xFF3FF 599 | XboxOneProductId: 600 | XboxOneUpdateKey: 601 | XboxOneSandboxId: 602 | XboxOneContentId: 603 | XboxOneTitleId: 604 | XboxOneSCId: 605 | XboxOneGameOsOverridePath: 606 | XboxOnePackagingOverridePath: 607 | XboxOneAppManifestOverridePath: 608 | XboxOnePackageEncryption: 0 609 | XboxOnePackageUpdateGranularity: 2 610 | XboxOneDescription: 611 | XboxOneLanguage: 612 | - enus 613 | XboxOneCapability: [] 614 | XboxOneGameRating: {} 615 | XboxOneIsContentPackage: 0 616 | XboxOneEnableGPUVariability: 0 617 | XboxOneSockets: {} 618 | XboxOneSplashScreen: {fileID: 0} 619 | XboxOneAllowedProductIds: [] 620 | XboxOnePersistentLocalStorageSize: 0 621 | xboxOneScriptCompiler: 0 622 | vrEditorSettings: 623 | daydream: 624 | daydreamIconForeground: {fileID: 0} 625 | daydreamIconBackground: {fileID: 0} 626 | cloudServicesEnabled: {} 627 | facebookSdkVersion: 7.9.4 628 | apiCompatibilityLevel: 2 629 | cloudProjectId: 630 | projectName: 631 | organizationId: 632 | cloudEnabled: 0 633 | enableNativePlatformBackendsForNewInputSystem: 0 634 | disableOldInputManagerSupport: 0 635 | -------------------------------------------------------------------------------- /Assets/VrGrabber/Scenes/VrGrabber Example WinMR MotionController.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 8 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} 42 | --- !u!157 &3 43 | LightmapSettings: 44 | m_ObjectHideFlags: 0 45 | serializedVersion: 11 46 | m_GIWorkflowMode: 0 47 | m_GISettings: 48 | serializedVersion: 2 49 | m_BounceScale: 1 50 | m_IndirectOutputScale: 1 51 | m_AlbedoBoost: 1 52 | m_TemporalCoherenceThreshold: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 1 56 | m_LightmapEditorSettings: 57 | serializedVersion: 9 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_TextureWidth: 1024 61 | m_TextureHeight: 1024 62 | m_AO: 0 63 | m_AOMaxDistance: 1 64 | m_CompAOExponent: 1 65 | m_CompAOExponentDirect: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 0 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 500 79 | m_PVRBounces: 2 80 | m_PVRFilterTypeDirect: 0 81 | m_PVRFilterTypeIndirect: 0 82 | m_PVRFilterTypeAO: 0 83 | m_PVRFilteringMode: 1 84 | m_PVRCulling: 1 85 | m_PVRFilteringGaussRadiusDirect: 1 86 | m_PVRFilteringGaussRadiusIndirect: 5 87 | m_PVRFilteringGaussRadiusAO: 2 88 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 89 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 90 | m_PVRFilteringAtrousPositionSigmaAO: 1 91 | m_LightingDataAsset: {fileID: 0} 92 | m_UseShadowmask: 1 93 | --- !u!196 &4 94 | NavMeshSettings: 95 | serializedVersion: 2 96 | m_ObjectHideFlags: 0 97 | m_BuildSettings: 98 | serializedVersion: 2 99 | agentTypeID: 0 100 | agentRadius: 0.5 101 | agentHeight: 2 102 | agentSlope: 45 103 | agentClimb: 0.4 104 | ledgeDropHeight: 0 105 | maxJumpAcrossDistance: 0 106 | minRegionArea: 2 107 | manualCellSize: 0 108 | cellSize: 0.16666667 109 | manualTileSize: 0 110 | tileSize: 256 111 | accuratePlacement: 0 112 | debug: 113 | m_Flags: 0 114 | m_NavMeshData: {fileID: 0} 115 | --- !u!1 &230252424 116 | GameObject: 117 | m_ObjectHideFlags: 0 118 | m_PrefabParentObject: {fileID: 0} 119 | m_PrefabInternal: {fileID: 0} 120 | serializedVersion: 5 121 | m_Component: 122 | - component: {fileID: 230252430} 123 | - component: {fileID: 230252429} 124 | - component: {fileID: 230252428} 125 | - component: {fileID: 230252427} 126 | - component: {fileID: 230252426} 127 | - component: {fileID: 230252425} 128 | m_Layer: 0 129 | m_Name: Object (5) 130 | m_TagString: Untagged 131 | m_Icon: {fileID: 0} 132 | m_NavMeshLayer: 0 133 | m_StaticEditorFlags: 0 134 | m_IsActive: 1 135 | --- !u!114 &230252425 136 | MonoBehaviour: 137 | m_ObjectHideFlags: 0 138 | m_PrefabParentObject: {fileID: 0} 139 | m_PrefabInternal: {fileID: 0} 140 | m_GameObject: {fileID: 230252424} 141 | m_Enabled: 1 142 | m_EditorHideFlags: 0 143 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 144 | m_Name: 145 | m_EditorClassIdentifier: 146 | isScalable: 1 147 | onGrabbed: 148 | m_PersistentCalls: 149 | m_Calls: [] 150 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 151 | Culture=neutral, PublicKeyToken=null 152 | onReleased: 153 | m_PersistentCalls: 154 | m_Calls: [] 155 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 156 | Culture=neutral, PublicKeyToken=null 157 | onGrabClicked: 158 | m_PersistentCalls: 159 | m_Calls: [] 160 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 161 | Culture=neutral, PublicKeyToken=null 162 | onGrabMoved: 163 | m_PersistentCalls: 164 | m_Calls: [] 165 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 166 | Culture=neutral, PublicKeyToken=null 167 | --- !u!54 &230252426 168 | Rigidbody: 169 | m_ObjectHideFlags: 0 170 | m_PrefabParentObject: {fileID: 0} 171 | m_PrefabInternal: {fileID: 0} 172 | m_GameObject: {fileID: 230252424} 173 | serializedVersion: 2 174 | m_Mass: 1 175 | m_Drag: 0 176 | m_AngularDrag: 0.05 177 | m_UseGravity: 1 178 | m_IsKinematic: 0 179 | m_Interpolate: 0 180 | m_Constraints: 0 181 | m_CollisionDetection: 0 182 | --- !u!23 &230252427 183 | MeshRenderer: 184 | m_ObjectHideFlags: 0 185 | m_PrefabParentObject: {fileID: 0} 186 | m_PrefabInternal: {fileID: 0} 187 | m_GameObject: {fileID: 230252424} 188 | m_Enabled: 1 189 | m_CastShadows: 1 190 | m_ReceiveShadows: 1 191 | m_DynamicOccludee: 1 192 | m_MotionVectors: 1 193 | m_LightProbeUsage: 1 194 | m_ReflectionProbeUsage: 1 195 | m_Materials: 196 | - {fileID: 2100000, guid: 9b82445bd9f69b8439840e50252129d9, type: 2} 197 | m_StaticBatchInfo: 198 | firstSubMesh: 0 199 | subMeshCount: 0 200 | m_StaticBatchRoot: {fileID: 0} 201 | m_ProbeAnchor: {fileID: 0} 202 | m_LightProbeVolumeOverride: {fileID: 0} 203 | m_ScaleInLightmap: 1 204 | m_PreserveUVs: 1 205 | m_IgnoreNormalsForChartDetection: 0 206 | m_ImportantGI: 0 207 | m_StitchLightmapSeams: 0 208 | m_SelectedEditorRenderState: 3 209 | m_MinimumChartSize: 4 210 | m_AutoUVMaxDistance: 0.5 211 | m_AutoUVMaxAngle: 89 212 | m_LightmapParameters: {fileID: 0} 213 | m_SortingLayerID: 0 214 | m_SortingLayer: 0 215 | m_SortingOrder: 0 216 | --- !u!65 &230252428 217 | BoxCollider: 218 | m_ObjectHideFlags: 0 219 | m_PrefabParentObject: {fileID: 0} 220 | m_PrefabInternal: {fileID: 0} 221 | m_GameObject: {fileID: 230252424} 222 | m_Material: {fileID: 0} 223 | m_IsTrigger: 0 224 | m_Enabled: 1 225 | serializedVersion: 2 226 | m_Size: {x: 1, y: 1, z: 1} 227 | m_Center: {x: 0, y: 0, z: 0} 228 | --- !u!33 &230252429 229 | MeshFilter: 230 | m_ObjectHideFlags: 0 231 | m_PrefabParentObject: {fileID: 0} 232 | m_PrefabInternal: {fileID: 0} 233 | m_GameObject: {fileID: 230252424} 234 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 235 | --- !u!4 &230252430 236 | Transform: 237 | m_ObjectHideFlags: 0 238 | m_PrefabParentObject: {fileID: 0} 239 | m_PrefabInternal: {fileID: 0} 240 | m_GameObject: {fileID: 230252424} 241 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 242 | m_LocalPosition: {x: 0.437, y: 0.8904, z: 0.707} 243 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 244 | m_Children: [] 245 | m_Father: {fileID: 0} 246 | m_RootOrder: 10 247 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 248 | --- !u!1 &276143849 249 | GameObject: 250 | m_ObjectHideFlags: 0 251 | m_PrefabParentObject: {fileID: 0} 252 | m_PrefabInternal: {fileID: 0} 253 | serializedVersion: 5 254 | m_Component: 255 | - component: {fileID: 276143856} 256 | - component: {fileID: 276143855} 257 | - component: {fileID: 276143854} 258 | - component: {fileID: 276143853} 259 | - component: {fileID: 276143852} 260 | - component: {fileID: 276143851} 261 | - component: {fileID: 276143850} 262 | m_Layer: 0 263 | m_Name: Floating Object (1) 264 | m_TagString: Untagged 265 | m_Icon: {fileID: 0} 266 | m_NavMeshLayer: 0 267 | m_StaticEditorFlags: 0 268 | m_IsActive: 1 269 | --- !u!114 &276143850 270 | MonoBehaviour: 271 | m_ObjectHideFlags: 0 272 | m_PrefabParentObject: {fileID: 0} 273 | m_PrefabInternal: {fileID: 0} 274 | m_GameObject: {fileID: 276143849} 275 | m_Enabled: 1 276 | m_EditorHideFlags: 0 277 | m_Script: {fileID: 11500000, guid: a0f42ee1cd1a04f41b727c7a360da4ec, type: 3} 278 | m_Name: 279 | m_EditorClassIdentifier: 280 | moveDamping: 0.95 281 | rotationDamping: 0.95 282 | --- !u!114 &276143851 283 | MonoBehaviour: 284 | m_ObjectHideFlags: 0 285 | m_PrefabParentObject: {fileID: 0} 286 | m_PrefabInternal: {fileID: 0} 287 | m_GameObject: {fileID: 276143849} 288 | m_Enabled: 1 289 | m_EditorHideFlags: 0 290 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 291 | m_Name: 292 | m_EditorClassIdentifier: 293 | isScalable: 1 294 | onGrabbed: 295 | m_PersistentCalls: 296 | m_Calls: [] 297 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 298 | Culture=neutral, PublicKeyToken=null 299 | onReleased: 300 | m_PersistentCalls: 301 | m_Calls: [] 302 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 303 | Culture=neutral, PublicKeyToken=null 304 | onGrabClicked: 305 | m_PersistentCalls: 306 | m_Calls: [] 307 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 308 | Culture=neutral, PublicKeyToken=null 309 | onGrabMoved: 310 | m_PersistentCalls: 311 | m_Calls: [] 312 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 313 | Culture=neutral, PublicKeyToken=null 314 | --- !u!54 &276143852 315 | Rigidbody: 316 | m_ObjectHideFlags: 0 317 | m_PrefabParentObject: {fileID: 0} 318 | m_PrefabInternal: {fileID: 0} 319 | m_GameObject: {fileID: 276143849} 320 | serializedVersion: 2 321 | m_Mass: 1 322 | m_Drag: 0 323 | m_AngularDrag: 0.05 324 | m_UseGravity: 0 325 | m_IsKinematic: 0 326 | m_Interpolate: 0 327 | m_Constraints: 0 328 | m_CollisionDetection: 0 329 | --- !u!23 &276143853 330 | MeshRenderer: 331 | m_ObjectHideFlags: 0 332 | m_PrefabParentObject: {fileID: 0} 333 | m_PrefabInternal: {fileID: 0} 334 | m_GameObject: {fileID: 276143849} 335 | m_Enabled: 1 336 | m_CastShadows: 1 337 | m_ReceiveShadows: 1 338 | m_DynamicOccludee: 1 339 | m_MotionVectors: 1 340 | m_LightProbeUsage: 1 341 | m_ReflectionProbeUsage: 1 342 | m_Materials: 343 | - {fileID: 2100000, guid: 1170a292998e70d4a8d8613ec3f7da18, type: 2} 344 | m_StaticBatchInfo: 345 | firstSubMesh: 0 346 | subMeshCount: 0 347 | m_StaticBatchRoot: {fileID: 0} 348 | m_ProbeAnchor: {fileID: 0} 349 | m_LightProbeVolumeOverride: {fileID: 0} 350 | m_ScaleInLightmap: 1 351 | m_PreserveUVs: 1 352 | m_IgnoreNormalsForChartDetection: 0 353 | m_ImportantGI: 0 354 | m_StitchLightmapSeams: 0 355 | m_SelectedEditorRenderState: 3 356 | m_MinimumChartSize: 4 357 | m_AutoUVMaxDistance: 0.5 358 | m_AutoUVMaxAngle: 89 359 | m_LightmapParameters: {fileID: 0} 360 | m_SortingLayerID: 0 361 | m_SortingLayer: 0 362 | m_SortingOrder: 0 363 | --- !u!65 &276143854 364 | BoxCollider: 365 | m_ObjectHideFlags: 0 366 | m_PrefabParentObject: {fileID: 0} 367 | m_PrefabInternal: {fileID: 0} 368 | m_GameObject: {fileID: 276143849} 369 | m_Material: {fileID: 0} 370 | m_IsTrigger: 0 371 | m_Enabled: 1 372 | serializedVersion: 2 373 | m_Size: {x: 1, y: 1, z: 1} 374 | m_Center: {x: 0, y: 0, z: 0} 375 | --- !u!33 &276143855 376 | MeshFilter: 377 | m_ObjectHideFlags: 0 378 | m_PrefabParentObject: {fileID: 0} 379 | m_PrefabInternal: {fileID: 0} 380 | m_GameObject: {fileID: 276143849} 381 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 382 | --- !u!4 &276143856 383 | Transform: 384 | m_ObjectHideFlags: 0 385 | m_PrefabParentObject: {fileID: 0} 386 | m_PrefabInternal: {fileID: 0} 387 | m_GameObject: {fileID: 276143849} 388 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 389 | m_LocalPosition: {x: -0.005, y: 1.022, z: 1.021} 390 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 391 | m_Children: [] 392 | m_Father: {fileID: 0} 393 | m_RootOrder: 12 394 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 395 | --- !u!1 &547086813 396 | GameObject: 397 | m_ObjectHideFlags: 0 398 | m_PrefabParentObject: {fileID: 0} 399 | m_PrefabInternal: {fileID: 0} 400 | serializedVersion: 5 401 | m_Component: 402 | - component: {fileID: 547086815} 403 | - component: {fileID: 547086814} 404 | m_Layer: 0 405 | m_Name: Directional Light 406 | m_TagString: Untagged 407 | m_Icon: {fileID: 0} 408 | m_NavMeshLayer: 0 409 | m_StaticEditorFlags: 0 410 | m_IsActive: 1 411 | --- !u!108 &547086814 412 | Light: 413 | m_ObjectHideFlags: 0 414 | m_PrefabParentObject: {fileID: 0} 415 | m_PrefabInternal: {fileID: 0} 416 | m_GameObject: {fileID: 547086813} 417 | m_Enabled: 1 418 | serializedVersion: 8 419 | m_Type: 1 420 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 421 | m_Intensity: 1 422 | m_Range: 10 423 | m_SpotAngle: 30 424 | m_CookieSize: 10 425 | m_Shadows: 426 | m_Type: 2 427 | m_Resolution: -1 428 | m_CustomResolution: -1 429 | m_Strength: 1 430 | m_Bias: 0.05 431 | m_NormalBias: 0.4 432 | m_NearPlane: 0.2 433 | m_Cookie: {fileID: 0} 434 | m_DrawHalo: 0 435 | m_Flare: {fileID: 0} 436 | m_RenderMode: 0 437 | m_CullingMask: 438 | serializedVersion: 2 439 | m_Bits: 4294967295 440 | m_Lightmapping: 4 441 | m_AreaSize: {x: 1, y: 1} 442 | m_BounceIntensity: 1 443 | m_ColorTemperature: 6570 444 | m_UseColorTemperature: 0 445 | m_ShadowRadius: 0 446 | m_ShadowAngle: 0 447 | --- !u!4 &547086815 448 | Transform: 449 | m_ObjectHideFlags: 0 450 | m_PrefabParentObject: {fileID: 0} 451 | m_PrefabInternal: {fileID: 0} 452 | m_GameObject: {fileID: 547086813} 453 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 454 | m_LocalPosition: {x: 0, y: 3, z: 0} 455 | m_LocalScale: {x: 1, y: 1, z: 1} 456 | m_Children: [] 457 | m_Father: {fileID: 0} 458 | m_RootOrder: 2 459 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 460 | --- !u!1 &781955521 461 | GameObject: 462 | m_ObjectHideFlags: 0 463 | m_PrefabParentObject: {fileID: 0} 464 | m_PrefabInternal: {fileID: 0} 465 | serializedVersion: 5 466 | m_Component: 467 | - component: {fileID: 781955527} 468 | - component: {fileID: 781955526} 469 | - component: {fileID: 781955525} 470 | - component: {fileID: 781955524} 471 | - component: {fileID: 781955523} 472 | - component: {fileID: 781955522} 473 | m_Layer: 0 474 | m_Name: Object 475 | m_TagString: Untagged 476 | m_Icon: {fileID: 0} 477 | m_NavMeshLayer: 0 478 | m_StaticEditorFlags: 0 479 | m_IsActive: 1 480 | --- !u!114 &781955522 481 | MonoBehaviour: 482 | m_ObjectHideFlags: 0 483 | m_PrefabParentObject: {fileID: 0} 484 | m_PrefabInternal: {fileID: 0} 485 | m_GameObject: {fileID: 781955521} 486 | m_Enabled: 1 487 | m_EditorHideFlags: 0 488 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 489 | m_Name: 490 | m_EditorClassIdentifier: 491 | isScalable: 1 492 | onGrabbed: 493 | m_PersistentCalls: 494 | m_Calls: [] 495 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 496 | Culture=neutral, PublicKeyToken=null 497 | onReleased: 498 | m_PersistentCalls: 499 | m_Calls: [] 500 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 501 | Culture=neutral, PublicKeyToken=null 502 | onGrabClicked: 503 | m_PersistentCalls: 504 | m_Calls: [] 505 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 506 | Culture=neutral, PublicKeyToken=null 507 | onGrabMoved: 508 | m_PersistentCalls: 509 | m_Calls: [] 510 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 511 | Culture=neutral, PublicKeyToken=null 512 | --- !u!54 &781955523 513 | Rigidbody: 514 | m_ObjectHideFlags: 0 515 | m_PrefabParentObject: {fileID: 0} 516 | m_PrefabInternal: {fileID: 0} 517 | m_GameObject: {fileID: 781955521} 518 | serializedVersion: 2 519 | m_Mass: 1 520 | m_Drag: 0 521 | m_AngularDrag: 0.05 522 | m_UseGravity: 1 523 | m_IsKinematic: 0 524 | m_Interpolate: 0 525 | m_Constraints: 0 526 | m_CollisionDetection: 0 527 | --- !u!23 &781955524 528 | MeshRenderer: 529 | m_ObjectHideFlags: 0 530 | m_PrefabParentObject: {fileID: 0} 531 | m_PrefabInternal: {fileID: 0} 532 | m_GameObject: {fileID: 781955521} 533 | m_Enabled: 1 534 | m_CastShadows: 1 535 | m_ReceiveShadows: 1 536 | m_DynamicOccludee: 1 537 | m_MotionVectors: 1 538 | m_LightProbeUsage: 1 539 | m_ReflectionProbeUsage: 1 540 | m_Materials: 541 | - {fileID: 2100000, guid: 9b82445bd9f69b8439840e50252129d9, type: 2} 542 | m_StaticBatchInfo: 543 | firstSubMesh: 0 544 | subMeshCount: 0 545 | m_StaticBatchRoot: {fileID: 0} 546 | m_ProbeAnchor: {fileID: 0} 547 | m_LightProbeVolumeOverride: {fileID: 0} 548 | m_ScaleInLightmap: 1 549 | m_PreserveUVs: 1 550 | m_IgnoreNormalsForChartDetection: 0 551 | m_ImportantGI: 0 552 | m_StitchLightmapSeams: 0 553 | m_SelectedEditorRenderState: 3 554 | m_MinimumChartSize: 4 555 | m_AutoUVMaxDistance: 0.5 556 | m_AutoUVMaxAngle: 89 557 | m_LightmapParameters: {fileID: 0} 558 | m_SortingLayerID: 0 559 | m_SortingLayer: 0 560 | m_SortingOrder: 0 561 | --- !u!65 &781955525 562 | BoxCollider: 563 | m_ObjectHideFlags: 0 564 | m_PrefabParentObject: {fileID: 0} 565 | m_PrefabInternal: {fileID: 0} 566 | m_GameObject: {fileID: 781955521} 567 | m_Material: {fileID: 0} 568 | m_IsTrigger: 0 569 | m_Enabled: 1 570 | serializedVersion: 2 571 | m_Size: {x: 1, y: 1, z: 1} 572 | m_Center: {x: 0, y: 0, z: 0} 573 | --- !u!33 &781955526 574 | MeshFilter: 575 | m_ObjectHideFlags: 0 576 | m_PrefabParentObject: {fileID: 0} 577 | m_PrefabInternal: {fileID: 0} 578 | m_GameObject: {fileID: 781955521} 579 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 580 | --- !u!4 &781955527 581 | Transform: 582 | m_ObjectHideFlags: 0 583 | m_PrefabParentObject: {fileID: 0} 584 | m_PrefabInternal: {fileID: 0} 585 | m_GameObject: {fileID: 781955521} 586 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 587 | m_LocalPosition: {x: 0.2688, y: 0.8904, z: 0.754} 588 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 589 | m_Children: [] 590 | m_Father: {fileID: 0} 591 | m_RootOrder: 5 592 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 593 | --- !u!1 &785199429 594 | GameObject: 595 | m_ObjectHideFlags: 0 596 | m_PrefabParentObject: {fileID: 0} 597 | m_PrefabInternal: {fileID: 0} 598 | serializedVersion: 5 599 | m_Component: 600 | - component: {fileID: 785199435} 601 | - component: {fileID: 785199434} 602 | - component: {fileID: 785199433} 603 | - component: {fileID: 785199432} 604 | - component: {fileID: 785199431} 605 | - component: {fileID: 785199430} 606 | - component: {fileID: 785199436} 607 | m_Layer: 0 608 | m_Name: Floating Object 609 | m_TagString: Untagged 610 | m_Icon: {fileID: 0} 611 | m_NavMeshLayer: 0 612 | m_StaticEditorFlags: 0 613 | m_IsActive: 1 614 | --- !u!114 &785199430 615 | MonoBehaviour: 616 | m_ObjectHideFlags: 0 617 | m_PrefabParentObject: {fileID: 0} 618 | m_PrefabInternal: {fileID: 0} 619 | m_GameObject: {fileID: 785199429} 620 | m_Enabled: 1 621 | m_EditorHideFlags: 0 622 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 623 | m_Name: 624 | m_EditorClassIdentifier: 625 | isScalable: 1 626 | onGrabbed: 627 | m_PersistentCalls: 628 | m_Calls: [] 629 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 630 | Culture=neutral, PublicKeyToken=null 631 | onReleased: 632 | m_PersistentCalls: 633 | m_Calls: [] 634 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 635 | Culture=neutral, PublicKeyToken=null 636 | onGrabClicked: 637 | m_PersistentCalls: 638 | m_Calls: [] 639 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 640 | Culture=neutral, PublicKeyToken=null 641 | onGrabMoved: 642 | m_PersistentCalls: 643 | m_Calls: [] 644 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 645 | Culture=neutral, PublicKeyToken=null 646 | --- !u!54 &785199431 647 | Rigidbody: 648 | m_ObjectHideFlags: 0 649 | m_PrefabParentObject: {fileID: 0} 650 | m_PrefabInternal: {fileID: 0} 651 | m_GameObject: {fileID: 785199429} 652 | serializedVersion: 2 653 | m_Mass: 1 654 | m_Drag: 0 655 | m_AngularDrag: 0.05 656 | m_UseGravity: 0 657 | m_IsKinematic: 0 658 | m_Interpolate: 0 659 | m_Constraints: 0 660 | m_CollisionDetection: 0 661 | --- !u!23 &785199432 662 | MeshRenderer: 663 | m_ObjectHideFlags: 0 664 | m_PrefabParentObject: {fileID: 0} 665 | m_PrefabInternal: {fileID: 0} 666 | m_GameObject: {fileID: 785199429} 667 | m_Enabled: 1 668 | m_CastShadows: 1 669 | m_ReceiveShadows: 1 670 | m_DynamicOccludee: 1 671 | m_MotionVectors: 1 672 | m_LightProbeUsage: 1 673 | m_ReflectionProbeUsage: 1 674 | m_Materials: 675 | - {fileID: 2100000, guid: 1170a292998e70d4a8d8613ec3f7da18, type: 2} 676 | m_StaticBatchInfo: 677 | firstSubMesh: 0 678 | subMeshCount: 0 679 | m_StaticBatchRoot: {fileID: 0} 680 | m_ProbeAnchor: {fileID: 0} 681 | m_LightProbeVolumeOverride: {fileID: 0} 682 | m_ScaleInLightmap: 1 683 | m_PreserveUVs: 1 684 | m_IgnoreNormalsForChartDetection: 0 685 | m_ImportantGI: 0 686 | m_StitchLightmapSeams: 0 687 | m_SelectedEditorRenderState: 3 688 | m_MinimumChartSize: 4 689 | m_AutoUVMaxDistance: 0.5 690 | m_AutoUVMaxAngle: 89 691 | m_LightmapParameters: {fileID: 0} 692 | m_SortingLayerID: 0 693 | m_SortingLayer: 0 694 | m_SortingOrder: 0 695 | --- !u!65 &785199433 696 | BoxCollider: 697 | m_ObjectHideFlags: 0 698 | m_PrefabParentObject: {fileID: 0} 699 | m_PrefabInternal: {fileID: 0} 700 | m_GameObject: {fileID: 785199429} 701 | m_Material: {fileID: 0} 702 | m_IsTrigger: 0 703 | m_Enabled: 1 704 | serializedVersion: 2 705 | m_Size: {x: 1, y: 1, z: 1} 706 | m_Center: {x: 0, y: 0, z: 0} 707 | --- !u!33 &785199434 708 | MeshFilter: 709 | m_ObjectHideFlags: 0 710 | m_PrefabParentObject: {fileID: 0} 711 | m_PrefabInternal: {fileID: 0} 712 | m_GameObject: {fileID: 785199429} 713 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 714 | --- !u!4 &785199435 715 | Transform: 716 | m_ObjectHideFlags: 0 717 | m_PrefabParentObject: {fileID: 0} 718 | m_PrefabInternal: {fileID: 0} 719 | m_GameObject: {fileID: 785199429} 720 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 721 | m_LocalPosition: {x: 0, y: 1.022, z: 0.754} 722 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 723 | m_Children: [] 724 | m_Father: {fileID: 0} 725 | m_RootOrder: 4 726 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 727 | --- !u!114 &785199436 728 | MonoBehaviour: 729 | m_ObjectHideFlags: 0 730 | m_PrefabParentObject: {fileID: 0} 731 | m_PrefabInternal: {fileID: 0} 732 | m_GameObject: {fileID: 785199429} 733 | m_Enabled: 1 734 | m_EditorHideFlags: 0 735 | m_Script: {fileID: 11500000, guid: a0f42ee1cd1a04f41b727c7a360da4ec, type: 3} 736 | m_Name: 737 | m_EditorClassIdentifier: 738 | moveDamping: 0.95 739 | rotationDamping: 0.95 740 | --- !u!1001 &794091494 741 | Prefab: 742 | m_ObjectHideFlags: 0 743 | serializedVersion: 2 744 | m_Modification: 745 | m_TransformParent: {fileID: 0} 746 | m_Modifications: 747 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 748 | propertyPath: m_LocalPosition.x 749 | value: 0 750 | objectReference: {fileID: 0} 751 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 752 | propertyPath: m_LocalPosition.y 753 | value: 0 754 | objectReference: {fileID: 0} 755 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 756 | propertyPath: m_LocalPosition.z 757 | value: 0 758 | objectReference: {fileID: 0} 759 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 760 | propertyPath: m_LocalRotation.x 761 | value: 0 762 | objectReference: {fileID: 0} 763 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 764 | propertyPath: m_LocalRotation.y 765 | value: 0 766 | objectReference: {fileID: 0} 767 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 768 | propertyPath: m_LocalRotation.z 769 | value: 0 770 | objectReference: {fileID: 0} 771 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 772 | propertyPath: m_LocalRotation.w 773 | value: 1 774 | objectReference: {fileID: 0} 775 | - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 776 | propertyPath: m_RootOrder 777 | value: 0 778 | objectReference: {fileID: 0} 779 | - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 780 | propertyPath: _trackingOriginType 781 | value: 1 782 | objectReference: {fileID: 0} 783 | m_RemovedComponents: [] 784 | m_ParentPrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 785 | m_IsPrefabParent: 0 786 | --- !u!4 &794091495 stripped 787 | Transform: 788 | m_PrefabParentObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 2} 789 | m_PrefabInternal: {fileID: 794091494} 790 | --- !u!1 &959430919 791 | GameObject: 792 | m_ObjectHideFlags: 0 793 | m_PrefabParentObject: {fileID: 0} 794 | m_PrefabInternal: {fileID: 0} 795 | serializedVersion: 5 796 | m_Component: 797 | - component: {fileID: 959430923} 798 | - component: {fileID: 959430922} 799 | - component: {fileID: 959430921} 800 | - component: {fileID: 959430920} 801 | m_Layer: 0 802 | m_Name: Table 803 | m_TagString: Untagged 804 | m_Icon: {fileID: 0} 805 | m_NavMeshLayer: 0 806 | m_StaticEditorFlags: 0 807 | m_IsActive: 1 808 | --- !u!23 &959430920 809 | MeshRenderer: 810 | m_ObjectHideFlags: 0 811 | m_PrefabParentObject: {fileID: 0} 812 | m_PrefabInternal: {fileID: 0} 813 | m_GameObject: {fileID: 959430919} 814 | m_Enabled: 1 815 | m_CastShadows: 1 816 | m_ReceiveShadows: 1 817 | m_DynamicOccludee: 1 818 | m_MotionVectors: 1 819 | m_LightProbeUsage: 1 820 | m_ReflectionProbeUsage: 1 821 | m_Materials: 822 | - {fileID: 2100000, guid: 945b3ef5bae8b284982b37b44355e4b1, type: 2} 823 | m_StaticBatchInfo: 824 | firstSubMesh: 0 825 | subMeshCount: 0 826 | m_StaticBatchRoot: {fileID: 0} 827 | m_ProbeAnchor: {fileID: 0} 828 | m_LightProbeVolumeOverride: {fileID: 0} 829 | m_ScaleInLightmap: 1 830 | m_PreserveUVs: 1 831 | m_IgnoreNormalsForChartDetection: 0 832 | m_ImportantGI: 0 833 | m_StitchLightmapSeams: 0 834 | m_SelectedEditorRenderState: 3 835 | m_MinimumChartSize: 4 836 | m_AutoUVMaxDistance: 0.5 837 | m_AutoUVMaxAngle: 89 838 | m_LightmapParameters: {fileID: 0} 839 | m_SortingLayerID: 0 840 | m_SortingLayer: 0 841 | m_SortingOrder: 0 842 | --- !u!65 &959430921 843 | BoxCollider: 844 | m_ObjectHideFlags: 0 845 | m_PrefabParentObject: {fileID: 0} 846 | m_PrefabInternal: {fileID: 0} 847 | m_GameObject: {fileID: 959430919} 848 | m_Material: {fileID: 0} 849 | m_IsTrigger: 0 850 | m_Enabled: 1 851 | serializedVersion: 2 852 | m_Size: {x: 1, y: 1, z: 1} 853 | m_Center: {x: 0, y: 0, z: 0} 854 | --- !u!33 &959430922 855 | MeshFilter: 856 | m_ObjectHideFlags: 0 857 | m_PrefabParentObject: {fileID: 0} 858 | m_PrefabInternal: {fileID: 0} 859 | m_GameObject: {fileID: 959430919} 860 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 861 | --- !u!4 &959430923 862 | Transform: 863 | m_ObjectHideFlags: 0 864 | m_PrefabParentObject: {fileID: 0} 865 | m_PrefabInternal: {fileID: 0} 866 | m_GameObject: {fileID: 959430919} 867 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 868 | m_LocalPosition: {x: 0, y: 0.8, z: 0.95} 869 | m_LocalScale: {x: 1.7162849, y: 0.050515566, z: 0.9546174} 870 | m_Children: [] 871 | m_Father: {fileID: 0} 872 | m_RootOrder: 3 873 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 874 | --- !u!1 &1052804812 875 | GameObject: 876 | m_ObjectHideFlags: 0 877 | m_PrefabParentObject: {fileID: 0} 878 | m_PrefabInternal: {fileID: 0} 879 | serializedVersion: 5 880 | m_Component: 881 | - component: {fileID: 1052804818} 882 | - component: {fileID: 1052804817} 883 | - component: {fileID: 1052804816} 884 | - component: {fileID: 1052804815} 885 | - component: {fileID: 1052804814} 886 | - component: {fileID: 1052804813} 887 | m_Layer: 0 888 | m_Name: Object (2) 889 | m_TagString: Untagged 890 | m_Icon: {fileID: 0} 891 | m_NavMeshLayer: 0 892 | m_StaticEditorFlags: 0 893 | m_IsActive: 1 894 | --- !u!114 &1052804813 895 | MonoBehaviour: 896 | m_ObjectHideFlags: 0 897 | m_PrefabParentObject: {fileID: 0} 898 | m_PrefabInternal: {fileID: 0} 899 | m_GameObject: {fileID: 1052804812} 900 | m_Enabled: 1 901 | m_EditorHideFlags: 0 902 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 903 | m_Name: 904 | m_EditorClassIdentifier: 905 | isScalable: 1 906 | onGrabbed: 907 | m_PersistentCalls: 908 | m_Calls: [] 909 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 910 | Culture=neutral, PublicKeyToken=null 911 | onReleased: 912 | m_PersistentCalls: 913 | m_Calls: [] 914 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 915 | Culture=neutral, PublicKeyToken=null 916 | onGrabClicked: 917 | m_PersistentCalls: 918 | m_Calls: [] 919 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 920 | Culture=neutral, PublicKeyToken=null 921 | onGrabMoved: 922 | m_PersistentCalls: 923 | m_Calls: [] 924 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 925 | Culture=neutral, PublicKeyToken=null 926 | --- !u!54 &1052804814 927 | Rigidbody: 928 | m_ObjectHideFlags: 0 929 | m_PrefabParentObject: {fileID: 0} 930 | m_PrefabInternal: {fileID: 0} 931 | m_GameObject: {fileID: 1052804812} 932 | serializedVersion: 2 933 | m_Mass: 1 934 | m_Drag: 0 935 | m_AngularDrag: 0.05 936 | m_UseGravity: 1 937 | m_IsKinematic: 0 938 | m_Interpolate: 0 939 | m_Constraints: 0 940 | m_CollisionDetection: 0 941 | --- !u!23 &1052804815 942 | MeshRenderer: 943 | m_ObjectHideFlags: 0 944 | m_PrefabParentObject: {fileID: 0} 945 | m_PrefabInternal: {fileID: 0} 946 | m_GameObject: {fileID: 1052804812} 947 | m_Enabled: 1 948 | m_CastShadows: 1 949 | m_ReceiveShadows: 1 950 | m_DynamicOccludee: 1 951 | m_MotionVectors: 1 952 | m_LightProbeUsage: 1 953 | m_ReflectionProbeUsage: 1 954 | m_Materials: 955 | - {fileID: 2100000, guid: 9b82445bd9f69b8439840e50252129d9, type: 2} 956 | m_StaticBatchInfo: 957 | firstSubMesh: 0 958 | subMeshCount: 0 959 | m_StaticBatchRoot: {fileID: 0} 960 | m_ProbeAnchor: {fileID: 0} 961 | m_LightProbeVolumeOverride: {fileID: 0} 962 | m_ScaleInLightmap: 1 963 | m_PreserveUVs: 1 964 | m_IgnoreNormalsForChartDetection: 0 965 | m_ImportantGI: 0 966 | m_StitchLightmapSeams: 0 967 | m_SelectedEditorRenderState: 3 968 | m_MinimumChartSize: 4 969 | m_AutoUVMaxDistance: 0.5 970 | m_AutoUVMaxAngle: 89 971 | m_LightmapParameters: {fileID: 0} 972 | m_SortingLayerID: 0 973 | m_SortingLayer: 0 974 | m_SortingOrder: 0 975 | --- !u!65 &1052804816 976 | BoxCollider: 977 | m_ObjectHideFlags: 0 978 | m_PrefabParentObject: {fileID: 0} 979 | m_PrefabInternal: {fileID: 0} 980 | m_GameObject: {fileID: 1052804812} 981 | m_Material: {fileID: 0} 982 | m_IsTrigger: 0 983 | m_Enabled: 1 984 | serializedVersion: 2 985 | m_Size: {x: 1, y: 1, z: 1} 986 | m_Center: {x: 0, y: 0, z: 0} 987 | --- !u!33 &1052804817 988 | MeshFilter: 989 | m_ObjectHideFlags: 0 990 | m_PrefabParentObject: {fileID: 0} 991 | m_PrefabInternal: {fileID: 0} 992 | m_GameObject: {fileID: 1052804812} 993 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 994 | --- !u!4 &1052804818 995 | Transform: 996 | m_ObjectHideFlags: 0 997 | m_PrefabParentObject: {fileID: 0} 998 | m_PrefabInternal: {fileID: 0} 999 | m_GameObject: {fileID: 1052804812} 1000 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1001 | m_LocalPosition: {x: 0.273, y: 0.8904, z: 1.01} 1002 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 1003 | m_Children: [] 1004 | m_Father: {fileID: 0} 1005 | m_RootOrder: 7 1006 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1007 | --- !u!1001 &1130534190 1008 | Prefab: 1009 | m_ObjectHideFlags: 0 1010 | serializedVersion: 2 1011 | m_Modification: 1012 | m_TransformParent: {fileID: 0} 1013 | m_Modifications: 1014 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1015 | propertyPath: m_LocalPosition.x 1016 | value: 0 1017 | objectReference: {fileID: 0} 1018 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1019 | propertyPath: m_LocalPosition.y 1020 | value: 0 1021 | objectReference: {fileID: 0} 1022 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1023 | propertyPath: m_LocalPosition.z 1024 | value: 0 1025 | objectReference: {fileID: 0} 1026 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1027 | propertyPath: m_LocalRotation.x 1028 | value: 0 1029 | objectReference: {fileID: 0} 1030 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1031 | propertyPath: m_LocalRotation.y 1032 | value: 0 1033 | objectReference: {fileID: 0} 1034 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1035 | propertyPath: m_LocalRotation.z 1036 | value: 0 1037 | objectReference: {fileID: 0} 1038 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1039 | propertyPath: m_LocalRotation.w 1040 | value: 1 1041 | objectReference: {fileID: 0} 1042 | - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1043 | propertyPath: m_RootOrder 1044 | value: 1 1045 | objectReference: {fileID: 0} 1046 | - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1047 | propertyPath: StartWithControllers 1048 | value: 0 1049 | objectReference: {fileID: 0} 1050 | - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1051 | propertyPath: m_IsActive 1052 | value: 1 1053 | objectReference: {fileID: 0} 1054 | m_RemovedComponents: [] 1055 | m_ParentPrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 2} 1056 | m_IsPrefabParent: 0 1057 | --- !u!1 &1187344433 1058 | GameObject: 1059 | m_ObjectHideFlags: 0 1060 | m_PrefabParentObject: {fileID: 0} 1061 | m_PrefabInternal: {fileID: 0} 1062 | serializedVersion: 5 1063 | m_Component: 1064 | - component: {fileID: 1187344439} 1065 | - component: {fileID: 1187344438} 1066 | - component: {fileID: 1187344437} 1067 | - component: {fileID: 1187344436} 1068 | - component: {fileID: 1187344435} 1069 | - component: {fileID: 1187344434} 1070 | m_Layer: 0 1071 | m_Name: Object (6) 1072 | m_TagString: Untagged 1073 | m_Icon: {fileID: 0} 1074 | m_NavMeshLayer: 0 1075 | m_StaticEditorFlags: 0 1076 | m_IsActive: 1 1077 | --- !u!114 &1187344434 1078 | MonoBehaviour: 1079 | m_ObjectHideFlags: 0 1080 | m_PrefabParentObject: {fileID: 0} 1081 | m_PrefabInternal: {fileID: 0} 1082 | m_GameObject: {fileID: 1187344433} 1083 | m_Enabled: 1 1084 | m_EditorHideFlags: 0 1085 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 1086 | m_Name: 1087 | m_EditorClassIdentifier: 1088 | isScalable: 1 1089 | onGrabbed: 1090 | m_PersistentCalls: 1091 | m_Calls: [] 1092 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1093 | Culture=neutral, PublicKeyToken=null 1094 | onReleased: 1095 | m_PersistentCalls: 1096 | m_Calls: [] 1097 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1098 | Culture=neutral, PublicKeyToken=null 1099 | onGrabClicked: 1100 | m_PersistentCalls: 1101 | m_Calls: [] 1102 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1103 | Culture=neutral, PublicKeyToken=null 1104 | onGrabMoved: 1105 | m_PersistentCalls: 1106 | m_Calls: [] 1107 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1108 | Culture=neutral, PublicKeyToken=null 1109 | --- !u!54 &1187344435 1110 | Rigidbody: 1111 | m_ObjectHideFlags: 0 1112 | m_PrefabParentObject: {fileID: 0} 1113 | m_PrefabInternal: {fileID: 0} 1114 | m_GameObject: {fileID: 1187344433} 1115 | serializedVersion: 2 1116 | m_Mass: 1 1117 | m_Drag: 0 1118 | m_AngularDrag: 0.05 1119 | m_UseGravity: 1 1120 | m_IsKinematic: 0 1121 | m_Interpolate: 0 1122 | m_Constraints: 0 1123 | m_CollisionDetection: 0 1124 | --- !u!23 &1187344436 1125 | MeshRenderer: 1126 | m_ObjectHideFlags: 0 1127 | m_PrefabParentObject: {fileID: 0} 1128 | m_PrefabInternal: {fileID: 0} 1129 | m_GameObject: {fileID: 1187344433} 1130 | m_Enabled: 1 1131 | m_CastShadows: 1 1132 | m_ReceiveShadows: 1 1133 | m_DynamicOccludee: 1 1134 | m_MotionVectors: 1 1135 | m_LightProbeUsage: 1 1136 | m_ReflectionProbeUsage: 1 1137 | m_Materials: 1138 | - {fileID: 2100000, guid: 9b82445bd9f69b8439840e50252129d9, type: 2} 1139 | m_StaticBatchInfo: 1140 | firstSubMesh: 0 1141 | subMeshCount: 0 1142 | m_StaticBatchRoot: {fileID: 0} 1143 | m_ProbeAnchor: {fileID: 0} 1144 | m_LightProbeVolumeOverride: {fileID: 0} 1145 | m_ScaleInLightmap: 1 1146 | m_PreserveUVs: 1 1147 | m_IgnoreNormalsForChartDetection: 0 1148 | m_ImportantGI: 0 1149 | m_StitchLightmapSeams: 0 1150 | m_SelectedEditorRenderState: 3 1151 | m_MinimumChartSize: 4 1152 | m_AutoUVMaxDistance: 0.5 1153 | m_AutoUVMaxAngle: 89 1154 | m_LightmapParameters: {fileID: 0} 1155 | m_SortingLayerID: 0 1156 | m_SortingLayer: 0 1157 | m_SortingOrder: 0 1158 | --- !u!65 &1187344437 1159 | BoxCollider: 1160 | m_ObjectHideFlags: 0 1161 | m_PrefabParentObject: {fileID: 0} 1162 | m_PrefabInternal: {fileID: 0} 1163 | m_GameObject: {fileID: 1187344433} 1164 | m_Material: {fileID: 0} 1165 | m_IsTrigger: 0 1166 | m_Enabled: 1 1167 | serializedVersion: 2 1168 | m_Size: {x: 1, y: 1, z: 1} 1169 | m_Center: {x: 0, y: 0, z: 0} 1170 | --- !u!33 &1187344438 1171 | MeshFilter: 1172 | m_ObjectHideFlags: 0 1173 | m_PrefabParentObject: {fileID: 0} 1174 | m_PrefabInternal: {fileID: 0} 1175 | m_GameObject: {fileID: 1187344433} 1176 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1177 | --- !u!4 &1187344439 1178 | Transform: 1179 | m_ObjectHideFlags: 0 1180 | m_PrefabParentObject: {fileID: 0} 1181 | m_PrefabInternal: {fileID: 0} 1182 | m_GameObject: {fileID: 1187344433} 1183 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1184 | m_LocalPosition: {x: 0.106, y: 0.8904, z: 1.023} 1185 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 1186 | m_Children: [] 1187 | m_Father: {fileID: 0} 1188 | m_RootOrder: 11 1189 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1190 | --- !u!1001 &1220074441 1191 | Prefab: 1192 | m_ObjectHideFlags: 0 1193 | serializedVersion: 2 1194 | m_Modification: 1195 | m_TransformParent: {fileID: 0} 1196 | m_Modifications: 1197 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1198 | propertyPath: m_LocalPosition.x 1199 | value: 0 1200 | objectReference: {fileID: 0} 1201 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1202 | propertyPath: m_LocalPosition.y 1203 | value: 0 1204 | objectReference: {fileID: 0} 1205 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1206 | propertyPath: m_LocalPosition.z 1207 | value: 0 1208 | objectReference: {fileID: 0} 1209 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1210 | propertyPath: m_LocalRotation.x 1211 | value: 0 1212 | objectReference: {fileID: 0} 1213 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1214 | propertyPath: m_LocalRotation.y 1215 | value: 0 1216 | objectReference: {fileID: 0} 1217 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1218 | propertyPath: m_LocalRotation.z 1219 | value: 0 1220 | objectReference: {fileID: 0} 1221 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1222 | propertyPath: m_LocalRotation.w 1223 | value: 1 1224 | objectReference: {fileID: 0} 1225 | - target: {fileID: 4934257319846562, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1226 | propertyPath: m_RootOrder 1227 | value: 18 1228 | objectReference: {fileID: 0} 1229 | m_RemovedComponents: [] 1230 | m_ParentPrefab: {fileID: 100100000, guid: 5e437c60d9722a548ba6b6c06d881659, type: 2} 1231 | m_IsPrefabParent: 0 1232 | --- !u!1 &1226142521 1233 | GameObject: 1234 | m_ObjectHideFlags: 0 1235 | m_PrefabParentObject: {fileID: 0} 1236 | m_PrefabInternal: {fileID: 0} 1237 | serializedVersion: 5 1238 | m_Component: 1239 | - component: {fileID: 1226142528} 1240 | - component: {fileID: 1226142527} 1241 | - component: {fileID: 1226142526} 1242 | - component: {fileID: 1226142525} 1243 | - component: {fileID: 1226142524} 1244 | - component: {fileID: 1226142523} 1245 | - component: {fileID: 1226142522} 1246 | m_Layer: 0 1247 | m_Name: Floating Object (2) 1248 | m_TagString: Untagged 1249 | m_Icon: {fileID: 0} 1250 | m_NavMeshLayer: 0 1251 | m_StaticEditorFlags: 0 1252 | m_IsActive: 1 1253 | --- !u!114 &1226142522 1254 | MonoBehaviour: 1255 | m_ObjectHideFlags: 0 1256 | m_PrefabParentObject: {fileID: 0} 1257 | m_PrefabInternal: {fileID: 0} 1258 | m_GameObject: {fileID: 1226142521} 1259 | m_Enabled: 1 1260 | m_EditorHideFlags: 0 1261 | m_Script: {fileID: 11500000, guid: a0f42ee1cd1a04f41b727c7a360da4ec, type: 3} 1262 | m_Name: 1263 | m_EditorClassIdentifier: 1264 | moveDamping: 0.95 1265 | rotationDamping: 0.95 1266 | --- !u!114 &1226142523 1267 | MonoBehaviour: 1268 | m_ObjectHideFlags: 0 1269 | m_PrefabParentObject: {fileID: 0} 1270 | m_PrefabInternal: {fileID: 0} 1271 | m_GameObject: {fileID: 1226142521} 1272 | m_Enabled: 1 1273 | m_EditorHideFlags: 0 1274 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 1275 | m_Name: 1276 | m_EditorClassIdentifier: 1277 | isScalable: 1 1278 | onGrabbed: 1279 | m_PersistentCalls: 1280 | m_Calls: [] 1281 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1282 | Culture=neutral, PublicKeyToken=null 1283 | onReleased: 1284 | m_PersistentCalls: 1285 | m_Calls: [] 1286 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1287 | Culture=neutral, PublicKeyToken=null 1288 | onGrabClicked: 1289 | m_PersistentCalls: 1290 | m_Calls: [] 1291 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1292 | Culture=neutral, PublicKeyToken=null 1293 | onGrabMoved: 1294 | m_PersistentCalls: 1295 | m_Calls: [] 1296 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1297 | Culture=neutral, PublicKeyToken=null 1298 | --- !u!54 &1226142524 1299 | Rigidbody: 1300 | m_ObjectHideFlags: 0 1301 | m_PrefabParentObject: {fileID: 0} 1302 | m_PrefabInternal: {fileID: 0} 1303 | m_GameObject: {fileID: 1226142521} 1304 | serializedVersion: 2 1305 | m_Mass: 1 1306 | m_Drag: 0 1307 | m_AngularDrag: 0.05 1308 | m_UseGravity: 0 1309 | m_IsKinematic: 0 1310 | m_Interpolate: 0 1311 | m_Constraints: 0 1312 | m_CollisionDetection: 0 1313 | --- !u!23 &1226142525 1314 | MeshRenderer: 1315 | m_ObjectHideFlags: 0 1316 | m_PrefabParentObject: {fileID: 0} 1317 | m_PrefabInternal: {fileID: 0} 1318 | m_GameObject: {fileID: 1226142521} 1319 | m_Enabled: 1 1320 | m_CastShadows: 1 1321 | m_ReceiveShadows: 1 1322 | m_DynamicOccludee: 1 1323 | m_MotionVectors: 1 1324 | m_LightProbeUsage: 1 1325 | m_ReflectionProbeUsage: 1 1326 | m_Materials: 1327 | - {fileID: 2100000, guid: 1170a292998e70d4a8d8613ec3f7da18, type: 2} 1328 | m_StaticBatchInfo: 1329 | firstSubMesh: 0 1330 | subMeshCount: 0 1331 | m_StaticBatchRoot: {fileID: 0} 1332 | m_ProbeAnchor: {fileID: 0} 1333 | m_LightProbeVolumeOverride: {fileID: 0} 1334 | m_ScaleInLightmap: 1 1335 | m_PreserveUVs: 1 1336 | m_IgnoreNormalsForChartDetection: 0 1337 | m_ImportantGI: 0 1338 | m_StitchLightmapSeams: 0 1339 | m_SelectedEditorRenderState: 3 1340 | m_MinimumChartSize: 4 1341 | m_AutoUVMaxDistance: 0.5 1342 | m_AutoUVMaxAngle: 89 1343 | m_LightmapParameters: {fileID: 0} 1344 | m_SortingLayerID: 0 1345 | m_SortingLayer: 0 1346 | m_SortingOrder: 0 1347 | --- !u!65 &1226142526 1348 | BoxCollider: 1349 | m_ObjectHideFlags: 0 1350 | m_PrefabParentObject: {fileID: 0} 1351 | m_PrefabInternal: {fileID: 0} 1352 | m_GameObject: {fileID: 1226142521} 1353 | m_Material: {fileID: 0} 1354 | m_IsTrigger: 0 1355 | m_Enabled: 1 1356 | serializedVersion: 2 1357 | m_Size: {x: 1, y: 1, z: 1} 1358 | m_Center: {x: 0, y: 0, z: 0} 1359 | --- !u!33 &1226142527 1360 | MeshFilter: 1361 | m_ObjectHideFlags: 0 1362 | m_PrefabParentObject: {fileID: 0} 1363 | m_PrefabInternal: {fileID: 0} 1364 | m_GameObject: {fileID: 1226142521} 1365 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1366 | --- !u!4 &1226142528 1367 | Transform: 1368 | m_ObjectHideFlags: 0 1369 | m_PrefabParentObject: {fileID: 0} 1370 | m_PrefabInternal: {fileID: 0} 1371 | m_GameObject: {fileID: 1226142521} 1372 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1373 | m_LocalPosition: {x: -0.257, y: 1.022, z: 0.937} 1374 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 1375 | m_Children: [] 1376 | m_Father: {fileID: 0} 1377 | m_RootOrder: 13 1378 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1379 | --- !u!1 &1265637617 1380 | GameObject: 1381 | m_ObjectHideFlags: 0 1382 | m_PrefabParentObject: {fileID: 0} 1383 | m_PrefabInternal: {fileID: 0} 1384 | serializedVersion: 5 1385 | m_Component: 1386 | - component: {fileID: 1265637624} 1387 | - component: {fileID: 1265637623} 1388 | - component: {fileID: 1265637622} 1389 | - component: {fileID: 1265637621} 1390 | - component: {fileID: 1265637620} 1391 | - component: {fileID: 1265637619} 1392 | - component: {fileID: 1265637618} 1393 | m_Layer: 0 1394 | m_Name: Floating Object (3) 1395 | m_TagString: Untagged 1396 | m_Icon: {fileID: 0} 1397 | m_NavMeshLayer: 0 1398 | m_StaticEditorFlags: 0 1399 | m_IsActive: 1 1400 | --- !u!114 &1265637618 1401 | MonoBehaviour: 1402 | m_ObjectHideFlags: 0 1403 | m_PrefabParentObject: {fileID: 0} 1404 | m_PrefabInternal: {fileID: 0} 1405 | m_GameObject: {fileID: 1265637617} 1406 | m_Enabled: 1 1407 | m_EditorHideFlags: 0 1408 | m_Script: {fileID: 11500000, guid: a0f42ee1cd1a04f41b727c7a360da4ec, type: 3} 1409 | m_Name: 1410 | m_EditorClassIdentifier: 1411 | moveDamping: 0.95 1412 | rotationDamping: 0.95 1413 | --- !u!114 &1265637619 1414 | MonoBehaviour: 1415 | m_ObjectHideFlags: 0 1416 | m_PrefabParentObject: {fileID: 0} 1417 | m_PrefabInternal: {fileID: 0} 1418 | m_GameObject: {fileID: 1265637617} 1419 | m_Enabled: 1 1420 | m_EditorHideFlags: 0 1421 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 1422 | m_Name: 1423 | m_EditorClassIdentifier: 1424 | isScalable: 1 1425 | onGrabbed: 1426 | m_PersistentCalls: 1427 | m_Calls: [] 1428 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1429 | Culture=neutral, PublicKeyToken=null 1430 | onReleased: 1431 | m_PersistentCalls: 1432 | m_Calls: [] 1433 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1434 | Culture=neutral, PublicKeyToken=null 1435 | onGrabClicked: 1436 | m_PersistentCalls: 1437 | m_Calls: [] 1438 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1439 | Culture=neutral, PublicKeyToken=null 1440 | onGrabMoved: 1441 | m_PersistentCalls: 1442 | m_Calls: [] 1443 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1444 | Culture=neutral, PublicKeyToken=null 1445 | --- !u!54 &1265637620 1446 | Rigidbody: 1447 | m_ObjectHideFlags: 0 1448 | m_PrefabParentObject: {fileID: 0} 1449 | m_PrefabInternal: {fileID: 0} 1450 | m_GameObject: {fileID: 1265637617} 1451 | serializedVersion: 2 1452 | m_Mass: 1 1453 | m_Drag: 0 1454 | m_AngularDrag: 0.05 1455 | m_UseGravity: 0 1456 | m_IsKinematic: 0 1457 | m_Interpolate: 0 1458 | m_Constraints: 0 1459 | m_CollisionDetection: 0 1460 | --- !u!23 &1265637621 1461 | MeshRenderer: 1462 | m_ObjectHideFlags: 0 1463 | m_PrefabParentObject: {fileID: 0} 1464 | m_PrefabInternal: {fileID: 0} 1465 | m_GameObject: {fileID: 1265637617} 1466 | m_Enabled: 1 1467 | m_CastShadows: 1 1468 | m_ReceiveShadows: 1 1469 | m_DynamicOccludee: 1 1470 | m_MotionVectors: 1 1471 | m_LightProbeUsage: 1 1472 | m_ReflectionProbeUsage: 1 1473 | m_Materials: 1474 | - {fileID: 2100000, guid: 1170a292998e70d4a8d8613ec3f7da18, type: 2} 1475 | m_StaticBatchInfo: 1476 | firstSubMesh: 0 1477 | subMeshCount: 0 1478 | m_StaticBatchRoot: {fileID: 0} 1479 | m_ProbeAnchor: {fileID: 0} 1480 | m_LightProbeVolumeOverride: {fileID: 0} 1481 | m_ScaleInLightmap: 1 1482 | m_PreserveUVs: 1 1483 | m_IgnoreNormalsForChartDetection: 0 1484 | m_ImportantGI: 0 1485 | m_StitchLightmapSeams: 0 1486 | m_SelectedEditorRenderState: 3 1487 | m_MinimumChartSize: 4 1488 | m_AutoUVMaxDistance: 0.5 1489 | m_AutoUVMaxAngle: 89 1490 | m_LightmapParameters: {fileID: 0} 1491 | m_SortingLayerID: 0 1492 | m_SortingLayer: 0 1493 | m_SortingOrder: 0 1494 | --- !u!65 &1265637622 1495 | BoxCollider: 1496 | m_ObjectHideFlags: 0 1497 | m_PrefabParentObject: {fileID: 0} 1498 | m_PrefabInternal: {fileID: 0} 1499 | m_GameObject: {fileID: 1265637617} 1500 | m_Material: {fileID: 0} 1501 | m_IsTrigger: 0 1502 | m_Enabled: 1 1503 | serializedVersion: 2 1504 | m_Size: {x: 1, y: 1, z: 1} 1505 | m_Center: {x: 0, y: 0, z: 0} 1506 | --- !u!33 &1265637623 1507 | MeshFilter: 1508 | m_ObjectHideFlags: 0 1509 | m_PrefabParentObject: {fileID: 0} 1510 | m_PrefabInternal: {fileID: 0} 1511 | m_GameObject: {fileID: 1265637617} 1512 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1513 | --- !u!4 &1265637624 1514 | Transform: 1515 | m_ObjectHideFlags: 0 1516 | m_PrefabParentObject: {fileID: 0} 1517 | m_PrefabInternal: {fileID: 0} 1518 | m_GameObject: {fileID: 1265637617} 1519 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1520 | m_LocalPosition: {x: -0.326, y: 1.022, z: 0.699} 1521 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 1522 | m_Children: [] 1523 | m_Father: {fileID: 0} 1524 | m_RootOrder: 14 1525 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1526 | --- !u!1001 &1328467609 1527 | Prefab: 1528 | m_ObjectHideFlags: 0 1529 | serializedVersion: 2 1530 | m_Modification: 1531 | m_TransformParent: {fileID: 794091495} 1532 | m_Modifications: 1533 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1534 | propertyPath: m_LocalPosition.x 1535 | value: 0 1536 | objectReference: {fileID: 0} 1537 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1538 | propertyPath: m_LocalPosition.y 1539 | value: 0 1540 | objectReference: {fileID: 0} 1541 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1542 | propertyPath: m_LocalPosition.z 1543 | value: 0 1544 | objectReference: {fileID: 0} 1545 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1546 | propertyPath: m_LocalRotation.x 1547 | value: -0 1548 | objectReference: {fileID: 0} 1549 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1550 | propertyPath: m_LocalRotation.y 1551 | value: -0 1552 | objectReference: {fileID: 0} 1553 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1554 | propertyPath: m_LocalRotation.z 1555 | value: -0 1556 | objectReference: {fileID: 0} 1557 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1558 | propertyPath: m_LocalRotation.w 1559 | value: 1 1560 | objectReference: {fileID: 0} 1561 | - target: {fileID: 4002061232394670, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1562 | propertyPath: m_RootOrder 1563 | value: 7 1564 | objectReference: {fileID: 0} 1565 | m_RemovedComponents: [] 1566 | m_ParentPrefab: {fileID: 100100000, guid: 5d939a13af958dc49a95c255c7bc51c9, type: 2} 1567 | m_IsPrefabParent: 0 1568 | --- !u!1 &1370548956 1569 | GameObject: 1570 | m_ObjectHideFlags: 0 1571 | m_PrefabParentObject: {fileID: 0} 1572 | m_PrefabInternal: {fileID: 0} 1573 | serializedVersion: 5 1574 | m_Component: 1575 | - component: {fileID: 1370548963} 1576 | - component: {fileID: 1370548962} 1577 | - component: {fileID: 1370548961} 1578 | - component: {fileID: 1370548960} 1579 | - component: {fileID: 1370548959} 1580 | - component: {fileID: 1370548958} 1581 | - component: {fileID: 1370548957} 1582 | m_Layer: 0 1583 | m_Name: Floating Object (4) 1584 | m_TagString: Untagged 1585 | m_Icon: {fileID: 0} 1586 | m_NavMeshLayer: 0 1587 | m_StaticEditorFlags: 0 1588 | m_IsActive: 1 1589 | --- !u!114 &1370548957 1590 | MonoBehaviour: 1591 | m_ObjectHideFlags: 0 1592 | m_PrefabParentObject: {fileID: 0} 1593 | m_PrefabInternal: {fileID: 0} 1594 | m_GameObject: {fileID: 1370548956} 1595 | m_Enabled: 1 1596 | m_EditorHideFlags: 0 1597 | m_Script: {fileID: 11500000, guid: a0f42ee1cd1a04f41b727c7a360da4ec, type: 3} 1598 | m_Name: 1599 | m_EditorClassIdentifier: 1600 | moveDamping: 0.95 1601 | rotationDamping: 0.95 1602 | --- !u!114 &1370548958 1603 | MonoBehaviour: 1604 | m_ObjectHideFlags: 0 1605 | m_PrefabParentObject: {fileID: 0} 1606 | m_PrefabInternal: {fileID: 0} 1607 | m_GameObject: {fileID: 1370548956} 1608 | m_Enabled: 1 1609 | m_EditorHideFlags: 0 1610 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 1611 | m_Name: 1612 | m_EditorClassIdentifier: 1613 | isScalable: 1 1614 | onGrabbed: 1615 | m_PersistentCalls: 1616 | m_Calls: [] 1617 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1618 | Culture=neutral, PublicKeyToken=null 1619 | onReleased: 1620 | m_PersistentCalls: 1621 | m_Calls: [] 1622 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1623 | Culture=neutral, PublicKeyToken=null 1624 | onGrabClicked: 1625 | m_PersistentCalls: 1626 | m_Calls: [] 1627 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1628 | Culture=neutral, PublicKeyToken=null 1629 | onGrabMoved: 1630 | m_PersistentCalls: 1631 | m_Calls: [] 1632 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1633 | Culture=neutral, PublicKeyToken=null 1634 | --- !u!54 &1370548959 1635 | Rigidbody: 1636 | m_ObjectHideFlags: 0 1637 | m_PrefabParentObject: {fileID: 0} 1638 | m_PrefabInternal: {fileID: 0} 1639 | m_GameObject: {fileID: 1370548956} 1640 | serializedVersion: 2 1641 | m_Mass: 1 1642 | m_Drag: 0 1643 | m_AngularDrag: 0.05 1644 | m_UseGravity: 0 1645 | m_IsKinematic: 0 1646 | m_Interpolate: 0 1647 | m_Constraints: 0 1648 | m_CollisionDetection: 0 1649 | --- !u!23 &1370548960 1650 | MeshRenderer: 1651 | m_ObjectHideFlags: 0 1652 | m_PrefabParentObject: {fileID: 0} 1653 | m_PrefabInternal: {fileID: 0} 1654 | m_GameObject: {fileID: 1370548956} 1655 | m_Enabled: 1 1656 | m_CastShadows: 1 1657 | m_ReceiveShadows: 1 1658 | m_DynamicOccludee: 1 1659 | m_MotionVectors: 1 1660 | m_LightProbeUsage: 1 1661 | m_ReflectionProbeUsage: 1 1662 | m_Materials: 1663 | - {fileID: 2100000, guid: 1170a292998e70d4a8d8613ec3f7da18, type: 2} 1664 | m_StaticBatchInfo: 1665 | firstSubMesh: 0 1666 | subMeshCount: 0 1667 | m_StaticBatchRoot: {fileID: 0} 1668 | m_ProbeAnchor: {fileID: 0} 1669 | m_LightProbeVolumeOverride: {fileID: 0} 1670 | m_ScaleInLightmap: 1 1671 | m_PreserveUVs: 1 1672 | m_IgnoreNormalsForChartDetection: 0 1673 | m_ImportantGI: 0 1674 | m_StitchLightmapSeams: 0 1675 | m_SelectedEditorRenderState: 3 1676 | m_MinimumChartSize: 4 1677 | m_AutoUVMaxDistance: 0.5 1678 | m_AutoUVMaxAngle: 89 1679 | m_LightmapParameters: {fileID: 0} 1680 | m_SortingLayerID: 0 1681 | m_SortingLayer: 0 1682 | m_SortingOrder: 0 1683 | --- !u!65 &1370548961 1684 | BoxCollider: 1685 | m_ObjectHideFlags: 0 1686 | m_PrefabParentObject: {fileID: 0} 1687 | m_PrefabInternal: {fileID: 0} 1688 | m_GameObject: {fileID: 1370548956} 1689 | m_Material: {fileID: 0} 1690 | m_IsTrigger: 0 1691 | m_Enabled: 1 1692 | serializedVersion: 2 1693 | m_Size: {x: 1, y: 1, z: 1} 1694 | m_Center: {x: 0, y: 0, z: 0} 1695 | --- !u!33 &1370548962 1696 | MeshFilter: 1697 | m_ObjectHideFlags: 0 1698 | m_PrefabParentObject: {fileID: 0} 1699 | m_PrefabInternal: {fileID: 0} 1700 | m_GameObject: {fileID: 1370548956} 1701 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1702 | --- !u!4 &1370548963 1703 | Transform: 1704 | m_ObjectHideFlags: 0 1705 | m_PrefabParentObject: {fileID: 0} 1706 | m_PrefabInternal: {fileID: 0} 1707 | m_GameObject: {fileID: 1370548956} 1708 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1709 | m_LocalPosition: {x: -0.337, y: 1.022, z: 1.118} 1710 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 1711 | m_Children: [] 1712 | m_Father: {fileID: 0} 1713 | m_RootOrder: 15 1714 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1715 | --- !u!1 &1384783267 1716 | GameObject: 1717 | m_ObjectHideFlags: 0 1718 | m_PrefabParentObject: {fileID: 0} 1719 | m_PrefabInternal: {fileID: 0} 1720 | serializedVersion: 5 1721 | m_Component: 1722 | - component: {fileID: 1384783274} 1723 | - component: {fileID: 1384783273} 1724 | - component: {fileID: 1384783272} 1725 | - component: {fileID: 1384783271} 1726 | - component: {fileID: 1384783270} 1727 | - component: {fileID: 1384783269} 1728 | - component: {fileID: 1384783268} 1729 | m_Layer: 0 1730 | m_Name: Floating Object (6) 1731 | m_TagString: Untagged 1732 | m_Icon: {fileID: 0} 1733 | m_NavMeshLayer: 0 1734 | m_StaticEditorFlags: 0 1735 | m_IsActive: 1 1736 | --- !u!114 &1384783268 1737 | MonoBehaviour: 1738 | m_ObjectHideFlags: 0 1739 | m_PrefabParentObject: {fileID: 0} 1740 | m_PrefabInternal: {fileID: 0} 1741 | m_GameObject: {fileID: 1384783267} 1742 | m_Enabled: 1 1743 | m_EditorHideFlags: 0 1744 | m_Script: {fileID: 11500000, guid: a0f42ee1cd1a04f41b727c7a360da4ec, type: 3} 1745 | m_Name: 1746 | m_EditorClassIdentifier: 1747 | moveDamping: 0.95 1748 | rotationDamping: 0.95 1749 | --- !u!114 &1384783269 1750 | MonoBehaviour: 1751 | m_ObjectHideFlags: 0 1752 | m_PrefabParentObject: {fileID: 0} 1753 | m_PrefabInternal: {fileID: 0} 1754 | m_GameObject: {fileID: 1384783267} 1755 | m_Enabled: 1 1756 | m_EditorHideFlags: 0 1757 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 1758 | m_Name: 1759 | m_EditorClassIdentifier: 1760 | isScalable: 1 1761 | onGrabbed: 1762 | m_PersistentCalls: 1763 | m_Calls: [] 1764 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1765 | Culture=neutral, PublicKeyToken=null 1766 | onReleased: 1767 | m_PersistentCalls: 1768 | m_Calls: [] 1769 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1770 | Culture=neutral, PublicKeyToken=null 1771 | onGrabClicked: 1772 | m_PersistentCalls: 1773 | m_Calls: [] 1774 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1775 | Culture=neutral, PublicKeyToken=null 1776 | onGrabMoved: 1777 | m_PersistentCalls: 1778 | m_Calls: [] 1779 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1780 | Culture=neutral, PublicKeyToken=null 1781 | --- !u!54 &1384783270 1782 | Rigidbody: 1783 | m_ObjectHideFlags: 0 1784 | m_PrefabParentObject: {fileID: 0} 1785 | m_PrefabInternal: {fileID: 0} 1786 | m_GameObject: {fileID: 1384783267} 1787 | serializedVersion: 2 1788 | m_Mass: 1 1789 | m_Drag: 0 1790 | m_AngularDrag: 0.05 1791 | m_UseGravity: 0 1792 | m_IsKinematic: 0 1793 | m_Interpolate: 0 1794 | m_Constraints: 0 1795 | m_CollisionDetection: 0 1796 | --- !u!23 &1384783271 1797 | MeshRenderer: 1798 | m_ObjectHideFlags: 0 1799 | m_PrefabParentObject: {fileID: 0} 1800 | m_PrefabInternal: {fileID: 0} 1801 | m_GameObject: {fileID: 1384783267} 1802 | m_Enabled: 1 1803 | m_CastShadows: 1 1804 | m_ReceiveShadows: 1 1805 | m_DynamicOccludee: 1 1806 | m_MotionVectors: 1 1807 | m_LightProbeUsage: 1 1808 | m_ReflectionProbeUsage: 1 1809 | m_Materials: 1810 | - {fileID: 2100000, guid: 1170a292998e70d4a8d8613ec3f7da18, type: 2} 1811 | m_StaticBatchInfo: 1812 | firstSubMesh: 0 1813 | subMeshCount: 0 1814 | m_StaticBatchRoot: {fileID: 0} 1815 | m_ProbeAnchor: {fileID: 0} 1816 | m_LightProbeVolumeOverride: {fileID: 0} 1817 | m_ScaleInLightmap: 1 1818 | m_PreserveUVs: 1 1819 | m_IgnoreNormalsForChartDetection: 0 1820 | m_ImportantGI: 0 1821 | m_StitchLightmapSeams: 0 1822 | m_SelectedEditorRenderState: 3 1823 | m_MinimumChartSize: 4 1824 | m_AutoUVMaxDistance: 0.5 1825 | m_AutoUVMaxAngle: 89 1826 | m_LightmapParameters: {fileID: 0} 1827 | m_SortingLayerID: 0 1828 | m_SortingLayer: 0 1829 | m_SortingOrder: 0 1830 | --- !u!65 &1384783272 1831 | BoxCollider: 1832 | m_ObjectHideFlags: 0 1833 | m_PrefabParentObject: {fileID: 0} 1834 | m_PrefabInternal: {fileID: 0} 1835 | m_GameObject: {fileID: 1384783267} 1836 | m_Material: {fileID: 0} 1837 | m_IsTrigger: 0 1838 | m_Enabled: 1 1839 | serializedVersion: 2 1840 | m_Size: {x: 1, y: 1, z: 1} 1841 | m_Center: {x: 0, y: 0, z: 0} 1842 | --- !u!33 &1384783273 1843 | MeshFilter: 1844 | m_ObjectHideFlags: 0 1845 | m_PrefabParentObject: {fileID: 0} 1846 | m_PrefabInternal: {fileID: 0} 1847 | m_GameObject: {fileID: 1384783267} 1848 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1849 | --- !u!4 &1384783274 1850 | Transform: 1851 | m_ObjectHideFlags: 0 1852 | m_PrefabParentObject: {fileID: 0} 1853 | m_PrefabInternal: {fileID: 0} 1854 | m_GameObject: {fileID: 1384783267} 1855 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1856 | m_LocalPosition: {x: -0.535, y: 1.022, z: 0.891} 1857 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 1858 | m_Children: [] 1859 | m_Father: {fileID: 0} 1860 | m_RootOrder: 17 1861 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1862 | --- !u!1 &1407787128 1863 | GameObject: 1864 | m_ObjectHideFlags: 0 1865 | m_PrefabParentObject: {fileID: 0} 1866 | m_PrefabInternal: {fileID: 0} 1867 | serializedVersion: 5 1868 | m_Component: 1869 | - component: {fileID: 1407787134} 1870 | - component: {fileID: 1407787133} 1871 | - component: {fileID: 1407787132} 1872 | - component: {fileID: 1407787131} 1873 | - component: {fileID: 1407787130} 1874 | - component: {fileID: 1407787129} 1875 | m_Layer: 0 1876 | m_Name: Object (3) 1877 | m_TagString: Untagged 1878 | m_Icon: {fileID: 0} 1879 | m_NavMeshLayer: 0 1880 | m_StaticEditorFlags: 0 1881 | m_IsActive: 1 1882 | --- !u!114 &1407787129 1883 | MonoBehaviour: 1884 | m_ObjectHideFlags: 0 1885 | m_PrefabParentObject: {fileID: 0} 1886 | m_PrefabInternal: {fileID: 0} 1887 | m_GameObject: {fileID: 1407787128} 1888 | m_Enabled: 1 1889 | m_EditorHideFlags: 0 1890 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 1891 | m_Name: 1892 | m_EditorClassIdentifier: 1893 | isScalable: 1 1894 | onGrabbed: 1895 | m_PersistentCalls: 1896 | m_Calls: [] 1897 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1898 | Culture=neutral, PublicKeyToken=null 1899 | onReleased: 1900 | m_PersistentCalls: 1901 | m_Calls: [] 1902 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1903 | Culture=neutral, PublicKeyToken=null 1904 | onGrabClicked: 1905 | m_PersistentCalls: 1906 | m_Calls: [] 1907 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1908 | Culture=neutral, PublicKeyToken=null 1909 | onGrabMoved: 1910 | m_PersistentCalls: 1911 | m_Calls: [] 1912 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 1913 | Culture=neutral, PublicKeyToken=null 1914 | --- !u!54 &1407787130 1915 | Rigidbody: 1916 | m_ObjectHideFlags: 0 1917 | m_PrefabParentObject: {fileID: 0} 1918 | m_PrefabInternal: {fileID: 0} 1919 | m_GameObject: {fileID: 1407787128} 1920 | serializedVersion: 2 1921 | m_Mass: 1 1922 | m_Drag: 0 1923 | m_AngularDrag: 0.05 1924 | m_UseGravity: 1 1925 | m_IsKinematic: 0 1926 | m_Interpolate: 0 1927 | m_Constraints: 0 1928 | m_CollisionDetection: 0 1929 | --- !u!23 &1407787131 1930 | MeshRenderer: 1931 | m_ObjectHideFlags: 0 1932 | m_PrefabParentObject: {fileID: 0} 1933 | m_PrefabInternal: {fileID: 0} 1934 | m_GameObject: {fileID: 1407787128} 1935 | m_Enabled: 1 1936 | m_CastShadows: 1 1937 | m_ReceiveShadows: 1 1938 | m_DynamicOccludee: 1 1939 | m_MotionVectors: 1 1940 | m_LightProbeUsage: 1 1941 | m_ReflectionProbeUsage: 1 1942 | m_Materials: 1943 | - {fileID: 2100000, guid: 9b82445bd9f69b8439840e50252129d9, type: 2} 1944 | m_StaticBatchInfo: 1945 | firstSubMesh: 0 1946 | subMeshCount: 0 1947 | m_StaticBatchRoot: {fileID: 0} 1948 | m_ProbeAnchor: {fileID: 0} 1949 | m_LightProbeVolumeOverride: {fileID: 0} 1950 | m_ScaleInLightmap: 1 1951 | m_PreserveUVs: 1 1952 | m_IgnoreNormalsForChartDetection: 0 1953 | m_ImportantGI: 0 1954 | m_StitchLightmapSeams: 0 1955 | m_SelectedEditorRenderState: 3 1956 | m_MinimumChartSize: 4 1957 | m_AutoUVMaxDistance: 0.5 1958 | m_AutoUVMaxAngle: 89 1959 | m_LightmapParameters: {fileID: 0} 1960 | m_SortingLayerID: 0 1961 | m_SortingLayer: 0 1962 | m_SortingOrder: 0 1963 | --- !u!65 &1407787132 1964 | BoxCollider: 1965 | m_ObjectHideFlags: 0 1966 | m_PrefabParentObject: {fileID: 0} 1967 | m_PrefabInternal: {fileID: 0} 1968 | m_GameObject: {fileID: 1407787128} 1969 | m_Material: {fileID: 0} 1970 | m_IsTrigger: 0 1971 | m_Enabled: 1 1972 | serializedVersion: 2 1973 | m_Size: {x: 1, y: 1, z: 1} 1974 | m_Center: {x: 0, y: 0, z: 0} 1975 | --- !u!33 &1407787133 1976 | MeshFilter: 1977 | m_ObjectHideFlags: 0 1978 | m_PrefabParentObject: {fileID: 0} 1979 | m_PrefabInternal: {fileID: 0} 1980 | m_GameObject: {fileID: 1407787128} 1981 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1982 | --- !u!4 &1407787134 1983 | Transform: 1984 | m_ObjectHideFlags: 0 1985 | m_PrefabParentObject: {fileID: 0} 1986 | m_PrefabInternal: {fileID: 0} 1987 | m_GameObject: {fileID: 1407787128} 1988 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1989 | m_LocalPosition: {x: 0.459, y: 0.8904, z: 1.143} 1990 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 1991 | m_Children: [] 1992 | m_Father: {fileID: 0} 1993 | m_RootOrder: 8 1994 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1995 | --- !u!1001 &1418954905 1996 | Prefab: 1997 | m_ObjectHideFlags: 0 1998 | serializedVersion: 2 1999 | m_Modification: 2000 | m_TransformParent: {fileID: 794091495} 2001 | m_Modifications: 2002 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2003 | propertyPath: m_LocalPosition.x 2004 | value: 0 2005 | objectReference: {fileID: 0} 2006 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2007 | propertyPath: m_LocalPosition.y 2008 | value: 0 2009 | objectReference: {fileID: 0} 2010 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2011 | propertyPath: m_LocalPosition.z 2012 | value: 0 2013 | objectReference: {fileID: 0} 2014 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2015 | propertyPath: m_LocalRotation.x 2016 | value: -0 2017 | objectReference: {fileID: 0} 2018 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2019 | propertyPath: m_LocalRotation.y 2020 | value: -0 2021 | objectReference: {fileID: 0} 2022 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2023 | propertyPath: m_LocalRotation.z 2024 | value: -0 2025 | objectReference: {fileID: 0} 2026 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2027 | propertyPath: m_LocalRotation.w 2028 | value: 1 2029 | objectReference: {fileID: 0} 2030 | - target: {fileID: 4788090113365204, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2031 | propertyPath: m_RootOrder 2032 | value: 6 2033 | objectReference: {fileID: 0} 2034 | m_RemovedComponents: [] 2035 | m_ParentPrefab: {fileID: 100100000, guid: d0ebbafe85c5de047a4fd5c09f76b9d6, type: 2} 2036 | m_IsPrefabParent: 0 2037 | --- !u!1 &1544594735 2038 | GameObject: 2039 | m_ObjectHideFlags: 0 2040 | m_PrefabParentObject: {fileID: 0} 2041 | m_PrefabInternal: {fileID: 0} 2042 | serializedVersion: 5 2043 | m_Component: 2044 | - component: {fileID: 1544594742} 2045 | - component: {fileID: 1544594741} 2046 | - component: {fileID: 1544594740} 2047 | - component: {fileID: 1544594739} 2048 | - component: {fileID: 1544594738} 2049 | - component: {fileID: 1544594737} 2050 | - component: {fileID: 1544594736} 2051 | m_Layer: 0 2052 | m_Name: Floating Object (5) 2053 | m_TagString: Untagged 2054 | m_Icon: {fileID: 0} 2055 | m_NavMeshLayer: 0 2056 | m_StaticEditorFlags: 0 2057 | m_IsActive: 1 2058 | --- !u!114 &1544594736 2059 | MonoBehaviour: 2060 | m_ObjectHideFlags: 0 2061 | m_PrefabParentObject: {fileID: 0} 2062 | m_PrefabInternal: {fileID: 0} 2063 | m_GameObject: {fileID: 1544594735} 2064 | m_Enabled: 1 2065 | m_EditorHideFlags: 0 2066 | m_Script: {fileID: 11500000, guid: a0f42ee1cd1a04f41b727c7a360da4ec, type: 3} 2067 | m_Name: 2068 | m_EditorClassIdentifier: 2069 | moveDamping: 0.95 2070 | rotationDamping: 0.95 2071 | --- !u!114 &1544594737 2072 | MonoBehaviour: 2073 | m_ObjectHideFlags: 0 2074 | m_PrefabParentObject: {fileID: 0} 2075 | m_PrefabInternal: {fileID: 0} 2076 | m_GameObject: {fileID: 1544594735} 2077 | m_Enabled: 1 2078 | m_EditorHideFlags: 0 2079 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 2080 | m_Name: 2081 | m_EditorClassIdentifier: 2082 | isScalable: 1 2083 | onGrabbed: 2084 | m_PersistentCalls: 2085 | m_Calls: [] 2086 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2087 | Culture=neutral, PublicKeyToken=null 2088 | onReleased: 2089 | m_PersistentCalls: 2090 | m_Calls: [] 2091 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2092 | Culture=neutral, PublicKeyToken=null 2093 | onGrabClicked: 2094 | m_PersistentCalls: 2095 | m_Calls: [] 2096 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2097 | Culture=neutral, PublicKeyToken=null 2098 | onGrabMoved: 2099 | m_PersistentCalls: 2100 | m_Calls: [] 2101 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2102 | Culture=neutral, PublicKeyToken=null 2103 | --- !u!54 &1544594738 2104 | Rigidbody: 2105 | m_ObjectHideFlags: 0 2106 | m_PrefabParentObject: {fileID: 0} 2107 | m_PrefabInternal: {fileID: 0} 2108 | m_GameObject: {fileID: 1544594735} 2109 | serializedVersion: 2 2110 | m_Mass: 1 2111 | m_Drag: 0 2112 | m_AngularDrag: 0.05 2113 | m_UseGravity: 0 2114 | m_IsKinematic: 0 2115 | m_Interpolate: 0 2116 | m_Constraints: 0 2117 | m_CollisionDetection: 0 2118 | --- !u!23 &1544594739 2119 | MeshRenderer: 2120 | m_ObjectHideFlags: 0 2121 | m_PrefabParentObject: {fileID: 0} 2122 | m_PrefabInternal: {fileID: 0} 2123 | m_GameObject: {fileID: 1544594735} 2124 | m_Enabled: 1 2125 | m_CastShadows: 1 2126 | m_ReceiveShadows: 1 2127 | m_DynamicOccludee: 1 2128 | m_MotionVectors: 1 2129 | m_LightProbeUsage: 1 2130 | m_ReflectionProbeUsage: 1 2131 | m_Materials: 2132 | - {fileID: 2100000, guid: 1170a292998e70d4a8d8613ec3f7da18, type: 2} 2133 | m_StaticBatchInfo: 2134 | firstSubMesh: 0 2135 | subMeshCount: 0 2136 | m_StaticBatchRoot: {fileID: 0} 2137 | m_ProbeAnchor: {fileID: 0} 2138 | m_LightProbeVolumeOverride: {fileID: 0} 2139 | m_ScaleInLightmap: 1 2140 | m_PreserveUVs: 1 2141 | m_IgnoreNormalsForChartDetection: 0 2142 | m_ImportantGI: 0 2143 | m_StitchLightmapSeams: 0 2144 | m_SelectedEditorRenderState: 3 2145 | m_MinimumChartSize: 4 2146 | m_AutoUVMaxDistance: 0.5 2147 | m_AutoUVMaxAngle: 89 2148 | m_LightmapParameters: {fileID: 0} 2149 | m_SortingLayerID: 0 2150 | m_SortingLayer: 0 2151 | m_SortingOrder: 0 2152 | --- !u!65 &1544594740 2153 | BoxCollider: 2154 | m_ObjectHideFlags: 0 2155 | m_PrefabParentObject: {fileID: 0} 2156 | m_PrefabInternal: {fileID: 0} 2157 | m_GameObject: {fileID: 1544594735} 2158 | m_Material: {fileID: 0} 2159 | m_IsTrigger: 0 2160 | m_Enabled: 1 2161 | serializedVersion: 2 2162 | m_Size: {x: 1, y: 1, z: 1} 2163 | m_Center: {x: 0, y: 0, z: 0} 2164 | --- !u!33 &1544594741 2165 | MeshFilter: 2166 | m_ObjectHideFlags: 0 2167 | m_PrefabParentObject: {fileID: 0} 2168 | m_PrefabInternal: {fileID: 0} 2169 | m_GameObject: {fileID: 1544594735} 2170 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 2171 | --- !u!4 &1544594742 2172 | Transform: 2173 | m_ObjectHideFlags: 0 2174 | m_PrefabParentObject: {fileID: 0} 2175 | m_PrefabInternal: {fileID: 0} 2176 | m_GameObject: {fileID: 1544594735} 2177 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2178 | m_LocalPosition: {x: -0.067, y: 1.022, z: 1.229} 2179 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 2180 | m_Children: [] 2181 | m_Father: {fileID: 0} 2182 | m_RootOrder: 16 2183 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2184 | --- !u!1001 &1586732919 2185 | Prefab: 2186 | m_ObjectHideFlags: 0 2187 | serializedVersion: 2 2188 | m_Modification: 2189 | m_TransformParent: {fileID: 0} 2190 | m_Modifications: 2191 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2192 | propertyPath: m_LocalPosition.x 2193 | value: 0 2194 | objectReference: {fileID: 0} 2195 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2196 | propertyPath: m_LocalPosition.y 2197 | value: 0 2198 | objectReference: {fileID: 0} 2199 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2200 | propertyPath: m_LocalPosition.z 2201 | value: 0 2202 | objectReference: {fileID: 0} 2203 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2204 | propertyPath: m_LocalRotation.x 2205 | value: 0 2206 | objectReference: {fileID: 0} 2207 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2208 | propertyPath: m_LocalRotation.y 2209 | value: 0 2210 | objectReference: {fileID: 0} 2211 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2212 | propertyPath: m_LocalRotation.z 2213 | value: 0 2214 | objectReference: {fileID: 0} 2215 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2216 | propertyPath: m_LocalRotation.w 2217 | value: 1 2218 | objectReference: {fileID: 0} 2219 | - target: {fileID: 4666131520364568, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2220 | propertyPath: m_RootOrder 2221 | value: 19 2222 | objectReference: {fileID: 0} 2223 | m_RemovedComponents: [] 2224 | m_ParentPrefab: {fileID: 100100000, guid: 68af46e6b1651df46b7a288d34b73a5a, type: 2} 2225 | m_IsPrefabParent: 0 2226 | --- !u!1 &1876392381 2227 | GameObject: 2228 | m_ObjectHideFlags: 0 2229 | m_PrefabParentObject: {fileID: 0} 2230 | m_PrefabInternal: {fileID: 0} 2231 | serializedVersion: 5 2232 | m_Component: 2233 | - component: {fileID: 1876392387} 2234 | - component: {fileID: 1876392386} 2235 | - component: {fileID: 1876392385} 2236 | - component: {fileID: 1876392384} 2237 | - component: {fileID: 1876392383} 2238 | - component: {fileID: 1876392382} 2239 | m_Layer: 0 2240 | m_Name: Object (4) 2241 | m_TagString: Untagged 2242 | m_Icon: {fileID: 0} 2243 | m_NavMeshLayer: 0 2244 | m_StaticEditorFlags: 0 2245 | m_IsActive: 1 2246 | --- !u!114 &1876392382 2247 | MonoBehaviour: 2248 | m_ObjectHideFlags: 0 2249 | m_PrefabParentObject: {fileID: 0} 2250 | m_PrefabInternal: {fileID: 0} 2251 | m_GameObject: {fileID: 1876392381} 2252 | m_Enabled: 1 2253 | m_EditorHideFlags: 0 2254 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 2255 | m_Name: 2256 | m_EditorClassIdentifier: 2257 | isScalable: 1 2258 | onGrabbed: 2259 | m_PersistentCalls: 2260 | m_Calls: [] 2261 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2262 | Culture=neutral, PublicKeyToken=null 2263 | onReleased: 2264 | m_PersistentCalls: 2265 | m_Calls: [] 2266 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2267 | Culture=neutral, PublicKeyToken=null 2268 | onGrabClicked: 2269 | m_PersistentCalls: 2270 | m_Calls: [] 2271 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2272 | Culture=neutral, PublicKeyToken=null 2273 | onGrabMoved: 2274 | m_PersistentCalls: 2275 | m_Calls: [] 2276 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2277 | Culture=neutral, PublicKeyToken=null 2278 | --- !u!54 &1876392383 2279 | Rigidbody: 2280 | m_ObjectHideFlags: 0 2281 | m_PrefabParentObject: {fileID: 0} 2282 | m_PrefabInternal: {fileID: 0} 2283 | m_GameObject: {fileID: 1876392381} 2284 | serializedVersion: 2 2285 | m_Mass: 1 2286 | m_Drag: 0 2287 | m_AngularDrag: 0.05 2288 | m_UseGravity: 1 2289 | m_IsKinematic: 0 2290 | m_Interpolate: 0 2291 | m_Constraints: 0 2292 | m_CollisionDetection: 0 2293 | --- !u!23 &1876392384 2294 | MeshRenderer: 2295 | m_ObjectHideFlags: 0 2296 | m_PrefabParentObject: {fileID: 0} 2297 | m_PrefabInternal: {fileID: 0} 2298 | m_GameObject: {fileID: 1876392381} 2299 | m_Enabled: 1 2300 | m_CastShadows: 1 2301 | m_ReceiveShadows: 1 2302 | m_DynamicOccludee: 1 2303 | m_MotionVectors: 1 2304 | m_LightProbeUsage: 1 2305 | m_ReflectionProbeUsage: 1 2306 | m_Materials: 2307 | - {fileID: 2100000, guid: 9b82445bd9f69b8439840e50252129d9, type: 2} 2308 | m_StaticBatchInfo: 2309 | firstSubMesh: 0 2310 | subMeshCount: 0 2311 | m_StaticBatchRoot: {fileID: 0} 2312 | m_ProbeAnchor: {fileID: 0} 2313 | m_LightProbeVolumeOverride: {fileID: 0} 2314 | m_ScaleInLightmap: 1 2315 | m_PreserveUVs: 1 2316 | m_IgnoreNormalsForChartDetection: 0 2317 | m_ImportantGI: 0 2318 | m_StitchLightmapSeams: 0 2319 | m_SelectedEditorRenderState: 3 2320 | m_MinimumChartSize: 4 2321 | m_AutoUVMaxDistance: 0.5 2322 | m_AutoUVMaxAngle: 89 2323 | m_LightmapParameters: {fileID: 0} 2324 | m_SortingLayerID: 0 2325 | m_SortingLayer: 0 2326 | m_SortingOrder: 0 2327 | --- !u!65 &1876392385 2328 | BoxCollider: 2329 | m_ObjectHideFlags: 0 2330 | m_PrefabParentObject: {fileID: 0} 2331 | m_PrefabInternal: {fileID: 0} 2332 | m_GameObject: {fileID: 1876392381} 2333 | m_Material: {fileID: 0} 2334 | m_IsTrigger: 0 2335 | m_Enabled: 1 2336 | serializedVersion: 2 2337 | m_Size: {x: 1, y: 1, z: 1} 2338 | m_Center: {x: 0, y: 0, z: 0} 2339 | --- !u!33 &1876392386 2340 | MeshFilter: 2341 | m_ObjectHideFlags: 0 2342 | m_PrefabParentObject: {fileID: 0} 2343 | m_PrefabInternal: {fileID: 0} 2344 | m_GameObject: {fileID: 1876392381} 2345 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 2346 | --- !u!4 &1876392387 2347 | Transform: 2348 | m_ObjectHideFlags: 0 2349 | m_PrefabParentObject: {fileID: 0} 2350 | m_PrefabInternal: {fileID: 0} 2351 | m_GameObject: {fileID: 1876392381} 2352 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2353 | m_LocalPosition: {x: 0.657, y: 0.8904, z: 0.895} 2354 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 2355 | m_Children: [] 2356 | m_Father: {fileID: 0} 2357 | m_RootOrder: 9 2358 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2359 | --- !u!1 &2042809219 2360 | GameObject: 2361 | m_ObjectHideFlags: 0 2362 | m_PrefabParentObject: {fileID: 0} 2363 | m_PrefabInternal: {fileID: 0} 2364 | serializedVersion: 5 2365 | m_Component: 2366 | - component: {fileID: 2042809225} 2367 | - component: {fileID: 2042809224} 2368 | - component: {fileID: 2042809223} 2369 | - component: {fileID: 2042809222} 2370 | - component: {fileID: 2042809221} 2371 | - component: {fileID: 2042809220} 2372 | m_Layer: 0 2373 | m_Name: Object (1) 2374 | m_TagString: Untagged 2375 | m_Icon: {fileID: 0} 2376 | m_NavMeshLayer: 0 2377 | m_StaticEditorFlags: 0 2378 | m_IsActive: 1 2379 | --- !u!114 &2042809220 2380 | MonoBehaviour: 2381 | m_ObjectHideFlags: 0 2382 | m_PrefabParentObject: {fileID: 0} 2383 | m_PrefabInternal: {fileID: 0} 2384 | m_GameObject: {fileID: 2042809219} 2385 | m_Enabled: 1 2386 | m_EditorHideFlags: 0 2387 | m_Script: {fileID: 11500000, guid: 26b3f6d65fd2b41459135a4c82a6c4f8, type: 3} 2388 | m_Name: 2389 | m_EditorClassIdentifier: 2390 | isScalable: 1 2391 | onGrabbed: 2392 | m_PersistentCalls: 2393 | m_Calls: [] 2394 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2395 | Culture=neutral, PublicKeyToken=null 2396 | onReleased: 2397 | m_PersistentCalls: 2398 | m_Calls: [] 2399 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2400 | Culture=neutral, PublicKeyToken=null 2401 | onGrabClicked: 2402 | m_PersistentCalls: 2403 | m_Calls: [] 2404 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2405 | Culture=neutral, PublicKeyToken=null 2406 | onGrabMoved: 2407 | m_PersistentCalls: 2408 | m_Calls: [] 2409 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, 2410 | Culture=neutral, PublicKeyToken=null 2411 | --- !u!54 &2042809221 2412 | Rigidbody: 2413 | m_ObjectHideFlags: 0 2414 | m_PrefabParentObject: {fileID: 0} 2415 | m_PrefabInternal: {fileID: 0} 2416 | m_GameObject: {fileID: 2042809219} 2417 | serializedVersion: 2 2418 | m_Mass: 1 2419 | m_Drag: 0 2420 | m_AngularDrag: 0.05 2421 | m_UseGravity: 1 2422 | m_IsKinematic: 0 2423 | m_Interpolate: 0 2424 | m_Constraints: 0 2425 | m_CollisionDetection: 0 2426 | --- !u!23 &2042809222 2427 | MeshRenderer: 2428 | m_ObjectHideFlags: 0 2429 | m_PrefabParentObject: {fileID: 0} 2430 | m_PrefabInternal: {fileID: 0} 2431 | m_GameObject: {fileID: 2042809219} 2432 | m_Enabled: 1 2433 | m_CastShadows: 1 2434 | m_ReceiveShadows: 1 2435 | m_DynamicOccludee: 1 2436 | m_MotionVectors: 1 2437 | m_LightProbeUsage: 1 2438 | m_ReflectionProbeUsage: 1 2439 | m_Materials: 2440 | - {fileID: 2100000, guid: 9b82445bd9f69b8439840e50252129d9, type: 2} 2441 | m_StaticBatchInfo: 2442 | firstSubMesh: 0 2443 | subMeshCount: 0 2444 | m_StaticBatchRoot: {fileID: 0} 2445 | m_ProbeAnchor: {fileID: 0} 2446 | m_LightProbeVolumeOverride: {fileID: 0} 2447 | m_ScaleInLightmap: 1 2448 | m_PreserveUVs: 1 2449 | m_IgnoreNormalsForChartDetection: 0 2450 | m_ImportantGI: 0 2451 | m_StitchLightmapSeams: 0 2452 | m_SelectedEditorRenderState: 3 2453 | m_MinimumChartSize: 4 2454 | m_AutoUVMaxDistance: 0.5 2455 | m_AutoUVMaxAngle: 89 2456 | m_LightmapParameters: {fileID: 0} 2457 | m_SortingLayerID: 0 2458 | m_SortingLayer: 0 2459 | m_SortingOrder: 0 2460 | --- !u!65 &2042809223 2461 | BoxCollider: 2462 | m_ObjectHideFlags: 0 2463 | m_PrefabParentObject: {fileID: 0} 2464 | m_PrefabInternal: {fileID: 0} 2465 | m_GameObject: {fileID: 2042809219} 2466 | m_Material: {fileID: 0} 2467 | m_IsTrigger: 0 2468 | m_Enabled: 1 2469 | serializedVersion: 2 2470 | m_Size: {x: 1, y: 1, z: 1} 2471 | m_Center: {x: 0, y: 0, z: 0} 2472 | --- !u!33 &2042809224 2473 | MeshFilter: 2474 | m_ObjectHideFlags: 0 2475 | m_PrefabParentObject: {fileID: 0} 2476 | m_PrefabInternal: {fileID: 0} 2477 | m_GameObject: {fileID: 2042809219} 2478 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 2479 | --- !u!4 &2042809225 2480 | Transform: 2481 | m_ObjectHideFlags: 0 2482 | m_PrefabParentObject: {fileID: 0} 2483 | m_PrefabInternal: {fileID: 0} 2484 | m_GameObject: {fileID: 2042809219} 2485 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2486 | m_LocalPosition: {x: 0.454, y: 0.8904, z: 0.898} 2487 | m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} 2488 | m_Children: [] 2489 | m_Father: {fileID: 0} 2490 | m_RootOrder: 6 2491 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2492 | --------------------------------------------------------------------------------