├── .gitignore ├── Assets ├── Animation.meta ├── Animation │ ├── AR Feathered Plane Fade.controller │ ├── AR Feathered Plane Fade.controller.meta │ ├── PlaneFadeOff.anim │ ├── PlaneFadeOff.anim.meta │ ├── PlaneFadeOn.anim │ └── PlaneFadeOn.anim.meta ├── Animations.meta ├── Animations │ ├── Canvas.controller │ ├── Canvas.controller.meta │ ├── Cube.controller │ ├── Cube.controller.meta │ ├── CubeUpAndDown.anim │ ├── CubeUpAndDown.anim.meta │ ├── UpAndDown.anim │ └── UpAndDown.anim.meta ├── Materials.meta ├── Materials │ ├── Black.mat │ ├── Black.mat.meta │ ├── Black_Transparent.mat │ ├── Black_Transparent.mat.meta │ ├── Blue.mat │ ├── Blue.mat.meta │ ├── Blue_Transparent.mat │ ├── Blue_Transparent.mat.meta │ ├── FeatheredPlaneMaterial.mat │ ├── FeatheredPlaneMaterial.mat.meta │ ├── Green.mat │ ├── Green.mat.meta │ ├── Green_Transparent.mat │ ├── Green_Transparent.mat.meta │ ├── Red.mat │ ├── Red.mat.meta │ ├── Red_Transparent.mat │ ├── Red_Transparent.mat.meta │ ├── Skybox_Mat.mat │ ├── Skybox_Mat.mat.meta │ ├── White.mat │ └── White.mat.meta ├── NavMeshComponents.meta ├── NavMeshComponents │ ├── Editor.meta │ ├── Editor │ │ ├── NavMeshAssetManager.cs │ │ ├── NavMeshAssetManager.cs.meta │ │ ├── NavMeshComponentsEditor.asmdef │ │ ├── NavMeshComponentsEditor.asmdef.meta │ │ ├── NavMeshComponentsGUIUtility.cs │ │ ├── NavMeshComponentsGUIUtility.cs.meta │ │ ├── NavMeshLinkEditor.cs │ │ ├── NavMeshLinkEditor.cs.meta │ │ ├── NavMeshModifierEditor.cs │ │ ├── NavMeshModifierEditor.cs.meta │ │ ├── NavMeshModifierVolumeEditor.cs │ │ ├── NavMeshModifierVolumeEditor.cs.meta │ │ ├── NavMeshSurfaceEditor.cs │ │ └── NavMeshSurfaceEditor.cs.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── NavMeshComponents.asmdef │ │ ├── NavMeshComponents.asmdef.meta │ │ ├── NavMeshLink.cs │ │ ├── NavMeshLink.cs.meta │ │ ├── NavMeshModifier.cs │ │ ├── NavMeshModifier.cs.meta │ │ ├── NavMeshModifierVolume.cs │ │ ├── NavMeshModifierVolume.cs.meta │ │ ├── NavMeshSurface.cs │ │ └── NavMeshSurface.cs.meta ├── Prefabs.meta ├── Prefabs │ ├── AR Feathered Plane Fade.prefab │ ├── AR Feathered Plane Fade.prefab.meta │ ├── AR Feathered Plane.prefab │ ├── AR Feathered Plane.prefab.meta │ ├── AR Placed Cube.prefab │ ├── AR Placed Cube.prefab.meta │ ├── ARGameInstance.prefab │ ├── ARGameInstance.prefab.meta │ ├── ARPlayer.prefab │ ├── ARPlayer.prefab.meta │ ├── Bullet Heavy.prefab │ ├── Bullet Heavy.prefab.meta │ ├── Bullet.prefab │ ├── Bullet.prefab.meta │ ├── Enemies.meta │ ├── Enemies │ │ ├── ARFastEnemy.prefab │ │ ├── ARFastEnemy.prefab.meta │ │ ├── ARSimpleEnemy.prefab │ │ ├── ARSimpleEnemy.prefab.meta │ │ ├── ARToughEnemy.prefab │ │ ├── ARToughEnemy.prefab.meta │ │ ├── FastEnemy.prefab │ │ ├── FastEnemy.prefab.meta │ │ ├── SimpleEnemy.prefab │ │ ├── SimpleEnemy.prefab.meta │ │ ├── ToughEnemy.prefab │ │ └── ToughEnemy.prefab.meta │ ├── Move Target.prefab │ ├── Move Target.prefab.meta │ ├── NavMesh-ARGameInstance.asset │ ├── NavMesh-ARGameInstance.asset.meta │ ├── NavMesh-GameInstance.asset │ ├── NavMesh-GameInstance.asset.meta │ ├── Pickups.meta │ ├── Pickups │ │ ├── HealthPickup.prefab │ │ ├── HealthPickup.prefab.meta │ │ ├── WeaponPickup.prefab │ │ └── WeaponPickup.prefab.meta │ ├── Player.prefab │ ├── Player.prefab.meta │ ├── Spawner.prefab │ └── Spawner.prefab.meta ├── Presets.meta ├── Presets │ ├── AudioCompressedInMemory.preset │ ├── AudioCompressedInMemory.preset.meta │ ├── AudioStreaming.preset │ ├── AudioStreaming.preset.meta │ ├── Defaults.meta │ ├── Defaults │ │ ├── AlbedoTexture_Default.preset │ │ ├── AlbedoTexture_Default.preset.meta │ │ ├── AudioDecompressOnLoad_Default.preset │ │ ├── AudioDecompressOnLoad_Default.preset.meta │ │ ├── DirectionalLight_Default.preset │ │ └── DirectionalLight_Default.preset.meta │ ├── LegacyButtonsAndAxes.preset │ ├── LegacyButtonsAndAxes.preset.meta │ ├── NormalTexture.preset │ ├── NormalTexture.preset.meta │ ├── UtilityTexture.preset │ └── UtilityTexture.preset.meta ├── Scenes.meta ├── Scenes │ ├── AR.meta │ ├── AR.unity │ ├── AR.unity.meta │ ├── AR │ │ ├── NavMesh-ARGameInstance.asset │ │ └── NavMesh-ARGameInstance.asset.meta │ ├── VR.unity │ └── VR.unity.meta ├── Scripts.meta ├── Scripts │ ├── ARFeatheredPlaneMeshVisualizer.cs │ ├── ARFeatheredPlaneMeshVisualizer.cs.meta │ ├── ChangeHealth.cs │ ├── ChangeHealth.cs.meta │ ├── DetachLingeringGOsOnTrigger.cs │ ├── DetachLingeringGOsOnTrigger.cs.meta │ ├── DisableVerticalPlanes.cs │ ├── DisableVerticalPlanes.cs.meta │ ├── FireBullet.cs │ ├── FireBullet.cs.meta │ ├── FloorOffset.cs │ ├── FloorOffset.cs.meta │ ├── HapticAbstraction.cs │ ├── HapticAbstraction.cs.meta │ ├── Health.cs │ ├── Health.cs.meta │ ├── HideIfDaydream.cs │ ├── HideIfDaydream.cs.meta │ ├── HideIfNotDaydream.cs │ ├── HideIfNotDaydream.cs.meta │ ├── HurtOnTriggerEntry.cs │ ├── HurtOnTriggerEntry.cs.meta │ ├── ImpartImpulse.cs │ ├── ImpartImpulse.cs.meta │ ├── InputAbstraction.cs │ ├── InputAbstraction.cs.meta │ ├── LightEstimation.cs │ ├── LightEstimation.cs.meta │ ├── LightEstimationUI.cs │ ├── LightEstimationUI.cs.meta │ ├── LingeringGO.cs │ ├── LingeringGO.cs.meta │ ├── MakeAppearOnPlane.cs │ ├── MakeAppearOnPlane.cs.meta │ ├── Managers.meta │ ├── Managers │ │ ├── GameManager.cs │ │ ├── GameManager.cs.meta │ │ ├── PickupManager.cs │ │ ├── PickupManager.cs.meta │ │ ├── WaveManager.cs │ │ └── WaveManager.cs.meta │ ├── MoveRelativeTo2DAxis.cs │ ├── MoveRelativeTo2DAxis.cs.meta │ ├── MovementRaycast.cs │ ├── MovementRaycast.cs.meta │ ├── Pickup.cs │ ├── Pickup.cs.meta │ ├── PlaceMultipleObjectsOnPlane.cs │ ├── PlaceMultipleObjectsOnPlane.cs.meta │ ├── PlaceOnPlane.cs │ ├── PlaceOnPlane.cs.meta │ ├── PlaneDetectionController.cs │ ├── PlaneDetectionController.cs.meta │ ├── Player.cs │ ├── Player.cs.meta │ ├── RebuildNavMeshSurface.cs │ ├── RebuildNavMeshSurface.cs.meta │ ├── RotateWithPrimaryAxis.cs │ ├── RotateWithPrimaryAxis.cs.meta │ ├── RotationController.cs │ ├── RotationController.cs.meta │ ├── ScaleController.cs │ ├── ScaleController.cs.meta │ ├── SeekPlayer.cs │ ├── SeekPlayer.cs.meta │ ├── SetARNav.cs │ ├── SetARNav.cs.meta │ ├── SetTargetFramerate.cs │ ├── SetTargetFramerate.cs.meta │ ├── SpawnInCube.cs │ ├── SpawnInCube.cs.meta │ ├── SpecialAmmo.cs │ ├── SpecialAmmo.cs.meta │ ├── StartGameTrigger.cs │ ├── StartGameTrigger.cs.meta │ ├── TimeToLive.cs │ ├── TimeToLive.cs.meta │ ├── UX.meta │ ├── UX │ │ ├── FadePlaneOnBoundaryChange.cs │ │ ├── FadePlaneOnBoundaryChange.cs.meta │ │ ├── UIManager.cs │ │ └── UIManager.cs.meta │ ├── VJHandler.cs │ ├── VJHandler.cs.meta │ ├── WaveEnemy.cs │ ├── WaveEnemy.cs.meta │ ├── XRNodeHandManager.cs │ └── XRNodeHandManager.cs.meta ├── Settings.meta ├── Settings │ ├── LWRP-HighQuality.asset │ ├── LWRP-HighQuality.asset.meta │ ├── LWRP-LowQuality.asset │ ├── LWRP-LowQuality.asset.meta │ ├── LWRP-MediumQuality.asset │ ├── LWRP-MediumQuality.asset.meta │ ├── PostProcessProfile.asset │ └── PostProcessProfile.asset.meta ├── Shader.meta ├── Shader │ ├── FeatheredPlaneShader.shader │ └── FeatheredPlaneShader.shader.meta ├── Shaders.meta ├── Shaders │ ├── FeatheredPlaneShader.shader │ └── FeatheredPlaneShader.shader.meta ├── Sounds.meta ├── Sounds │ ├── Explosion.wav │ ├── Explosion.wav.meta │ ├── Explosion2.wav │ ├── Explosion2.wav.meta │ ├── Explosion_Heavy.wav │ ├── Explosion_Heavy.wav.meta │ ├── Hit_Hurt5.wav │ ├── Hit_Hurt5.wav.meta │ ├── Laser_Shoot.wav │ ├── Laser_Shoot.wav.meta │ ├── Laser_Shoot_Heavy.wav │ ├── Laser_Shoot_Heavy.wav.meta │ ├── Move.wav │ ├── Move.wav.meta │ ├── Pickup_Coin.wav │ ├── Pickup_Coin.wav.meta │ ├── Powerup.wav │ └── Powerup.wav.meta ├── Textures.meta ├── Textures │ ├── PlanePatternDot.png │ └── PlanePatternDot.png.meta ├── UI.meta └── UI │ ├── ControllerOutline.png │ ├── ControllerOutline.png.meta │ ├── Gaze.png │ └── Gaze.png.meta ├── CONTRIBUTING.md ├── LICENSE.md ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Ll]ogs/ 3 | [Tt]emp/ 4 | [Oo]bj/ 5 | [Bb]uild/ 6 | [Bb]uilds/ 7 | 8 | 9 | 10 | # Visual Studio cache directory 11 | .vs/ 12 | 13 | # Autogenerated VS/MD/Consulo solution and project files 14 | ExportedObj/ 15 | .consulo/ 16 | *.csproj 17 | *.unityproj 18 | *.sln 19 | *.suo 20 | *.tmp 21 | *.user 22 | *.userprefs 23 | *.pidb 24 | *.booproj 25 | *.svd 26 | *.pdb 27 | *.opendb 28 | 29 | # Unity3D generated meta files 30 | *.pidb.meta 31 | *.pdb.meta 32 | 33 | # Unity3D Generated File On Crash Reports 34 | sysinfo.txt 35 | 36 | # Builds 37 | *.apk 38 | *.unitypackage 39 | -------------------------------------------------------------------------------- /Assets/Animation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed58125b14f8f80418653ec51d802763 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animation/AR Feathered Plane Fade.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f2672ab90096497b9d94da7ea0c6683 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animation/PlaneFadeOff.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8cd83a059647c4eaabf9cc2ca368e13e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animation/PlaneFadeOn.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5e146e0a88114d58b942eb7e2579a35 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00b499b6c94bb0844baca00656b33248 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animations/Canvas.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Canvas 10 | serializedVersion: 5 11 | m_AnimatorParameters: [] 12 | m_AnimatorLayers: 13 | - serializedVersion: 5 14 | m_Name: Base Layer 15 | m_StateMachine: {fileID: 1107731112121644958} 16 | m_Mask: {fileID: 0} 17 | m_Motions: [] 18 | m_Behaviours: [] 19 | m_BlendingMode: 0 20 | m_SyncedLayerIndex: -1 21 | m_DefaultWeight: 0 22 | m_IKPass: 0 23 | m_SyncedLayerAffectsTiming: 0 24 | m_Controller: {fileID: 9100000} 25 | --- !u!1102 &1102300224644650258 26 | AnimatorState: 27 | serializedVersion: 5 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: UpAndDown 33 | m_Speed: 1 34 | m_CycleOffset: 0 35 | m_Transitions: [] 36 | m_StateMachineBehaviours: [] 37 | m_Position: {x: 50, y: 50, z: 0} 38 | m_IKOnFeet: 0 39 | m_WriteDefaultValues: 1 40 | m_Mirror: 0 41 | m_SpeedParameterActive: 0 42 | m_MirrorParameterActive: 0 43 | m_CycleOffsetParameterActive: 0 44 | m_TimeParameterActive: 0 45 | m_Motion: {fileID: 7400000, guid: 98ca0e6b939f12b41aa499c067fa7207, type: 2} 46 | m_Tag: 47 | m_SpeedParameter: 48 | m_MirrorParameter: 49 | m_CycleOffsetParameter: 50 | m_TimeParameter: 51 | --- !u!1107 &1107731112121644958 52 | AnimatorStateMachine: 53 | serializedVersion: 5 54 | m_ObjectHideFlags: 1 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInstance: {fileID: 0} 57 | m_PrefabAsset: {fileID: 0} 58 | m_Name: Base Layer 59 | m_ChildStates: 60 | - serializedVersion: 1 61 | m_State: {fileID: 1102300224644650258} 62 | m_Position: {x: 200, y: 0, z: 0} 63 | m_ChildStateMachines: [] 64 | m_AnyStateTransitions: [] 65 | m_EntryTransitions: [] 66 | m_StateMachineTransitions: {} 67 | m_StateMachineBehaviours: [] 68 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 69 | m_EntryPosition: {x: 50, y: 120, z: 0} 70 | m_ExitPosition: {x: 800, y: 120, z: 0} 71 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 72 | m_DefaultState: {fileID: 1102300224644650258} 73 | -------------------------------------------------------------------------------- /Assets/Animations/Canvas.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9f31fdc8ae318945a34dc0ad9762cc2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animations/Cube.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Cube 10 | serializedVersion: 5 11 | m_AnimatorParameters: [] 12 | m_AnimatorLayers: 13 | - serializedVersion: 5 14 | m_Name: Base Layer 15 | m_StateMachine: {fileID: 1107695545553097812} 16 | m_Mask: {fileID: 0} 17 | m_Motions: [] 18 | m_Behaviours: [] 19 | m_BlendingMode: 0 20 | m_SyncedLayerIndex: -1 21 | m_DefaultWeight: 0 22 | m_IKPass: 0 23 | m_SyncedLayerAffectsTiming: 0 24 | m_Controller: {fileID: 9100000} 25 | --- !u!1102 &1102868005145756354 26 | AnimatorState: 27 | serializedVersion: 5 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: CubeUpAndDown 33 | m_Speed: 1 34 | m_CycleOffset: 0 35 | m_Transitions: [] 36 | m_StateMachineBehaviours: [] 37 | m_Position: {x: 50, y: 50, z: 0} 38 | m_IKOnFeet: 0 39 | m_WriteDefaultValues: 1 40 | m_Mirror: 0 41 | m_SpeedParameterActive: 0 42 | m_MirrorParameterActive: 0 43 | m_CycleOffsetParameterActive: 0 44 | m_TimeParameterActive: 0 45 | m_Motion: {fileID: 7400000, guid: 6d39798ae8549754c9777c1dba926c09, type: 2} 46 | m_Tag: 47 | m_SpeedParameter: 48 | m_MirrorParameter: 49 | m_CycleOffsetParameter: 50 | m_TimeParameter: 51 | --- !u!1107 &1107695545553097812 52 | AnimatorStateMachine: 53 | serializedVersion: 5 54 | m_ObjectHideFlags: 1 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInstance: {fileID: 0} 57 | m_PrefabAsset: {fileID: 0} 58 | m_Name: Base Layer 59 | m_ChildStates: 60 | - serializedVersion: 1 61 | m_State: {fileID: 1102868005145756354} 62 | m_Position: {x: 200, y: 0, z: 0} 63 | m_ChildStateMachines: [] 64 | m_AnyStateTransitions: [] 65 | m_EntryTransitions: [] 66 | m_StateMachineTransitions: {} 67 | m_StateMachineBehaviours: [] 68 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 69 | m_EntryPosition: {x: 50, y: 120, z: 0} 70 | m_ExitPosition: {x: 800, y: 120, z: 0} 71 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 72 | m_DefaultState: {fileID: 1102868005145756354} 73 | -------------------------------------------------------------------------------- /Assets/Animations/Cube.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: deb3b546b4249c040aa030fd500eea09 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animations/CubeUpAndDown.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d39798ae8549754c9777c1dba926c09 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Animations/UpAndDown.anim: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!74 &7400000 4 | AnimationClip: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: UpAndDown 10 | serializedVersion: 6 11 | m_Legacy: 1 12 | m_Compressed: 0 13 | m_UseHighQualityCurve: 1 14 | m_RotationCurves: [] 15 | m_CompressedRotationCurves: [] 16 | m_EulerCurves: [] 17 | m_PositionCurves: [] 18 | m_ScaleCurves: [] 19 | m_FloatCurves: 20 | - curve: 21 | serializedVersion: 2 22 | m_Curve: 23 | - serializedVersion: 3 24 | time: 0 25 | value: 1.1 26 | inSlope: 0 27 | outSlope: 0 28 | tangentMode: 136 29 | weightedMode: 0 30 | inWeight: 0 31 | outWeight: 0 32 | - serializedVersion: 3 33 | time: 0.5 34 | value: 1.2 35 | inSlope: 0 36 | outSlope: 0 37 | tangentMode: 136 38 | weightedMode: 0 39 | inWeight: 0.33333334 40 | outWeight: 0.33333334 41 | - serializedVersion: 3 42 | time: 1 43 | value: 1.1 44 | inSlope: 0 45 | outSlope: 0 46 | tangentMode: 136 47 | weightedMode: 0 48 | inWeight: 0.33333334 49 | outWeight: 0.33333334 50 | m_PreInfinity: 2 51 | m_PostInfinity: 2 52 | m_RotationOrder: 4 53 | attribute: m_AnchoredPosition.y 54 | path: 55 | classID: 224 56 | script: {fileID: 0} 57 | m_PPtrCurves: [] 58 | m_SampleRate: 60 59 | m_WrapMode: 2 60 | m_Bounds: 61 | m_Center: {x: 0, y: 0, z: 0} 62 | m_Extent: {x: 0, y: 0, z: 0} 63 | m_ClipBindingConstant: 64 | genericBindings: [] 65 | pptrCurveMapping: [] 66 | m_AnimationClipSettings: 67 | serializedVersion: 2 68 | m_AdditiveReferencePoseClip: {fileID: 0} 69 | m_AdditiveReferencePoseTime: 0 70 | m_StartTime: 0 71 | m_StopTime: 1 72 | m_OrientationOffsetY: 0 73 | m_Level: 0 74 | m_CycleOffset: 0 75 | m_HasAdditiveReferencePose: 0 76 | m_LoopTime: 1 77 | m_LoopBlend: 0 78 | m_LoopBlendOrientation: 0 79 | m_LoopBlendPositionY: 0 80 | m_LoopBlendPositionXZ: 0 81 | m_KeepOriginalOrientation: 0 82 | m_KeepOriginalPositionY: 1 83 | m_KeepOriginalPositionXZ: 0 84 | m_HeightFromFeet: 0 85 | m_Mirror: 0 86 | m_EditorCurves: 87 | - curve: 88 | serializedVersion: 2 89 | m_Curve: 90 | - serializedVersion: 3 91 | time: 0 92 | value: 1.1 93 | inSlope: 0 94 | outSlope: 0 95 | tangentMode: 136 96 | weightedMode: 0 97 | inWeight: 0 98 | outWeight: 0 99 | - serializedVersion: 3 100 | time: 0.5 101 | value: 1.2 102 | inSlope: 0 103 | outSlope: 0 104 | tangentMode: 136 105 | weightedMode: 0 106 | inWeight: 0.33333334 107 | outWeight: 0.33333334 108 | - serializedVersion: 3 109 | time: 1 110 | value: 1.1 111 | inSlope: 0 112 | outSlope: 0 113 | tangentMode: 136 114 | weightedMode: 0 115 | inWeight: 0.33333334 116 | outWeight: 0.33333334 117 | m_PreInfinity: 2 118 | m_PostInfinity: 2 119 | m_RotationOrder: 4 120 | attribute: m_AnchoredPosition.y 121 | path: 122 | classID: 224 123 | script: {fileID: 0} 124 | m_EulerEditorCurves: [] 125 | m_HasGenericRootTransform: 0 126 | m_HasMotionFloatCurves: 0 127 | m_Events: [] 128 | -------------------------------------------------------------------------------- /Assets/Animations/UpAndDown.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98ca0e6b939f12b41aa499c067fa7207 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffd318dbb37362c4f8d87863d082b2fd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Black.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7250229234868589365 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Black 24 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _DetailAlbedoMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _DetailMask: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _DetailNormalMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _EmissionMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _MainTex: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _MetallicGlossMap: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | - _OcclusionMap: 68 | m_Texture: {fileID: 0} 69 | m_Scale: {x: 1, y: 1} 70 | m_Offset: {x: 0, y: 0} 71 | - _ParallaxMap: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | - _SpecGlossMap: 76 | m_Texture: {fileID: 0} 77 | m_Scale: {x: 1, y: 1} 78 | m_Offset: {x: 0, y: 0} 79 | m_Floats: 80 | - _AlphaClip: 0 81 | - _Blend: 0 82 | - _BumpScale: 1 83 | - _Cull: 2 84 | - _Cutoff: 0.5 85 | - _DetailNormalMapScale: 1 86 | - _DstBlend: 0 87 | - _EnvironmentReflections: 1 88 | - _GlossMapScale: 1 89 | - _Glossiness: 0.5 90 | - _GlossyReflections: 1 91 | - _Metallic: 0 92 | - _Mode: 0 93 | - _OcclusionStrength: 1 94 | - _Parallax: 0.02 95 | - _QueueOffset: 0 96 | - _ReceiveShadows: 1 97 | - _Smoothness: 0.5 98 | - _SmoothnessTextureChannel: 0 99 | - _SpecularHighlights: 1 100 | - _SrcBlend: 1 101 | - _Surface: 0 102 | - _UVSec: 0 103 | - _WorkflowMode: 1 104 | - _ZWrite: 1 105 | m_Colors: 106 | - _BaseColor: {r: 0, g: 0, b: 0, a: 1} 107 | - _Color: {r: 0, g: 0, b: 0, a: 1} 108 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 109 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 110 | -------------------------------------------------------------------------------- /Assets/Materials/Black.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 404667ab72a1f1d40abc3be89191bfd5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Black_Transparent.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-8751185149790809910 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Black_Transparent 24 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: 3000 30 | stringTagMap: 31 | RenderType: Transparent 32 | disabledShaderPasses: 33 | - SHADOWCASTER 34 | m_SavedProperties: 35 | serializedVersion: 3 36 | m_TexEnvs: 37 | - _BaseMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _BumpMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _DetailAlbedoMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _DetailMask: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _DetailNormalMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _EmissionMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | - _MainTex: 62 | m_Texture: {fileID: 0} 63 | m_Scale: {x: 1, y: 1} 64 | m_Offset: {x: 0, y: 0} 65 | - _MetallicGlossMap: 66 | m_Texture: {fileID: 0} 67 | m_Scale: {x: 1, y: 1} 68 | m_Offset: {x: 0, y: 0} 69 | - _OcclusionMap: 70 | m_Texture: {fileID: 0} 71 | m_Scale: {x: 1, y: 1} 72 | m_Offset: {x: 0, y: 0} 73 | - _ParallaxMap: 74 | m_Texture: {fileID: 0} 75 | m_Scale: {x: 1, y: 1} 76 | m_Offset: {x: 0, y: 0} 77 | - _SpecGlossMap: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | m_Floats: 82 | - _AlphaClip: 0 83 | - _Blend: 0 84 | - _BumpScale: 1 85 | - _Cull: 2 86 | - _Cutoff: 0.5 87 | - _DetailNormalMapScale: 1 88 | - _DstBlend: 10 89 | - _EnvironmentReflections: 1 90 | - _GlossMapScale: 1 91 | - _Glossiness: 0.5 92 | - _GlossyReflections: 1 93 | - _Metallic: 0 94 | - _Mode: 3 95 | - _OcclusionStrength: 1 96 | - _Parallax: 0.02 97 | - _QueueOffset: 0 98 | - _ReceiveShadows: 1 99 | - _Smoothness: 0.5 100 | - _SmoothnessTextureChannel: 0 101 | - _SpecularHighlights: 1 102 | - _SrcBlend: 1 103 | - _Surface: 1 104 | - _UVSec: 0 105 | - _WorkflowMode: 1 106 | - _ZWrite: 0 107 | m_Colors: 108 | - _BaseColor: {r: 0, g: 0, b: 0, a: 0.5019608} 109 | - _Color: {r: 0, g: 0, b: 0, a: 0.5019608} 110 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 111 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 112 | -------------------------------------------------------------------------------- /Assets/Materials/Black_Transparent.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 099dc6db78f05d743bed82d7f02d4cf9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Blue.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7627214077186463406 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Blue 24 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _DetailAlbedoMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _DetailMask: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _DetailNormalMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _EmissionMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _MainTex: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _MetallicGlossMap: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | - _OcclusionMap: 68 | m_Texture: {fileID: 0} 69 | m_Scale: {x: 1, y: 1} 70 | m_Offset: {x: 0, y: 0} 71 | - _ParallaxMap: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | - _SpecGlossMap: 76 | m_Texture: {fileID: 0} 77 | m_Scale: {x: 1, y: 1} 78 | m_Offset: {x: 0, y: 0} 79 | m_Floats: 80 | - _AlphaClip: 0 81 | - _Blend: 0 82 | - _BumpScale: 1 83 | - _Cull: 2 84 | - _Cutoff: 0.5 85 | - _DetailNormalMapScale: 1 86 | - _DstBlend: 0 87 | - _EnvironmentReflections: 1 88 | - _GlossMapScale: 1 89 | - _Glossiness: 0.5 90 | - _GlossyReflections: 1 91 | - _Metallic: 0 92 | - _Mode: 0 93 | - _OcclusionStrength: 1 94 | - _Parallax: 0.02 95 | - _QueueOffset: 0 96 | - _ReceiveShadows: 1 97 | - _Smoothness: 0.5 98 | - _SmoothnessTextureChannel: 0 99 | - _SpecularHighlights: 1 100 | - _SrcBlend: 1 101 | - _Surface: 0 102 | - _UVSec: 0 103 | - _WorkflowMode: 1 104 | - _ZWrite: 1 105 | m_Colors: 106 | - _BaseColor: {r: 0, g: 0, b: 1, a: 1} 107 | - _Color: {r: 0, g: 0, b: 1, a: 1} 108 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 109 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 110 | -------------------------------------------------------------------------------- /Assets/Materials/Blue.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd67b49f31f40674bbb7ed2eb4652c23 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Blue_Transparent.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_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Blue_Transparent 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 3000 17 | stringTagMap: 18 | RenderType: Transparent 19 | disabledShaderPasses: 20 | - SHADOWCASTER 21 | m_SavedProperties: 22 | serializedVersion: 3 23 | m_TexEnvs: 24 | - _BaseMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _BumpMap: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailAlbedoMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _DetailMask: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _DetailNormalMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _EmissionMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _MainTex: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MetallicGlossMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _OcclusionMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _ParallaxMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _SpecGlossMap: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | m_Floats: 69 | - _AlphaClip: 0 70 | - _Blend: 0 71 | - _BumpScale: 1 72 | - _Cull: 2 73 | - _Cutoff: 0.5 74 | - _DetailNormalMapScale: 1 75 | - _DstBlend: 10 76 | - _EnvironmentReflections: 1 77 | - _GlossMapScale: 1 78 | - _Glossiness: 0.5 79 | - _GlossyReflections: 1 80 | - _Metallic: 0 81 | - _Mode: 3 82 | - _OcclusionStrength: 1 83 | - _Parallax: 0.02 84 | - _QueueOffset: 0 85 | - _ReceiveShadows: 1 86 | - _Smoothness: 0.5 87 | - _SmoothnessTextureChannel: 0 88 | - _SpecularHighlights: 1 89 | - _SrcBlend: 1 90 | - _Surface: 1 91 | - _UVSec: 0 92 | - _WorkflowMode: 1 93 | - _ZWrite: 0 94 | m_Colors: 95 | - _BaseColor: {r: 0, g: 0, b: 1, a: 0.5019608} 96 | - _Color: {r: 0, g: 0, b: 1, a: 0.5019608} 97 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 98 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 99 | --- !u!114 &2484973882506804878 100 | MonoBehaviour: 101 | m_ObjectHideFlags: 11 102 | m_CorrespondingSourceObject: {fileID: 0} 103 | m_PrefabInstance: {fileID: 0} 104 | m_PrefabAsset: {fileID: 0} 105 | m_GameObject: {fileID: 0} 106 | m_Enabled: 1 107 | m_EditorHideFlags: 0 108 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 109 | m_Name: 110 | m_EditorClassIdentifier: 111 | version: 1 112 | -------------------------------------------------------------------------------- /Assets/Materials/Blue_Transparent.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cbde8cfea3e770141a803793117b2538 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/FeatheredPlaneMaterial.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_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: FeatheredPlaneMaterial 10 | m_Shader: {fileID: 4800000, guid: 38661a2f93c3bf34a8aeab0082c6ce64, type: 3} 11 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: cf0c720f1ba9b47e293f4b9bcfb2ecb4, type: 3} 43 | m_Scale: {x: 2, y: 2} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 10 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 3 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 0 74 | m_Colors: 75 | - _Color: {r: 0.99215686, g: 0.72156864, b: 0.07450981, a: 0.32941177} 76 | - _ColorTint: {r: 1, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | - _PlaneColor: {r: 0.9811321, g: 0.9811321, b: 0.9811321, a: 0} 79 | - _TexTintColor: {r: 1, g: 1, b: 1, a: 0.69803923} 80 | - _TintColor: {r: 0.99215686, g: 0.72156864, b: 0.07450981, a: 0.32941177} 81 | -------------------------------------------------------------------------------- /Assets/Materials/FeatheredPlaneMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23e2748d52724824fb92be95f957d7dc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Green.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_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Green 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BaseMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _EmissionMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MetallicGlossMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _OcclusionMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _ParallaxMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _SpecGlossMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | m_Floats: 67 | - _AlphaClip: 0 68 | - _Blend: 0 69 | - _BumpScale: 1 70 | - _Cull: 2 71 | - _Cutoff: 0.5 72 | - _DetailNormalMapScale: 1 73 | - _DstBlend: 0 74 | - _EnvironmentReflections: 1 75 | - _GlossMapScale: 1 76 | - _Glossiness: 0.5 77 | - _GlossyReflections: 1 78 | - _Metallic: 0 79 | - _Mode: 0 80 | - _OcclusionStrength: 1 81 | - _Parallax: 0.02 82 | - _QueueOffset: 0 83 | - _ReceiveShadows: 1 84 | - _Smoothness: 0.5 85 | - _SmoothnessTextureChannel: 0 86 | - _SpecularHighlights: 1 87 | - _SrcBlend: 1 88 | - _Surface: 0 89 | - _UVSec: 0 90 | - _WorkflowMode: 1 91 | - _ZWrite: 1 92 | m_Colors: 93 | - _BaseColor: {r: 0, g: 1, b: 0, a: 1} 94 | - _Color: {r: 0, g: 1, b: 0, a: 1} 95 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 96 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 97 | --- !u!114 &2730069972783178817 98 | MonoBehaviour: 99 | m_ObjectHideFlags: 11 100 | m_CorrespondingSourceObject: {fileID: 0} 101 | m_PrefabInstance: {fileID: 0} 102 | m_PrefabAsset: {fileID: 0} 103 | m_GameObject: {fileID: 0} 104 | m_Enabled: 1 105 | m_EditorHideFlags: 0 106 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 107 | m_Name: 108 | m_EditorClassIdentifier: 109 | version: 1 110 | -------------------------------------------------------------------------------- /Assets/Materials/Green.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 189eca9133ee3aa4bac11251453dad0e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Green_Transparent.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_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Green_Transparent 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 3000 17 | stringTagMap: 18 | RenderType: Transparent 19 | disabledShaderPasses: 20 | - SHADOWCASTER 21 | m_SavedProperties: 22 | serializedVersion: 3 23 | m_TexEnvs: 24 | - _BaseMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _BumpMap: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailAlbedoMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _DetailMask: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _DetailNormalMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _EmissionMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _MainTex: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MetallicGlossMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _OcclusionMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _ParallaxMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _SpecGlossMap: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | m_Floats: 69 | - _AlphaClip: 0 70 | - _Blend: 0 71 | - _BumpScale: 1 72 | - _Cull: 2 73 | - _Cutoff: 0.5 74 | - _DetailNormalMapScale: 1 75 | - _DstBlend: 10 76 | - _EnvironmentReflections: 1 77 | - _GlossMapScale: 1 78 | - _Glossiness: 0.5 79 | - _GlossyReflections: 1 80 | - _Metallic: 0 81 | - _Mode: 3 82 | - _OcclusionStrength: 1 83 | - _Parallax: 0.02 84 | - _QueueOffset: 0 85 | - _ReceiveShadows: 1 86 | - _Smoothness: 0.5 87 | - _SmoothnessTextureChannel: 0 88 | - _SpecularHighlights: 1 89 | - _SrcBlend: 1 90 | - _Surface: 1 91 | - _UVSec: 0 92 | - _WorkflowMode: 1 93 | - _ZWrite: 0 94 | m_Colors: 95 | - _BaseColor: {r: 0, g: 1, b: 0, a: 0.5019608} 96 | - _Color: {r: 0, g: 1, b: 0, a: 0.5019608} 97 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 98 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 99 | --- !u!114 &5410285328045285372 100 | MonoBehaviour: 101 | m_ObjectHideFlags: 11 102 | m_CorrespondingSourceObject: {fileID: 0} 103 | m_PrefabInstance: {fileID: 0} 104 | m_PrefabAsset: {fileID: 0} 105 | m_GameObject: {fileID: 0} 106 | m_Enabled: 1 107 | m_EditorHideFlags: 0 108 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 109 | m_Name: 110 | m_EditorClassIdentifier: 111 | version: 1 112 | -------------------------------------------------------------------------------- /Assets/Materials/Green_Transparent.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d167dee0d3207174bb3a99f7e9f7603d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Red.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-746276665483058323 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Red 24 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _DetailAlbedoMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _DetailMask: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _DetailNormalMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _EmissionMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _MainTex: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _MetallicGlossMap: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | - _OcclusionMap: 68 | m_Texture: {fileID: 0} 69 | m_Scale: {x: 1, y: 1} 70 | m_Offset: {x: 0, y: 0} 71 | - _ParallaxMap: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | - _SpecGlossMap: 76 | m_Texture: {fileID: 0} 77 | m_Scale: {x: 1, y: 1} 78 | m_Offset: {x: 0, y: 0} 79 | m_Floats: 80 | - _AlphaClip: 0 81 | - _Blend: 0 82 | - _BumpScale: 1 83 | - _Cull: 2 84 | - _Cutoff: 0.5 85 | - _DetailNormalMapScale: 1 86 | - _DstBlend: 0 87 | - _EnvironmentReflections: 1 88 | - _GlossMapScale: 1 89 | - _Glossiness: 0.5 90 | - _GlossyReflections: 1 91 | - _Metallic: 0 92 | - _Mode: 0 93 | - _OcclusionStrength: 1 94 | - _Parallax: 0.02 95 | - _QueueOffset: 0 96 | - _ReceiveShadows: 1 97 | - _Smoothness: 0.5 98 | - _SmoothnessTextureChannel: 0 99 | - _SpecularHighlights: 1 100 | - _SrcBlend: 1 101 | - _Surface: 0 102 | - _UVSec: 0 103 | - _WorkflowMode: 1 104 | - _ZWrite: 1 105 | m_Colors: 106 | - _BaseColor: {r: 1, g: 0, b: 0, a: 1} 107 | - _Color: {r: 1, g: 0, b: 0, a: 1} 108 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 109 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 110 | -------------------------------------------------------------------------------- /Assets/Materials/Red.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd06e015382bc0d43bcba16371e3e86c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Red_Transparent.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-6094402758300089026 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Red_Transparent 24 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: 3000 30 | stringTagMap: 31 | RenderType: Transparent 32 | disabledShaderPasses: 33 | - SHADOWCASTER 34 | m_SavedProperties: 35 | serializedVersion: 3 36 | m_TexEnvs: 37 | - _BaseMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _BumpMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _DetailAlbedoMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _DetailMask: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _DetailNormalMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _EmissionMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | - _MainTex: 62 | m_Texture: {fileID: 0} 63 | m_Scale: {x: 1, y: 1} 64 | m_Offset: {x: 0, y: 0} 65 | - _MetallicGlossMap: 66 | m_Texture: {fileID: 0} 67 | m_Scale: {x: 1, y: 1} 68 | m_Offset: {x: 0, y: 0} 69 | - _OcclusionMap: 70 | m_Texture: {fileID: 0} 71 | m_Scale: {x: 1, y: 1} 72 | m_Offset: {x: 0, y: 0} 73 | - _ParallaxMap: 74 | m_Texture: {fileID: 0} 75 | m_Scale: {x: 1, y: 1} 76 | m_Offset: {x: 0, y: 0} 77 | - _SpecGlossMap: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | m_Floats: 82 | - _AlphaClip: 0 83 | - _Blend: 0 84 | - _BumpScale: 1 85 | - _Cull: 2 86 | - _Cutoff: 0.5 87 | - _DetailNormalMapScale: 1 88 | - _DstBlend: 10 89 | - _EnvironmentReflections: 1 90 | - _GlossMapScale: 1 91 | - _Glossiness: 0.5 92 | - _GlossyReflections: 1 93 | - _Metallic: 0 94 | - _Mode: 3 95 | - _OcclusionStrength: 1 96 | - _Parallax: 0.02 97 | - _QueueOffset: 0 98 | - _ReceiveShadows: 1 99 | - _Smoothness: 0.5 100 | - _SmoothnessTextureChannel: 0 101 | - _SpecularHighlights: 1 102 | - _SrcBlend: 1 103 | - _Surface: 1 104 | - _UVSec: 0 105 | - _WorkflowMode: 1 106 | - _ZWrite: 0 107 | m_Colors: 108 | - _BaseColor: {r: 1, g: 0, b: 0, a: 0.5019608} 109 | - _Color: {r: 1, g: 0, b: 0, a: 0.5019608} 110 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 111 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 112 | -------------------------------------------------------------------------------- /Assets/Materials/Red_Transparent.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac748ca8275cbdb44aab48d2b90aaf17 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Skybox_Mat.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: Skybox_Mat 10 | m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _METALLIC_SETUP _SUNDISK_HIGH_QUALITY 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _SpecGlossMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _AtmosphereThickness: 0.53 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _Exposure: 1.25 68 | - _GlossMapScale: 1 69 | - _Glossiness: 0.5 70 | - _GlossyReflections: 1 71 | - _Metallic: 0 72 | - _Mode: 0 73 | - _OcclusionStrength: 1 74 | - _Parallax: 0.02 75 | - _SmoothnessTextureChannel: 0 76 | - _SpecularHighlights: 1 77 | - _SrcBlend: 1 78 | - _SunDisk: 2 79 | - _SunSize: 0.04 80 | - _SunSizeConvergence: 5 81 | - _UVSec: 0 82 | - _WorkflowMode: 1 83 | - _ZWrite: 1 84 | m_Colors: 85 | - _Color: {r: 1, g: 1, b: 1, a: 1} 86 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 87 | - _GroundColor: {r: 0.6392157, g: 0.6901961, b: 0.7411765, a: 1} 88 | - _SkyTint: {r: 1, g: 1, b: 1, a: 1} 89 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 90 | -------------------------------------------------------------------------------- /Assets/Materials/Skybox_Mat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ffaa0b7117ba8c47a9d05ae701d4b4d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/White.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7426085295572808442 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 1 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: White 24 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _DetailAlbedoMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _DetailMask: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _DetailNormalMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _EmissionMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _MainTex: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _MetallicGlossMap: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | - _OcclusionMap: 68 | m_Texture: {fileID: 0} 69 | m_Scale: {x: 1, y: 1} 70 | m_Offset: {x: 0, y: 0} 71 | - _ParallaxMap: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | - _SpecGlossMap: 76 | m_Texture: {fileID: 0} 77 | m_Scale: {x: 1, y: 1} 78 | m_Offset: {x: 0, y: 0} 79 | m_Floats: 80 | - _AlphaClip: 0 81 | - _Blend: 0 82 | - _BumpScale: 1 83 | - _Cull: 2 84 | - _Cutoff: 0.5 85 | - _DetailNormalMapScale: 1 86 | - _DstBlend: 0 87 | - _EnvironmentReflections: 1 88 | - _GlossMapScale: 1 89 | - _Glossiness: 0.5 90 | - _GlossyReflections: 1 91 | - _Metallic: 0 92 | - _Mode: 0 93 | - _OcclusionStrength: 1 94 | - _Parallax: 0.02 95 | - _QueueOffset: 0 96 | - _ReceiveShadows: 1 97 | - _Smoothness: 0.5 98 | - _SmoothnessTextureChannel: 0 99 | - _SpecularHighlights: 1 100 | - _SrcBlend: 1 101 | - _Surface: 0 102 | - _UVSec: 0 103 | - _WorkflowMode: 1 104 | - _ZWrite: 1 105 | m_Colors: 106 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 107 | - _Color: {r: 1, g: 1, b: 1, a: 1} 108 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 109 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 110 | -------------------------------------------------------------------------------- /Assets/Materials/White.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 398f3047d1dc41e47806105ca666f14e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c245060440f360d4a955da615709984b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63b588f3892bb4b5eb73ad3d2791e05c 3 | folderAsset: yes 4 | timeCreated: 1477656493 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 178d8366aa1616849b91b66285c51454 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NavMeshComponentsEditor", 3 | "references": [ 4 | "NavMeshComponents" 5 | ], 6 | "optionalUnityReferences": [], 7 | "includePlatforms": [ 8 | "Editor" 9 | ], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [] 16 | } -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86c9d8e67265f41469be06142c397d17 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77fba670b979046f18d52d751e0d4659 3 | timeCreated: 1480524815 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/NavMeshComponents/Editor/NavMeshLinkEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ece1e865d1ad84587872fe8580ab5a20 3 | timeCreated: 1477036743 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/NavMeshComponents/Editor/NavMeshModifierEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine.AI; 2 | 3 | namespace UnityEditor.AI 4 | { 5 | [CanEditMultipleObjects] 6 | [CustomEditor(typeof(NavMeshModifier))] 7 | class NavMeshModifierEditor : Editor 8 | { 9 | SerializedProperty m_AffectedAgents; 10 | SerializedProperty m_Area; 11 | SerializedProperty m_IgnoreFromBuild; 12 | SerializedProperty m_OverrideArea; 13 | 14 | void OnEnable() 15 | { 16 | m_AffectedAgents = serializedObject.FindProperty("m_AffectedAgents"); 17 | m_Area = serializedObject.FindProperty("m_Area"); 18 | m_IgnoreFromBuild = serializedObject.FindProperty("m_IgnoreFromBuild"); 19 | m_OverrideArea = serializedObject.FindProperty("m_OverrideArea"); 20 | 21 | NavMeshVisualizationSettings.showNavigation++; 22 | } 23 | 24 | void OnDisable() 25 | { 26 | NavMeshVisualizationSettings.showNavigation--; 27 | } 28 | 29 | public override void OnInspectorGUI() 30 | { 31 | serializedObject.Update(); 32 | 33 | EditorGUILayout.PropertyField(m_IgnoreFromBuild); 34 | 35 | EditorGUILayout.PropertyField(m_OverrideArea); 36 | if (m_OverrideArea.boolValue) 37 | { 38 | EditorGUI.indentLevel++; 39 | NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area); 40 | EditorGUI.indentLevel--; 41 | } 42 | 43 | NavMeshComponentsGUIUtility.AgentMaskPopup("Affected Agents", m_AffectedAgents); 44 | EditorGUILayout.Space(); 45 | 46 | serializedObject.ApplyModifiedProperties(); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6fa04b4743e3947eba4d7b9e5832ea69 3 | timeCreated: 1477036742 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/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0f3bef2a67ae4e139538afec3e59b03 3 | timeCreated: 1477036743 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/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c32167dbf3314852b6006a288eb449b 3 | timeCreated: 1476968447 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/NavMeshComponents/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce67aa87f613246dda63a54a59c6399e 3 | folderAsset: yes 4 | timeCreated: 1477656493 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NavMeshComponents", 3 | "references": [], 4 | "optionalUnityReferences": [], 5 | "includePlatforms": [], 6 | "excludePlatforms": [], 7 | "allowUnsafeCode": false, 8 | "overrideReferences": false, 9 | "precompiledReferences": [], 10 | "autoReferenced": true, 11 | "defineConstraints": [] 12 | } -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c4dd21966739024fbd72155091d199e 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshLink.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6eeb5dc026fdf4b488bc7ae0138ab719 3 | timeCreated: 1477924439 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: 92f4afa3e25264f5b964937ccea49ff2, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshModifier.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UnityEngine.AI 4 | { 5 | [ExecuteInEditMode] 6 | [AddComponentMenu("Navigation/NavMeshModifier", 32)] 7 | [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")] 8 | public class NavMeshModifier : MonoBehaviour 9 | { 10 | [SerializeField] 11 | bool m_OverrideArea; 12 | public bool overrideArea { get { return m_OverrideArea; } set { m_OverrideArea = value; } } 13 | 14 | [SerializeField] 15 | int m_Area; 16 | public int area { get { return m_Area; } set { m_Area = value; } } 17 | 18 | [SerializeField] 19 | bool m_IgnoreFromBuild; 20 | public bool ignoreFromBuild { get { return m_IgnoreFromBuild; } set { m_IgnoreFromBuild = value; } } 21 | 22 | // List of agent types the modifier is applied for. 23 | // Special values: empty == None, m_AffectedAgents[0] =-1 == All. 24 | [SerializeField] 25 | List m_AffectedAgents = new List(new int[] { -1 }); // Default value is All 26 | 27 | static readonly List s_NavMeshModifiers = new List(); 28 | 29 | public static List activeModifiers 30 | { 31 | get { return s_NavMeshModifiers; } 32 | } 33 | 34 | void OnEnable() 35 | { 36 | if (!s_NavMeshModifiers.Contains(this)) 37 | s_NavMeshModifiers.Add(this); 38 | } 39 | 40 | void OnDisable() 41 | { 42 | s_NavMeshModifiers.Remove(this); 43 | } 44 | 45 | public bool AffectsAgentType(int agentTypeID) 46 | { 47 | if (m_AffectedAgents.Count == 0) 48 | return false; 49 | if (m_AffectedAgents[0] == -1) 50 | return true; 51 | return m_AffectedAgents.IndexOf(agentTypeID) != -1; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshModifier.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e3fdca004f2d45fe8abbed571a8abd5 3 | timeCreated: 1477924411 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: cc7b9475dbddf4f9088d327d6e10ab77, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UnityEngine.AI 4 | { 5 | [ExecuteInEditMode] 6 | [AddComponentMenu("Navigation/NavMeshModifierVolume", 31)] 7 | [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")] 8 | public class NavMeshModifierVolume : MonoBehaviour 9 | { 10 | [SerializeField] 11 | Vector3 m_Size = new Vector3(4.0f, 3.0f, 4.0f); 12 | public Vector3 size { get { return m_Size; } set { m_Size = value; } } 13 | 14 | [SerializeField] 15 | Vector3 m_Center = new Vector3(0, 1.0f, 0); 16 | public Vector3 center { get { return m_Center; } set { m_Center = value; } } 17 | 18 | [SerializeField] 19 | int m_Area; 20 | public int area { get { return m_Area; } set { m_Area = value; } } 21 | 22 | // List of agent types the modifier is applied for. 23 | // Special values: empty == None, m_AffectedAgents[0] =-1 == All. 24 | [SerializeField] 25 | List m_AffectedAgents = new List(new int[] { -1 }); // Default value is All 26 | 27 | static readonly List s_NavMeshModifiers = new List(); 28 | 29 | public static List activeModifiers 30 | { 31 | get { return s_NavMeshModifiers; } 32 | } 33 | 34 | void OnEnable() 35 | { 36 | if (!s_NavMeshModifiers.Contains(this)) 37 | s_NavMeshModifiers.Add(this); 38 | } 39 | 40 | void OnDisable() 41 | { 42 | s_NavMeshModifiers.Remove(this); 43 | } 44 | 45 | public bool AffectsAgentType(int agentTypeID) 46 | { 47 | if (m_AffectedAgents.Count == 0) 48 | return false; 49 | if (m_AffectedAgents[0] == -1) 50 | return true; 51 | return m_AffectedAgents.IndexOf(agentTypeID) != -1; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35e95dc5ff2b64380880dd7ac5922847 3 | timeCreated: 1477924430 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: cc7b9475dbddf4f9088d327d6e10ab77, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/NavMeshComponents/Scripts/NavMeshSurface.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a5ac11cc976e418e8d13136b07e1f52 3 | timeCreated: 1477658803 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: e4f97225bcfb64760a1c81f460837f01, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e6ed034a94a5714a821ef82ed8d4379 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/AR Feathered Plane Fade.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 617b10198100d44078c5e70d97423117 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/AR Feathered Plane.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d16dd8da7e4ccbe42b1b4a344a72ecbb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/AR Placed Cube.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 708da88d27c8a944e82313c70e79b225 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/ARGameInstance.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cf41337facecbb4687b3dd6d5116649 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/ARPlayer.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eab8a5865f8b43e42b4b48228f58631c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Bullet Heavy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b595997290c4c344bb0bf46d6bcabd64 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Bullet.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 069795956a2e8154994e1516c652d4f1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Enemies.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c295f0bd33c9bf9449de29de969fe6d0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/Enemies/ARFastEnemy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8dd59f30e58b6f94bb086f58c98cf03c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Enemies/ARSimpleEnemy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08b894763df7d994bbaa807da767633d 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Enemies/ARToughEnemy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fa96455136e8bd48aa9b62f8790999c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Enemies/FastEnemy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5066245d6602a844adf602e8069971e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Enemies/SimpleEnemy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4548c267c2dde94d8743028dc1df4ac 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Enemies/ToughEnemy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dabba99764914a24397afdd6220e465e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Move Target.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b17e1836da2ee76448b8576b62810d6b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/NavMesh-ARGameInstance.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Prefabs/NavMesh-ARGameInstance.asset -------------------------------------------------------------------------------- /Assets/Prefabs/NavMesh-ARGameInstance.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5dcdf2434b62d584fa89b3fc7b254838 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 23800000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/NavMesh-GameInstance.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Prefabs/NavMesh-GameInstance.asset -------------------------------------------------------------------------------- /Assets/Prefabs/NavMesh-GameInstance.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: def581c32b0a26747b7fcaeb022c494a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 23800000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/Pickups.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff4d8ed80951e3549b82eb6e56f138e4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/Pickups/HealthPickup.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7159f6cae43a3840867c9f8407cd0fc 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Pickups/WeaponPickup.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49ffcdd1835f145479400631fe728cfb 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Player.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35bcc85dd18dd124ca9fa22ec983e62f 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Spawner.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a982985b29d51047beab4fd83e74b8a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Presets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 558255460b74ec04fa70b5570e9327bd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioCompressedInMemory.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6198cad1b5fc46b48a66fdc931b043d0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioStreaming.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39ba80c9fd1616e48ac401c69418f796 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71ea82b02df99c2439e0dc8e4e1ebc24 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AlbedoTexture_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e638c0a99ead192429620acaff45cccb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AudioDecompressOnLoad_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbe3044078845df4eafe8ccd620d0ac9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/DirectionalLight_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 463065d4f17d1d94d848aa127b94dd43 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/LegacyButtonsAndAxes.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37e2df359e466664d809d1d074941509 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/NormalTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b5c14ab1e36a134b94c009ba535c847 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/UtilityTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ac329fc149f2634ba2a894c45b99576 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04ed40ccbfa1d414fbb6d6b6f123bc06 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/AR.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc13ef51cf720e14aa9c0079307fa4dd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/AR.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70f91755d5922584e9dade3e56b7c86a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/AR/NavMesh-ARGameInstance.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Scenes/AR/NavMesh-ARGameInstance.asset -------------------------------------------------------------------------------- /Assets/Scenes/AR/NavMesh-ARGameInstance.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 22a6d90e1e76815418f22872dac1260a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 23800000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/VR.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99c9720ab356a0642a771bea13969a05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02a3527b6b33a924e8ec66aa805ea717 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ARFeatheredPlaneMeshVisualizer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fe544a55a03bab479ce73b5bf64215e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ChangeHealth.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class ChangeHealth : MonoBehaviour 6 | { 7 | [Tooltip("Damage should do negative change, healing does positive change")] 8 | public float amountToChange; 9 | public bool onlyHitPlayer = false; 10 | 11 | private bool m_HasHit = false; 12 | 13 | private void OnTriggerEnter(Collider other) 14 | { 15 | if (m_HasHit || other.gameObject.layer == LayerMask.NameToLayer("TransparentFX")) 16 | return; 17 | 18 | Health otherHealth = other.GetComponentInParent(); 19 | 20 | if (onlyHitPlayer && other.gameObject.layer != LayerMask.NameToLayer("Player")) 21 | return; 22 | 23 | if (otherHealth == null) 24 | { 25 | Destroy(gameObject); 26 | return; 27 | } 28 | 29 | otherHealth.ChangeHealth(amountToChange); 30 | m_HasHit = true; 31 | 32 | foreach (LingeringGO go in GetComponentsInChildren(true)) 33 | { 34 | go.Activate(); 35 | } 36 | 37 | if (GetComponent() != null) 38 | GetComponent().SelfDestruct(); 39 | else 40 | Destroy(gameObject); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Assets/Scripts/ChangeHealth.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b88743ce632a554abfa7548c7a02813 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/DetachLingeringGOsOnTrigger.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class DetachLingeringGOsOnTrigger : MonoBehaviour 6 | { 7 | public bool onlyHitPlayer = false; 8 | 9 | private bool m_HasHit = false; 10 | 11 | private void OnTriggerEnter(Collider other) 12 | { 13 | if (m_HasHit || other.gameObject.layer == LayerMask.NameToLayer("TransparentFX")) 14 | return; 15 | 16 | if (onlyHitPlayer && other.gameObject.layer != LayerMask.NameToLayer("Player")) 17 | return; 18 | 19 | m_HasHit = true; 20 | 21 | foreach (LingeringGO go in GetComponentsInChildren(true)) 22 | { 23 | go.Activate(); 24 | } 25 | 26 | if (GetComponent() != null) 27 | GetComponent().SelfDestruct(); 28 | else 29 | Destroy(gameObject); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/DetachLingeringGOsOnTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e878cea310812e4598fbc98665aee10 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/DisableVerticalPlanes.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Experimental.XR; 3 | using UnityEngine.UI; 4 | using UnityEngine.XR.ARFoundation; 5 | 6 | /// 7 | /// This example demonstrates disabling vertical planes as they are 8 | /// detected and instantiated by the ARPlaneManager. 9 | /// 10 | [RequireComponent(typeof(ARPlaneManager))] 11 | public class DisableVerticalPlanes : MonoBehaviour 12 | { 13 | [Tooltip("The UI Text element used to display log messages.")] 14 | [SerializeField] 15 | Text m_LogText; 16 | 17 | /// 18 | /// The UI Text element used to display log messages. 19 | /// 20 | public Text logText 21 | { 22 | get { return m_LogText; } 23 | set { m_LogText = value; } 24 | } 25 | 26 | void OnEnable() 27 | { 28 | GetComponent().planesChanged += OnPlaneAdded; 29 | } 30 | 31 | void OnDisable() 32 | { 33 | GetComponent().planesChanged -= OnPlaneAdded; 34 | } 35 | 36 | void OnPlaneAdded(ARPlanesChangedEventArgs eventArgs) 37 | { 38 | ARPlane plane; 39 | 40 | for (int i = 0; i < eventArgs.added.Count; i++) 41 | { 42 | plane = eventArgs.added[i]; 43 | 44 | // Check whether the plane is a vertical plane. 45 | if (plane.alignment == UnityEngine.XR.ARSubsystems.PlaneAlignment.Vertical) 46 | { 47 | // Disable the entire GameObject. 48 | plane.gameObject.SetActive(false); 49 | 50 | // Add to our log so the user knows something happened. 51 | if (logText != null) 52 | logText.text = string.Format("\n{0}", plane.trackableId); 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Assets/Scripts/DisableVerticalPlanes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f345ef94406845c408aeb1297c5d48d5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/FireBullet.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | 6 | public class FireBullet : MonoBehaviour 7 | { 8 | [Tooltip("in seconds")] 9 | public float cooldown = 0.25f; 10 | [Tooltip("in seconds")] 11 | public float hapticTime = 0.15f; 12 | public GameObject bulletPrefab = null; 13 | public GameObject specialBulletPrefab = null; 14 | public AudioClip fireClip = null; 15 | public AudioClip specialAmmoFireClip = null; 16 | 17 | private float m_Timer = 0f; 18 | private Transform m_Transform = null; 19 | private AudioSource m_audioSource = null; 20 | private int m_NumSpecialAmmo = 0; 21 | 22 | private bool isFiring = false; 23 | 24 | private void OnDestroy() 25 | { 26 | GameManager.instance.inputAbstraction.FireActive -= OnFireActive; 27 | GameManager.instance.inputAbstraction.FireInactive -= OnFireInactive; 28 | } 29 | 30 | void OnFireActive() 31 | { 32 | isFiring = true; 33 | } 34 | 35 | void OnFireInactive() 36 | { 37 | isFiring = false; 38 | } 39 | 40 | // Start is called before the first frame update 41 | void Start() 42 | { 43 | m_Transform = GetComponent(); 44 | if (fireClip != null || specialAmmoFireClip != null) 45 | { 46 | m_audioSource = gameObject.AddComponent(); 47 | m_audioSource.clip = fireClip; 48 | } 49 | 50 | GameManager.instance.inputAbstraction.FireActive += OnFireActive; 51 | GameManager.instance.inputAbstraction.FireInactive += OnFireInactive; 52 | } 53 | 54 | // Update is called once per frame 55 | void Update() 56 | { 57 | if (m_Timer > 0) 58 | m_Timer -= Time.deltaTime; 59 | 60 | if (m_Timer <= 0 && isFiring) 61 | { 62 | if (m_NumSpecialAmmo > 0 && specialBulletPrefab != null) 63 | { 64 | GameObject bullet = Instantiate(specialBulletPrefab, m_Transform.position, m_Transform.rotation); 65 | bullet.transform.localScale = GameManager.instance.gameScale; 66 | if (m_audioSource != null) 67 | m_audioSource.PlayOneShot(specialAmmoFireClip); 68 | HapticAbstraction.BuzzBothHands(hapticTime); 69 | 70 | m_NumSpecialAmmo--; 71 | } 72 | else if (bulletPrefab != null) 73 | { 74 | GameObject bullet = Instantiate(bulletPrefab, m_Transform.position, m_Transform.rotation); 75 | bullet.transform.localScale = GameManager.instance.gameScale; 76 | if (m_audioSource != null) 77 | m_audioSource.Play(); 78 | HapticAbstraction.BuzzBothHands(hapticTime); 79 | } 80 | 81 | m_Timer = cooldown; 82 | } 83 | } 84 | 85 | public void AddSpecialAmmo(int ammoToAdd) 86 | { 87 | m_NumSpecialAmmo += ammoToAdd; 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /Assets/Scripts/FireBullet.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28666d3ab44c38047b727a1d84bced45 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/FloorOffset.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.XR; 6 | 7 | public class FloorOffset : MonoBehaviour 8 | { 9 | // Start is called before the first frame update 10 | void Start() 11 | { 12 | } 13 | 14 | // Update is called once per frame 15 | void Update() 16 | { 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Assets/Scripts/FloorOffset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc0c0e6d8472ff9418b2887a24a0a360 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/HapticAbstraction.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.XR; 6 | 7 | public class HapticAbstraction 8 | { 9 | public static void BuzzBothHands(float seconds) 10 | { 11 | BuzzNode(seconds, XRNode.LeftHand); 12 | BuzzNode(seconds, XRNode.RightHand); 13 | } 14 | 15 | public static void BuzzNode(float seconds, XRNode node) 16 | { 17 | HapticCapabilities caps = new HapticCapabilities(); 18 | 19 | if (!InputDevices.GetDeviceAtXRNode(node).TryGetHapticCapabilities(out caps)) 20 | return; 21 | 22 | if (caps.supportsImpulse) 23 | { 24 | InputDevices.GetDeviceAtXRNode(node).SendHapticImpulse(0, 1, seconds); 25 | } 26 | else if (caps.supportsBuffer) 27 | { 28 | byte[] clip = {}; 29 | if (GenerateBuzzClip(seconds, node, ref clip)) 30 | { 31 | InputDevices.GetDeviceAtXRNode(node).SendHapticBuffer(0, clip); 32 | } 33 | } 34 | } 35 | 36 | public static bool GenerateBuzzClip(float seconds, XRNode node, ref byte[] clip) 37 | { 38 | HapticCapabilities caps = new HapticCapabilities(); 39 | 40 | if (!InputDevices.GetDeviceAtXRNode(node).TryGetHapticCapabilities(out caps)) 41 | return false; 42 | 43 | int clipCount = (int)(caps.bufferFrequencyHz * seconds); 44 | clip = new byte[clipCount]; 45 | for (int i = 0; i < clipCount; i++) 46 | { 47 | clip[i] = byte.MaxValue; 48 | } 49 | 50 | return true; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Assets/Scripts/HapticAbstraction.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19c225b4578fcc047a98d8f19eaa8aa2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Health.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Health : MonoBehaviour 6 | { 7 | public float startingHealth = 1f; 8 | public float healthValue { get; private set; } 9 | 10 | [Tooltip("This object will be destroyed when health is reduced to zero. If left blank, will destoy this object")] 11 | public GameObject rootToKill = null; 12 | 13 | // Start is called before the first frame update 14 | protected virtual void Start() 15 | { 16 | if (rootToKill == null) 17 | rootToKill = gameObject; 18 | 19 | healthValue = startingHealth; 20 | } 21 | 22 | public void SelfDestruct() 23 | { 24 | ChangeHealth(-healthValue); 25 | } 26 | 27 | public virtual void ChangeHealth(float amountToChange) 28 | { 29 | float newHealth = healthValue + amountToChange; 30 | 31 | newHealth = Mathf.Clamp(newHealth, 0f, startingHealth); 32 | healthValue = newHealth; 33 | 34 | if (healthValue == 0) 35 | Die(); 36 | } 37 | 38 | public bool IsFullHealth() 39 | { 40 | return (healthValue == startingHealth); 41 | } 42 | 43 | protected virtual void Die() 44 | { 45 | Destroy(rootToKill); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Scripts/Health.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e8536b956db9514ea0836055dbc6f46 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/HideIfDaydream.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.XR; 6 | 7 | public class HideIfDaydream : MonoBehaviour 8 | { 9 | // Start is called before the first frame update 10 | void Start() 11 | { 12 | if (XRSettings.loadedDeviceName == "daydream") 13 | gameObject.SetActive(false); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/Scripts/HideIfDaydream.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4ffc9f6dacbcea46afd56de81404ef9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/HideIfNotDaydream.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.XR; 6 | 7 | public class HideIfNotDaydream : MonoBehaviour 8 | { 9 | // Start is called before the first frame update 10 | void Start() 11 | { 12 | if (XRSettings.loadedDeviceName != "daydream") 13 | gameObject.SetActive(false); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/Scripts/HideIfNotDaydream.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4398525abd39a244aa36751e9f857fce 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/HurtOnTriggerEntry.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class HurtOnTriggerEntry : MonoBehaviour 6 | { 7 | public float amountToChange = -1; 8 | 9 | private void OnTriggerEnter(Collider other) 10 | { 11 | Health otherHealth = other.GetComponentInParent(); 12 | 13 | if (other.gameObject.layer == LayerMask.NameToLayer("Player") || otherHealth == null) 14 | return; 15 | 16 | otherHealth.ChangeHealth(amountToChange); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Assets/Scripts/HurtOnTriggerEntry.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e887f08e18007cb459fd8a49d15b080a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ImpartImpulse.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class ImpartImpulse : MonoBehaviour 6 | { 7 | public Vector3 impulse; 8 | 9 | // Start is called before the first frame update 10 | void Start() 11 | { 12 | GetComponent().AddForce(GetComponent().TransformVector(impulse), ForceMode.VelocityChange); 13 | } 14 | 15 | // Update is called once per frame 16 | void Update() 17 | { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Assets/Scripts/ImpartImpulse.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16af4adfc831cfd469d80f55f75f01f5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/InputAbstraction.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ccc311fc7d95c845a4184df78a25116 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/LightEstimation.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.XR.ARFoundation; 3 | 4 | /// 5 | /// A component that can be used to access the most 6 | /// recently received light estimation information 7 | /// for the physical environment as observed by an 8 | /// AR device. 9 | /// 10 | [RequireComponent(typeof(Light))] 11 | public class LightEstimation : MonoBehaviour 12 | { 13 | /// 14 | /// The estimated brightness of the physical environment, if available. 15 | /// 16 | public float? brightness { get; private set; } 17 | 18 | /// 19 | /// The estimated color temperature of the physical environment, if available. 20 | /// 21 | public float? colorTemperature { get; private set; } 22 | 23 | /// 24 | /// The estimated color correction value of the physical environment, if available. 25 | /// 26 | public Color? colorCorrection { get; private set; } 27 | 28 | void Awake () 29 | { 30 | m_Light = GetComponent(); 31 | } 32 | 33 | void OnEnable() 34 | { 35 | Camera.main.GetComponent().frameReceived += FrameChanged; 36 | } 37 | 38 | void OnDisable() 39 | { 40 | Camera.main.GetComponent().frameReceived -= FrameChanged; 41 | } 42 | 43 | void FrameChanged(ARCameraFrameEventArgs args) 44 | { 45 | if (args.lightEstimation.averageBrightness.HasValue) 46 | { 47 | brightness = args.lightEstimation.averageBrightness.Value; 48 | m_Light.intensity = brightness.Value; 49 | } 50 | 51 | if (args.lightEstimation.averageColorTemperature.HasValue) 52 | { 53 | colorTemperature = args.lightEstimation.averageColorTemperature.Value; 54 | m_Light.colorTemperature = colorTemperature.Value; 55 | } 56 | 57 | if (args.lightEstimation.colorCorrection.HasValue) 58 | { 59 | colorCorrection = args.lightEstimation.colorCorrection.Value; 60 | m_Light.color = colorCorrection.Value; 61 | } 62 | } 63 | 64 | Light m_Light; 65 | } 66 | -------------------------------------------------------------------------------- /Assets/Scripts/LightEstimation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50c11494e9ace475f9dc92e2f907b42c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/LightEstimationUI.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | /// 5 | /// A simple UI controller to display light estimation information. 6 | /// 7 | [RequireComponent(typeof(LightEstimation))] 8 | public class LightEstimationUI : MonoBehaviour 9 | { 10 | [Tooltip("The UI Text element used to display the estimated brightness in the physical environment.")] 11 | [SerializeField] 12 | Text m_BrightnessText; 13 | 14 | /// 15 | /// The UI Text element used to display the estimated brightness value. 16 | /// 17 | public Text brightnessText 18 | { 19 | get { return m_BrightnessText; } 20 | set { m_BrightnessText = brightnessText; } 21 | } 22 | 23 | [Tooltip("The UI Text element used to display the estimated color temperature in the physical environment.")] 24 | [SerializeField] 25 | Text m_ColorTemperatureText; 26 | 27 | /// 28 | /// The UI Text element used to display the estimated color temperature in the scene. 29 | /// 30 | public Text colorTemperatureText 31 | { 32 | get { return m_ColorTemperatureText; } 33 | set { m_ColorTemperatureText = value; } 34 | } 35 | 36 | [Tooltip("The UI Text element used to display the estimated color correction value for the physical environment.")] 37 | [SerializeField] 38 | Text m_ColorCorrectionText; 39 | 40 | /// 41 | /// The UI Text element used to display the estimated color correction value for the scene. 42 | /// 43 | public Text colorCorrectionText 44 | { 45 | get { return m_ColorCorrectionText; } 46 | set { m_ColorCorrectionText = value; } 47 | } 48 | 49 | void Awake() 50 | { 51 | m_LightEstimation = GetComponent(); 52 | } 53 | 54 | void Update() 55 | { 56 | SetUIValue(m_LightEstimation.brightness, brightnessText); 57 | SetUIValue(m_LightEstimation.colorTemperature, colorTemperatureText); 58 | SetUIValue(m_LightEstimation.colorCorrection, colorCorrectionText); 59 | } 60 | 61 | void SetUIValue(T? displayValue, Text text) where T : struct 62 | { 63 | if (text != null) 64 | text.text = displayValue.HasValue ? displayValue.Value.ToString(): k_UnavailableText; 65 | } 66 | 67 | const string k_UnavailableText = "Unavailable"; 68 | 69 | LightEstimation m_LightEstimation; 70 | } 71 | -------------------------------------------------------------------------------- /Assets/Scripts/LightEstimationUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 079fa7fb0f02c4bd28860dd22bf8f5a1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/LingeringGO.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class LingeringGO : MonoBehaviour 6 | { 7 | [Tooltip("Time in seconds until this gameobject self destructs")] 8 | public float timeToLive = 1f; 9 | 10 | private void Awake() 11 | { 12 | gameObject.SetActive(false); 13 | } 14 | 15 | public void Activate() 16 | { 17 | gameObject.SetActive(true); 18 | transform.SetParent(null); 19 | StartCoroutine(DelayedDestroy()); 20 | } 21 | 22 | IEnumerator DelayedDestroy() 23 | { 24 | yield return new WaitForSeconds(timeToLive); 25 | Destroy(gameObject); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Assets/Scripts/LingeringGO.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1172984482a73054f81412a3ed47318b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/MakeAppearOnPlane.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using UnityEngine.Experimental.XR; 4 | using UnityEngine.XR.ARFoundation; 5 | 6 | /// 7 | /// Moves the ARSessionOrigin in such a way that it makes the given content appear to be 8 | /// at a given location acquired via a raycast. 9 | /// 10 | [RequireComponent(typeof(ARSessionOrigin))] 11 | [RequireComponent(typeof(ARRaycastManager))] 12 | public class MakeAppearOnPlane : MonoBehaviour 13 | { 14 | [SerializeField] 15 | [Tooltip("A transform which should be made to appear to be at the touch point.")] 16 | Transform m_Content; 17 | 18 | /// 19 | /// A transform which should be made to appear to be at the touch point. 20 | /// 21 | public Transform content 22 | { 23 | get { return m_Content; } 24 | set { m_Content = value; } 25 | } 26 | 27 | [SerializeField] 28 | [Tooltip("The rotation the content should appear to have.")] 29 | Quaternion m_Rotation; 30 | 31 | /// 32 | /// The rotation the content should appear to have. 33 | /// 34 | public Quaternion rotation 35 | { 36 | get { return m_Rotation; } 37 | set 38 | { 39 | m_Rotation = value; 40 | if (m_SessionOrigin != null) 41 | m_SessionOrigin.MakeContentAppearAt(content, content.transform.position, m_Rotation); 42 | } 43 | } 44 | 45 | void Awake() 46 | { 47 | m_SessionOrigin = GetComponent(); 48 | m_RaycastManager = GetComponent(); 49 | } 50 | 51 | void Update() 52 | { 53 | if (Input.touchCount == 0 || m_Content == null) 54 | return; 55 | 56 | var touch = Input.GetTouch(0); 57 | 58 | if (m_RaycastManager.Raycast(touch.position, s_Hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon)) 59 | { 60 | // Raycast hits are sorted by distance, so the first one 61 | // will be the closest hit. 62 | var hitPose = s_Hits[0].pose; 63 | 64 | // This does not move the content; instead, it moves and orients the ARSessionOrigin 65 | // such that the content appears to be at the raycast hit position. 66 | m_SessionOrigin.MakeContentAppearAt(content, hitPose.position, m_Rotation); 67 | } 68 | } 69 | 70 | static List s_Hits = new List(); 71 | 72 | ARSessionOrigin m_SessionOrigin; 73 | ARRaycastManager m_RaycastManager; 74 | } 75 | -------------------------------------------------------------------------------- /Assets/Scripts/MakeAppearOnPlane.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32a0d282cb4f2bf45b5e443d47af5ac3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Managers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1687aae63442f24c933e04e5644b4d7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Managers/GameManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.AI; 6 | using UnityEngine.UI; 7 | 8 | public class GameManager : MonoBehaviour 9 | { 10 | public static GameManager instance; 11 | 12 | public WaveManager waveManager; 13 | public PickupManager pickupManager; 14 | public InputAbstraction inputAbstraction; 15 | private MovementRaycast movementRaycast; 16 | 17 | public Transform scalingParent; 18 | public Vector3 gameScale { get { return scalingParent.lossyScale; } } 19 | 20 | public NavMeshSurface navMeshSurface; 21 | 22 | public GameObject playerPrefab; 23 | public Transform playerSpawn; 24 | public StartGameTrigger startGameTrigger; 25 | public Text healthDisplayText; 26 | 27 | public GameObject player { get; private set; } 28 | 29 | public enum GameState 30 | { 31 | None, 32 | Menu, 33 | Gameplay 34 | } 35 | 36 | public GameState state { get; private set; } 37 | 38 | void Awake() 39 | { 40 | pickupManager.Init(); 41 | waveManager.Init(); 42 | 43 | if (instance == null) 44 | { 45 | instance = this; 46 | StateTransitionTo(GameState.Menu); 47 | movementRaycast = GameObject.FindGameObjectWithTag("MovementRaycaster").GetComponent(); 48 | movementRaycast.Init(); 49 | } 50 | else 51 | { 52 | Destroy(this); 53 | } 54 | } 55 | 56 | public bool StateTransitionTo(GameState targetState) 57 | { 58 | if (targetState == state) 59 | return false; 60 | 61 | switch (targetState) 62 | { 63 | case GameState.Menu: 64 | TransitionToMenuState(); 65 | break; 66 | case GameState.Gameplay: 67 | TransitionToGameplayState(); 68 | break; 69 | default: 70 | break; 71 | } 72 | 73 | return true; 74 | } 75 | 76 | private void TransitionToMenuState() 77 | { 78 | WaveManager.instance.Reset(); 79 | state = GameState.Menu; 80 | startGameTrigger.gameObject.SetActive(true); 81 | player = Instantiate(playerPrefab); 82 | player.transform.localScale = GameManager.instance.gameScale; 83 | player.GetComponent().SetHealthDisplayText(healthDisplayText); 84 | player.GetComponent().speed = gameScale.x; 85 | 86 | player.GetComponent().Warp(playerSpawn.position); // must warp so that the NavMesh is found by NavMeshAgent 87 | } 88 | 89 | private void TransitionToGameplayState() 90 | { 91 | WaveManager.instance.SpawnFirstWave(); 92 | startGameTrigger.gameObject.SetActive(false); 93 | state = GameState.Gameplay; 94 | } 95 | 96 | // This can happen when the scene reloads 97 | public void PlayerIsLost() 98 | { 99 | Debug.Log("Player is lost"); 100 | NavMeshHit closestPosition; 101 | if (!NavMesh.SamplePosition(playerSpawn.position, out closestPosition, 1, ~0)) 102 | Debug.Log("NavMesh.SamplePosition failed to find a position"); 103 | else 104 | Debug.Log("SamplePosition found position = (" + closestPosition.position.x + ", " + closestPosition.position.y + ", " + closestPosition.position.z + ")"); 105 | player.GetComponent().Warp(closestPosition.position); // must warp so that the NavMesh is found by NavMeshAgent 106 | Debug.Log("hopefully now player is found"); 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /Assets/Scripts/Managers/GameManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23794b7c41e57c743bcdef42ca68d5a1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Managers/PickupManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class PickupManager : MonoBehaviour 6 | { 7 | public static PickupManager instance; 8 | 9 | public Transform pickupSpawnContainer; 10 | 11 | [Header("Pickups")] 12 | public GameObject healthPickup; 13 | public GameObject weaponPickup; 14 | 15 | private List m_SpawnLocations; 16 | private List m_Pickups; 17 | 18 | public void Init() 19 | { 20 | if (instance == null) 21 | { 22 | instance = this; 23 | 24 | m_SpawnLocations = new List(); 25 | foreach (Transform child in pickupSpawnContainer) 26 | m_SpawnLocations.Add(child); 27 | 28 | m_Pickups = new List(); 29 | } 30 | else 31 | { 32 | Destroy(this); 33 | } 34 | } 35 | 36 | private void Reset() 37 | { 38 | while (m_Pickups.Count != 0) 39 | { 40 | Pickup toDestroy = m_Pickups[0]; 41 | m_Pickups.Remove(toDestroy); 42 | Destroy(toDestroy.gameObject); 43 | } 44 | } 45 | 46 | public void PickupUsed(Pickup usedPickup) 47 | { 48 | if (m_Pickups.Contains(usedPickup)) 49 | m_Pickups.Remove(usedPickup); 50 | } 51 | 52 | public void SpawnPickups() 53 | { 54 | Reset(); 55 | 56 | Transform weaponPickupLocation = null; 57 | Transform healthPickupLocation = null; 58 | 59 | if (weaponPickup != null) 60 | { 61 | weaponPickupLocation = m_SpawnLocations[Random.Range(0, m_SpawnLocations.Count - 1)]; 62 | GameObject newPickup = Instantiate(weaponPickup, weaponPickupLocation.position, weaponPickupLocation.rotation); 63 | newPickup.transform.localScale = GameManager.instance.gameScale; 64 | m_Pickups.Add(newPickup.GetComponent()); 65 | } 66 | 67 | if (healthPickup != null && !GameManager.instance.player.GetComponent().IsFullHealth() && m_SpawnLocations.Count > 1) 68 | { 69 | // Get a new, unique place for the health 70 | while (healthPickupLocation == null) 71 | { 72 | healthPickupLocation = m_SpawnLocations[Random.Range(0, m_SpawnLocations.Count - 1)]; 73 | if (healthPickupLocation == weaponPickupLocation) 74 | healthPickupLocation = null; 75 | } 76 | 77 | GameObject newPickup = Instantiate(healthPickup, healthPickupLocation.position, healthPickupLocation.rotation); 78 | newPickup.transform.localScale = GameManager.instance.gameScale; 79 | m_Pickups.Add(newPickup.GetComponent()); 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Assets/Scripts/Managers/PickupManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30cefce0afaa4b243a829126d00ceb81 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Managers/WaveManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbdd13562a7d14c40966f6b0fa782208 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/MoveRelativeTo2DAxis.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.XR; 6 | 7 | public class MoveRelativeTo2DAxis : MonoBehaviour 8 | { 9 | public float amplitudeMaxX = 1f; 10 | public float amplitudeMaxY = 1f; 11 | 12 | // This script assumes these values don't change during runtime 13 | public InputAbstraction.Handedness hand = InputAbstraction.Handedness.LEFT; 14 | public bool ignoreSDK = false; 15 | 16 | private Transform m_Transform; 17 | 18 | void Start() 19 | { 20 | m_Transform = this.transform; 21 | amplitudeMaxX = Mathf.Abs(amplitudeMaxX); 22 | amplitudeMaxY = Mathf.Abs(amplitudeMaxY); 23 | 24 | if (!ignoreSDK) 25 | GameManager.instance.inputAbstraction.AxisChanged += OnAxisChanged; 26 | else if (hand == InputAbstraction.Handedness.LEFT) 27 | GameManager.instance.inputAbstraction.AxisChangedIgnoreSDKLeft += OnAxisChanged; 28 | else if (hand == InputAbstraction.Handedness.RIGHT) 29 | GameManager.instance.inputAbstraction.AxisChangedIgnoreSDKRight += OnAxisChanged; 30 | } 31 | 32 | private void OnDestroy() 33 | { 34 | if (!ignoreSDK) 35 | GameManager.instance.inputAbstraction.AxisChanged -= OnAxisChanged; 36 | else if (hand == InputAbstraction.Handedness.LEFT) 37 | GameManager.instance.inputAbstraction.AxisChangedIgnoreSDKLeft -= OnAxisChanged; 38 | else if (hand == InputAbstraction.Handedness.RIGHT) 39 | GameManager.instance.inputAbstraction.AxisChangedIgnoreSDKRight -= OnAxisChanged; 40 | } 41 | 42 | void OnAxisChanged(Vector2 value) 43 | { 44 | m_Transform.localPosition = new Vector3( 45 | value.x * amplitudeMaxX, 46 | m_Transform.localPosition.y, 47 | value.y * amplitudeMaxY); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Assets/Scripts/MoveRelativeTo2DAxis.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a99abd4ad3667294293d1dace8b939c1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/MovementRaycast.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.AI; 6 | 7 | public class MovementRaycast : MonoBehaviour 8 | { 9 | public GameObject navigationAidPrefab = null; 10 | public LayerMask layerMask; 11 | public AudioClip moveSound = null; 12 | 13 | private NavMeshAgent m_nmAgent = null; 14 | private GameObject m_NavigationAidPrefab = null; 15 | private Transform m_Transform = null; 16 | private AudioSource m_audioSource = null; 17 | 18 | private bool shouldNavigate = false; 19 | 20 | // Start is called before the first frame update 21 | public void Init() 22 | { 23 | m_Transform = transform; 24 | m_nmAgent = GameManager.instance.player.GetComponent(); 25 | 26 | if (moveSound != null) 27 | { 28 | m_audioSource = gameObject.AddComponent(); 29 | m_audioSource.clip = moveSound; 30 | } 31 | 32 | m_NavigationAidPrefab = Instantiate(navigationAidPrefab); 33 | m_NavigationAidPrefab.transform.localScale = GameManager.instance.gameScale; 34 | m_NavigationAidPrefab.SetActive(false); 35 | 36 | GameManager.instance.inputAbstraction.NavActive += OnNavActive; 37 | } 38 | 39 | private void OnDestroy() 40 | { 41 | GameManager.instance.inputAbstraction.NavActive -= OnNavActive; 42 | } 43 | 44 | void OnNavActive() 45 | { 46 | shouldNavigate = true; 47 | } 48 | 49 | // Update is called once per frame 50 | void Update() 51 | { 52 | // Easy exit for AR before a game instance has been instantiated 53 | if (GameManager.instance == null) 54 | return; 55 | 56 | if (m_nmAgent == null) 57 | m_nmAgent = GameManager.instance.player.GetComponent(); 58 | 59 | // Do Raycast 60 | RaycastHit hit = new RaycastHit(); 61 | if (Physics.Raycast(transform.position, transform.forward, out hit, Mathf.Infinity, layerMask)) 62 | { 63 | // Show navigation aid 64 | m_NavigationAidPrefab.SetActive(true); 65 | m_NavigationAidPrefab.transform.position = hit.point; 66 | 67 | if (shouldNavigate) 68 | { 69 | // Handle input 70 | if (m_nmAgent == null) 71 | m_nmAgent = GameManager.instance.player.GetComponent(); 72 | 73 | if (m_nmAgent != null) 74 | { 75 | if (!m_nmAgent.isOnNavMesh) 76 | GameManager.instance.PlayerIsLost(); 77 | 78 | m_nmAgent.destination = hit.point; 79 | if (m_audioSource != null) 80 | m_audioSource.Play(); 81 | } 82 | } 83 | } 84 | else 85 | { 86 | m_NavigationAidPrefab.SetActive(false); 87 | } 88 | 89 | // Even if we don't have a valid navigation event, we must unset 90 | // this flag so that we don't have weird behavior 91 | shouldNavigate = false; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /Assets/Scripts/MovementRaycast.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 145687117e3947043b08730a8952ffbd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Pickup.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Pickup : MonoBehaviour 6 | { 7 | private void OnDestroy() 8 | { 9 | PickupManager.instance.PickupUsed(this); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Pickup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a41da8c57e66a14ca54a8f517db46f5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/PlaceMultipleObjectsOnPlane.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.Experimental.XR; 6 | using UnityEngine.XR.ARFoundation; 7 | 8 | [RequireComponent(typeof(ARSessionOrigin))] 9 | [RequireComponent(typeof(ARRaycastManager))] 10 | public class PlaceMultipleObjectsOnPlane : MonoBehaviour 11 | { 12 | [SerializeField] 13 | [Tooltip("Instantiates this prefab on a plane at the touch location.")] 14 | GameObject m_PlacedPrefab; 15 | 16 | /// 17 | /// The prefab to instantiate on touch. 18 | /// 19 | public GameObject placedPrefab 20 | { 21 | get { return m_PlacedPrefab; } 22 | set { m_PlacedPrefab = value; } 23 | } 24 | 25 | /// 26 | /// The object instantiated as a result of a successful raycast intersection with a plane. 27 | /// 28 | public GameObject spawnedObject { get; private set; } 29 | 30 | /// 31 | /// Invoked whenever an object is placed in on a plane. 32 | /// 33 | public static event Action onPlacedObject; 34 | 35 | ARSessionOrigin m_SessionOrigin; 36 | ARRaycastManager m_RaycastManager; 37 | 38 | static List s_Hits = new List(); 39 | 40 | void Awake() 41 | { 42 | m_SessionOrigin = GetComponent(); 43 | m_RaycastManager = GetComponent(); 44 | } 45 | 46 | void Update() 47 | { 48 | if (Input.touchCount > 0) 49 | { 50 | Touch touch = Input.GetTouch(0); 51 | 52 | if (touch.phase == TouchPhase.Began) 53 | { 54 | if (m_RaycastManager.Raycast(touch.position, s_Hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon)) 55 | { 56 | Pose hitPose = s_Hits[0].pose; 57 | 58 | spawnedObject = Instantiate(m_PlacedPrefab, hitPose.position, hitPose.rotation); 59 | 60 | if (onPlacedObject != null) 61 | { 62 | onPlacedObject(); 63 | } 64 | } 65 | } 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /Assets/Scripts/PlaceMultipleObjectsOnPlane.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5fd398e1be2b4a428e25850033f4a7c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/PlaceOnPlane.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using UnityEngine.Experimental.XR; 4 | using UnityEngine.XR.ARFoundation; 5 | 6 | /// 7 | /// Listens for touch events and performs an AR raycast from the screen touch point. 8 | /// AR raycasts will only hit detected trackables like feature points and planes. 9 | /// 10 | /// If a raycast hits a trackable, the is instantiated 11 | /// and moved to the hit position. 12 | /// 13 | [RequireComponent(typeof(ARSessionOrigin))] 14 | [RequireComponent(typeof(ARRaycastManager))] 15 | public class PlaceOnPlane : MonoBehaviour 16 | { 17 | [SerializeField] 18 | [Tooltip("Instantiates this prefab on a plane at the touch location.")] 19 | GameObject m_PlacedPrefab; 20 | 21 | /// 22 | /// The prefab to instantiate on touch. 23 | /// 24 | public GameObject placedPrefab 25 | { 26 | get { return m_PlacedPrefab; } 27 | set { m_PlacedPrefab = value; } 28 | } 29 | 30 | public GameObject setupUI; 31 | public GameObject gameplayUI; 32 | 33 | /// 34 | /// The object instantiated as a result of a successful raycast intersection with a plane. 35 | /// 36 | public GameObject spawnedObject { get; private set; } 37 | 38 | void Awake() 39 | { 40 | m_SessionOrigin = GetComponent(); 41 | m_RaycastManager = GetComponent(); 42 | 43 | setupUI.SetActive(true); 44 | gameplayUI.SetActive(false); 45 | } 46 | 47 | void Update() 48 | { 49 | if (Input.touchCount == 0) 50 | return; 51 | 52 | var touch = Input.GetTouch(0); 53 | 54 | if (m_RaycastManager.Raycast(touch.position, s_Hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon)) 55 | { 56 | // Raycast hits are sorted by distance, so the first one 57 | // will be the closest hit. 58 | var hitPose = s_Hits[0].pose; 59 | 60 | if (spawnedObject == null) 61 | { 62 | spawnedObject = Instantiate(m_PlacedPrefab, hitPose.position, hitPose.rotation); 63 | 64 | setupUI.SetActive(false); 65 | gameplayUI.SetActive(true); 66 | } 67 | 68 | // this breaks the navmesh(?) just disable it for now. place once and done 69 | //else 70 | //{ 71 | // spawnedObject.transform.position = hitPose.position; 72 | // spawnedObject.transform.rotation = hitPose.rotation; 73 | //} 74 | } 75 | } 76 | 77 | static List s_Hits = new List(); 78 | 79 | ARSessionOrigin m_SessionOrigin; 80 | ARRaycastManager m_RaycastManager; 81 | } 82 | -------------------------------------------------------------------------------- /Assets/Scripts/PlaceOnPlane.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d5359d5f13250e4485741ed685a32be 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/PlaneDetectionController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using UnityEngine.UI; 4 | using UnityEngine.XR.ARFoundation; 5 | 6 | /// 7 | /// This example demonstrates how to toggle plane detection, 8 | /// and also hide or show the existing planes. 9 | /// 10 | [RequireComponent(typeof(ARPlaneManager))] 11 | public class PlaneDetectionController : MonoBehaviour 12 | { 13 | [Tooltip("The UI Text element used to display plane detection messages.")] 14 | [SerializeField] 15 | Text m_TogglePlaneDetectionText; 16 | 17 | /// 18 | /// The UI Text element used to display plane detection messages. 19 | /// 20 | public Text togglePlaneDetectionText 21 | { 22 | get { return m_TogglePlaneDetectionText; } 23 | set { m_TogglePlaneDetectionText = value; } 24 | } 25 | 26 | /// 27 | /// Toggles plane detection and the visualization of the planes. 28 | /// 29 | public void TogglePlaneDetection() 30 | { 31 | m_ARPlaneManager.enabled = !m_ARPlaneManager.enabled; 32 | 33 | string planeDetectionMessage = ""; 34 | if (m_ARPlaneManager.enabled) 35 | { 36 | planeDetectionMessage = "Disable Plane Detection and Hide Existing"; 37 | SetAllPlanesActive(true); 38 | } 39 | else 40 | { 41 | planeDetectionMessage = "Enable Plane Detection and Show Existing"; 42 | SetAllPlanesActive(false); 43 | } 44 | 45 | if (togglePlaneDetectionText != null) 46 | togglePlaneDetectionText.text = planeDetectionMessage; 47 | } 48 | 49 | /// 50 | /// Iterates over all the existing planes and activates 51 | /// or deactivates their GameObjects'. 52 | /// 53 | /// Each planes' GameObject is SetActive with this value. 54 | void SetAllPlanesActive(bool value) 55 | { 56 | s_Planes = m_ARPlaneManager.trackables; 57 | foreach (var plane in s_Planes) 58 | plane.gameObject.SetActive(value); 59 | } 60 | 61 | void Awake() 62 | { 63 | m_ARPlaneManager = GetComponent(); 64 | } 65 | 66 | ARPlaneManager m_ARPlaneManager; 67 | 68 | static TrackableCollection s_Planes = new TrackableCollection(); 69 | } 70 | -------------------------------------------------------------------------------- /Assets/Scripts/PlaneDetectionController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5848dfc05b1289c499a50f5ee66ea01b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Player.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.UI; 6 | 7 | public class Player : Health 8 | { 9 | public AudioClip hurtSound; 10 | public AudioClip healSound; 11 | 12 | private Text m_HealthDisplayText; 13 | private AudioSource m_hitAudioSource; 14 | private AudioSource m_healAudioSource; 15 | 16 | protected override void Start() 17 | { 18 | base.Start(); 19 | 20 | UpdateHealthDisplayText(); 21 | m_hitAudioSource = gameObject.AddComponent(); 22 | m_healAudioSource = gameObject.AddComponent(); 23 | m_hitAudioSource.clip = hurtSound; 24 | m_healAudioSource.clip = healSound; 25 | } 26 | 27 | public override void ChangeHealth(float amountToChange) 28 | { 29 | base.ChangeHealth(amountToChange); 30 | 31 | if (amountToChange < 0) 32 | m_hitAudioSource.Play(); 33 | else if (amountToChange > 0) 34 | m_healAudioSource.Play(); 35 | 36 | UpdateHealthDisplayText(); 37 | } 38 | 39 | protected override void Die() 40 | { 41 | GameManager.instance.StateTransitionTo(GameManager.GameState.Menu); 42 | 43 | base.Die(); 44 | } 45 | 46 | public void SetHealthDisplayText(Text text) 47 | { 48 | m_HealthDisplayText = text; 49 | } 50 | 51 | public void AddSpecialAmmo(int ammoToAdd) 52 | { 53 | GetComponentInChildren().AddSpecialAmmo(1); 54 | } 55 | 56 | private void UpdateHealthDisplayText() 57 | { 58 | if (m_HealthDisplayText != null) 59 | m_HealthDisplayText.text = healthValue.ToString(); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Assets/Scripts/Player.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca1b70ff22b741e46b233aacc9141b54 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/RebuildNavMeshSurface.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.AI; 5 | using NavMeshBuilder = UnityEngine.AI.NavMeshBuilder; 6 | 7 | public class RebuildNavMeshSurface : MonoBehaviour 8 | { 9 | void OnEnable() 10 | { 11 | GetComponent().BuildNavMesh(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Assets/Scripts/RebuildNavMeshSurface.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5451ea9b28c09244aa161bbe6b8ffc2b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/RotateWithPrimaryAxis.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class RotateWithPrimaryAxis : MonoBehaviour 6 | { 7 | private Transform m_Transform; 8 | 9 | // Start is called before the first frame update 10 | void Start() 11 | { 12 | m_Transform = GetComponent(); 13 | 14 | GameManager.instance.inputAbstraction.AxisChanged += OnAxisChanged; 15 | } 16 | 17 | private void OnDestroy() 18 | { 19 | GameManager.instance.inputAbstraction.AxisChanged -= OnAxisChanged; 20 | } 21 | 22 | void OnAxisChanged(Vector2 value) 23 | { 24 | float degrees = GetDegreeRotation(value); 25 | if (degrees > 0) 26 | m_Transform.rotation = Quaternion.Euler(0f, degrees, 0f); 27 | } 28 | 29 | float GetDegreeRotation(Vector2 value) 30 | { 31 | float degrees = 0f; 32 | float X = value.x; 33 | float Y = value.y; 34 | 35 | bool XIsNegative = X < 0 ? true : false; 36 | bool YIsNegative = Y < 0 ? true : false; 37 | 38 | X = Mathf.Abs(X); 39 | Y = Mathf.Abs(Y); 40 | 41 | degrees = (YIsNegative ^ XIsNegative) ? Mathf.Atan(Y / X) * (180 / Mathf.PI) : Mathf.Atan(X / Y) * (180 / Mathf.PI); 42 | 43 | if (YIsNegative && !XIsNegative) 44 | degrees += 90; 45 | else if (YIsNegative && XIsNegative) 46 | degrees += 180; 47 | else if (!YIsNegative && XIsNegative) 48 | degrees += 270; 49 | 50 | return degrees; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Assets/Scripts/RotateWithPrimaryAxis.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d45f92d82eea194fb6b5ac15598157d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/RotationController.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | /// 5 | /// Controls the orientation of content place by the 6 | /// component using a UI.Slider to affect the rotation about the Y axis. 7 | /// 8 | [RequireComponent(typeof(MakeAppearOnPlane))] 9 | public class RotationController : MonoBehaviour 10 | { 11 | MakeAppearOnPlane m_MakeAppearOnPlane; 12 | 13 | [SerializeField] 14 | [Tooltip("The slider used to control rotation.")] 15 | Slider m_Slider; 16 | 17 | /// 18 | /// The slider used to control scale. 19 | /// 20 | public Slider slider 21 | { 22 | get { return m_Slider; } 23 | set { m_Slider = value; } 24 | } 25 | 26 | [SerializeField] 27 | [Tooltip("The text used to display the current rotation on the screen.")] 28 | Text m_Text; 29 | 30 | /// 31 | /// The text used to display the current rotation on the screen. 32 | /// 33 | public Text text 34 | { 35 | get { return m_Text; } 36 | set { m_Text = value; } 37 | } 38 | 39 | [SerializeField] 40 | [Tooltip("Minimum rotation angle in degrees.")] 41 | public float m_Min = 0f; 42 | 43 | /// 44 | /// Minimum angle in degrees. 45 | /// 46 | public float min 47 | { 48 | get { return m_Min; } 49 | set { m_Min = value; } 50 | } 51 | 52 | [SerializeField] 53 | [Tooltip("Maximum angle in degrees.")] 54 | public float m_Max = 360f; 55 | 56 | /// 57 | /// Maximum angle in degrees. 58 | /// 59 | public float max 60 | { 61 | get { return m_Max; } 62 | set { m_Max = value; } 63 | } 64 | 65 | /// 66 | /// Invoked when the slider's value changes 67 | /// 68 | public void OnSliderValueChanged() 69 | { 70 | if (slider != null) 71 | angle = slider.value * (max - min) + min; 72 | } 73 | 74 | float angle 75 | { 76 | get 77 | { 78 | return m_MakeAppearOnPlane.rotation.eulerAngles.y; 79 | } 80 | set 81 | { 82 | m_MakeAppearOnPlane.rotation = Quaternion.AngleAxis(value, Vector3.up); 83 | UpdateText(); 84 | } 85 | } 86 | 87 | void Awake() 88 | { 89 | m_MakeAppearOnPlane = GetComponent(); 90 | } 91 | 92 | void OnEnable() 93 | { 94 | if (slider != null) 95 | slider.value = (angle - min) / (max - min); 96 | UpdateText(); 97 | } 98 | 99 | void UpdateText() 100 | { 101 | if (m_Text != null) 102 | m_Text.text = "Rotation: " + angle + " degrees"; 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /Assets/Scripts/RotationController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1647a225d64c7d94fad89a26d0482d26 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ScaleController.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using UnityEngine.XR.ARFoundation; 4 | 5 | /// 6 | /// Sets the scale of the ARSessionOrigin according to the value of a UI.Slider. 7 | /// 8 | [RequireComponent(typeof(ARSessionOrigin))] 9 | public class ScaleController : MonoBehaviour 10 | { 11 | [SerializeField] 12 | [Tooltip("The slider used to control the scale factor.")] 13 | Slider m_Slider; 14 | 15 | /// 16 | /// The slider used to control the scale factor. 17 | /// 18 | public Slider slider 19 | { 20 | get { return m_Slider; } 21 | set { m_Slider = value; } 22 | } 23 | 24 | [SerializeField] 25 | [Tooltip("The text used to display the current scale factor on the screen.")] 26 | Text m_Text; 27 | 28 | /// 29 | /// The text used to display the current scale factor on the screen. 30 | /// 31 | public Text text 32 | { 33 | get { return m_Text; } 34 | set { m_Text = value; } 35 | } 36 | 37 | [SerializeField] 38 | [Tooltip("Minimum scale factor.")] 39 | public float m_Min = .1f; 40 | 41 | /// 42 | /// Minimum scale factor. 43 | /// 44 | public float min 45 | { 46 | get { return m_Min; } 47 | set { m_Min = value; } 48 | } 49 | 50 | [SerializeField] 51 | [Tooltip("Maximum scale factor.")] 52 | public float m_Max = 10f; 53 | 54 | /// 55 | /// Maximum scale factor. 56 | /// 57 | public float max 58 | { 59 | get { return m_Max; } 60 | set { m_Max = value; } 61 | } 62 | 63 | /// 64 | /// Invoked whenever the slider's value changes 65 | /// 66 | public void OnSliderValueChanged() 67 | { 68 | if (slider != null) 69 | scale = slider.value * (max - min) + min; 70 | } 71 | 72 | float scale 73 | { 74 | get 75 | { 76 | return m_SessionOrigin.transform.localScale.x; 77 | } 78 | set 79 | { 80 | m_SessionOrigin.transform.localScale = Vector3.one * value; 81 | UpdateText(); 82 | } 83 | } 84 | 85 | void Awake() 86 | { 87 | m_SessionOrigin = GetComponent(); 88 | } 89 | 90 | void OnEnable() 91 | { 92 | if (slider != null) 93 | slider.value = (scale - min) / (max - min); 94 | UpdateText(); 95 | } 96 | 97 | void UpdateText() 98 | { 99 | if (text != null) 100 | text.text = "Scale: " + scale; 101 | } 102 | 103 | ARSessionOrigin m_SessionOrigin; 104 | } 105 | -------------------------------------------------------------------------------- /Assets/Scripts/ScaleController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73cae9c7ea34fe64891a0c865e8781f2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SeekPlayer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.AI; 6 | 7 | [RequireComponent(typeof(NavMeshAgent))] 8 | public class SeekPlayer : MonoBehaviour 9 | { 10 | private GameObject m_Player; 11 | private NavMeshAgent m_NavMeshAgent; 12 | 13 | private float m_UpdatePeriod = 0.25f; 14 | private float m_Timer = 0f; 15 | 16 | private void Start() 17 | { 18 | m_NavMeshAgent = GetComponent(); 19 | } 20 | 21 | // Update is called once per frame 22 | void Update() 23 | { 24 | m_Timer -= Time.deltaTime; 25 | 26 | if (m_Timer <= 0f) 27 | { 28 | UpdateNavMeshAgent(); 29 | 30 | m_Timer = m_UpdatePeriod; 31 | } 32 | } 33 | 34 | void UpdateNavMeshAgent() 35 | { 36 | if (m_Player == null) 37 | { 38 | m_Player = GameManager.instance.player; 39 | if (m_Player == null) 40 | return; 41 | } 42 | 43 | m_NavMeshAgent.destination = m_Player.transform.position; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Assets/Scripts/SeekPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1274cf6e6a9e2842905f2c406e20baa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SetARNav.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class SetARNav : MonoBehaviour 6 | { 7 | public void SetNav() 8 | { 9 | if (GameManager.instance != null) 10 | GameManager.instance.inputAbstraction.ARSetNav(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SetARNav.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 10a12dd6183a8074a98904b29daee15f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SetTargetFramerate.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | /// 6 | /// Simple MonoBehaviour to set the Application's targetFrameRate 7 | /// 8 | public class SetTargetFramerate : MonoBehaviour 9 | { 10 | [SerializeField] 11 | [Tooltip("Sets the application's target frame rate.")] 12 | int m_TargetFrameRate = 60; 13 | 14 | /// 15 | /// Get or set the application's target frame rate. 16 | /// 17 | public int targetFrameRate 18 | { 19 | get { return m_TargetFrameRate; } 20 | set 21 | { 22 | m_TargetFrameRate = value; 23 | SetFrameRate(); 24 | } 25 | } 26 | 27 | void SetFrameRate() 28 | { 29 | Application.targetFrameRate = targetFrameRate; 30 | } 31 | 32 | void Start() 33 | { 34 | SetFrameRate(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Assets/Scripts/SetTargetFramerate.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1eb9777efa8174381b01d319232f7df5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SpawnInCube.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.AI; 6 | 7 | public class SpawnInCube : MonoBehaviour 8 | { 9 | [Tooltip("This should be the transform of a cube. The scale of the cube will inform where the spawnables spawn.")] 10 | public Transform cubeSpawnArea = null; 11 | 12 | // Update is called once per frame 13 | public void Spawn(int numberToSpawn, GameObject prefabToSpawn) 14 | { 15 | if (prefabToSpawn == null || cubeSpawnArea == null || numberToSpawn < 1) 16 | return; 17 | 18 | for (int i = 0; i < numberToSpawn; i++) 19 | { 20 | Vector3 localSpawnPosition = new Vector3( 21 | Random.Range(-cubeSpawnArea.lossyScale.x, cubeSpawnArea.lossyScale.x), 22 | Random.Range(-cubeSpawnArea.lossyScale.y, cubeSpawnArea.lossyScale.y), 23 | Random.Range(-cubeSpawnArea.lossyScale.z, cubeSpawnArea.lossyScale.z) 24 | ); 25 | 26 | // Transform local spawn position to cubeSpawnArea's rotation 27 | localSpawnPosition = ((((cubeSpawnArea.rotation * Quaternion.LookRotation(localSpawnPosition)) * Vector3.forward).normalized) * localSpawnPosition.magnitude) / 2; 28 | 29 | GameObject newSpawn = Instantiate(prefabToSpawn, cubeSpawnArea.position + localSpawnPosition, cubeSpawnArea.rotation); 30 | newSpawn.transform.localScale = GameManager.instance.gameScale; 31 | newSpawn.GetComponent().speed *= GameManager.instance.gameScale.x; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/SpawnInCube.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6b597812710d4740898b4fbfa36e88b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SpecialAmmo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class SpecialAmmo : MonoBehaviour 6 | { 7 | private void OnTriggerEnter(Collider other) 8 | { 9 | // Only hit player 10 | if (other.gameObject.layer != LayerMask.NameToLayer("Player")) 11 | return; 12 | 13 | // Do stuff 14 | other.GetComponentInParent().AddSpecialAmmo(1); 15 | 16 | Destroy(gameObject); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Assets/Scripts/SpecialAmmo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd0b57649c35521468d5ac3e9edaa289 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/StartGameTrigger.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class StartGameTrigger : MonoBehaviour 6 | { 7 | private void OnTriggerEnter(Collider other) 8 | { 9 | if (other.gameObject.layer == LayerMask.NameToLayer("Player")) 10 | GameManager.instance.StateTransitionTo(GameManager.GameState.Gameplay); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Assets/Scripts/StartGameTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: feed89b6ccbb8814fbbacf1ad9e627aa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/TimeToLive.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class TimeToLive : MonoBehaviour 6 | { 7 | public float timeToLive = 20f; 8 | private float m_Timer = 0f; 9 | 10 | // Start is called before the first frame update 11 | void Start() 12 | { 13 | m_Timer = timeToLive; 14 | } 15 | 16 | private void Update() 17 | { 18 | m_Timer -= Time.deltaTime; 19 | 20 | if (m_Timer <= 0) 21 | Destroy(gameObject); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Assets/Scripts/TimeToLive.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e62b8165093d56941ba4e88d5641a5e0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/UX.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aabe861159df08c4eb1c1856fe4166b3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/UX/FadePlaneOnBoundaryChange.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.XR.ARFoundation; 3 | 4 | [RequireComponent(typeof(ARPlane))] 5 | [RequireComponent(typeof(Animator))] 6 | public class FadePlaneOnBoundaryChange : MonoBehaviour 7 | { 8 | const string k_FadeOffAnim = "FadeOff"; 9 | const string k_FadeOnAnim = "FadeOn"; 10 | const float k_TimeOut = 2.0f; 11 | 12 | Animator m_Animator; 13 | ARPlane m_Plane; 14 | 15 | float m_ShowTime = 0; 16 | bool m_UpdatingPlane = false; 17 | 18 | void OnEnable() 19 | { 20 | m_Plane = GetComponent(); 21 | m_Animator = GetComponent(); 22 | 23 | m_Plane.boundaryChanged += PlaneOnBoundaryChanged; 24 | } 25 | 26 | void OnDisable() 27 | { 28 | m_Plane.boundaryChanged -= PlaneOnBoundaryChanged; 29 | } 30 | 31 | void Update() 32 | { 33 | if (m_UpdatingPlane) 34 | { 35 | m_ShowTime -= Time.deltaTime; 36 | 37 | if (m_ShowTime <= 0) 38 | { 39 | m_UpdatingPlane = false; 40 | m_Animator.SetBool(k_FadeOffAnim, true); 41 | m_Animator.SetBool(k_FadeOnAnim, false); 42 | } 43 | } 44 | } 45 | 46 | void PlaneOnBoundaryChanged(ARPlaneBoundaryChangedEventArgs obj) 47 | { 48 | m_Animator.SetBool(k_FadeOffAnim, false); 49 | m_Animator.SetBool(k_FadeOnAnim, true); 50 | m_UpdatingPlane = true; 51 | m_ShowTime = k_TimeOut; 52 | } 53 | } -------------------------------------------------------------------------------- /Assets/Scripts/UX/FadePlaneOnBoundaryChange.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88dbe81e1cd074727b11130714ca8d83 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/UX/UIManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using UnityEngine.XR.ARFoundation; 4 | 5 | public class UIManager : MonoBehaviour 6 | { 7 | const string k_FadeOffAnim = "FadeOff"; 8 | const string k_FadeOnAnim = "FadeOn"; 9 | 10 | [SerializeField] 11 | ARPlaneManager m_PlaneManager; 12 | 13 | public ARPlaneManager planeManager 14 | { 15 | get { return m_PlaneManager; } 16 | set { m_PlaneManager = value; } 17 | } 18 | 19 | [SerializeField] 20 | Animator m_MoveDeviceAnimation; 21 | 22 | public Animator moveDeviceAnimation 23 | { 24 | get { return m_MoveDeviceAnimation; } 25 | set { m_MoveDeviceAnimation = value; } 26 | } 27 | 28 | [SerializeField] 29 | Animator m_TapToPlaceAnimation; 30 | 31 | public Animator tapToPlaceAnimation 32 | { 33 | get { return m_TapToPlaceAnimation; } 34 | set { m_TapToPlaceAnimation = value; } 35 | } 36 | 37 | static TrackableCollection s_Planes = new TrackableCollection(); 38 | 39 | bool m_ShowingTapToPlace = false; 40 | 41 | bool m_ShowingMoveDevice = true; 42 | 43 | void OnEnable() 44 | { 45 | Camera.main.GetComponent().frameReceived += FrameChanged; 46 | PlaceMultipleObjectsOnPlane.onPlacedObject += PlacedObject; 47 | } 48 | 49 | void OnDisable() 50 | { 51 | Camera.main.GetComponent().frameReceived -= FrameChanged; 52 | PlaceMultipleObjectsOnPlane.onPlacedObject -= PlacedObject; 53 | } 54 | 55 | void FrameChanged(ARCameraFrameEventArgs args) 56 | { 57 | if (PlanesFound() && m_ShowingMoveDevice) 58 | { 59 | if (moveDeviceAnimation) 60 | moveDeviceAnimation.SetTrigger(k_FadeOffAnim); 61 | 62 | if (tapToPlaceAnimation) 63 | tapToPlaceAnimation.SetTrigger(k_FadeOnAnim); 64 | 65 | m_ShowingTapToPlace = true; 66 | m_ShowingMoveDevice = false; 67 | } 68 | } 69 | 70 | bool PlanesFound() 71 | { 72 | if (planeManager == null) 73 | return false; 74 | 75 | s_Planes = planeManager.trackables; 76 | return s_Planes.count > 0; 77 | } 78 | 79 | void PlacedObject() 80 | { 81 | if (m_ShowingTapToPlace) 82 | { 83 | if (tapToPlaceAnimation) 84 | tapToPlaceAnimation.SetTrigger(k_FadeOffAnim); 85 | 86 | m_ShowingTapToPlace = false; 87 | } 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /Assets/Scripts/UX/UIManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 162766bc881294f4b867bd32e1ef2fbe 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/VJHandler.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using UnityEngine.EventSystems; 4 | public class VJHandler : MonoBehaviour,IDragHandler, IPointerUpHandler, IPointerDownHandler { 5 | private Image jsContainer; 6 | private Image joystick; 7 | 8 | private Vector2 InputDirection; 9 | public InputAbstraction inputAbstraction; 10 | 11 | void Start(){ 12 | 13 | jsContainer = GetComponent(); 14 | joystick = transform.GetChild(0).GetComponent(); //this command is used because there is only one child in hierarchy 15 | InputDirection = Vector2.zero; 16 | } 17 | 18 | public void OnDrag(PointerEventData ped){ 19 | Vector2 position = Vector2.zero; 20 | 21 | //To get InputDirection 22 | RectTransformUtility.ScreenPointToLocalPointInRectangle 23 | (jsContainer.rectTransform, 24 | ped.position, 25 | ped.pressEventCamera, 26 | out position); 27 | 28 | position.x = (position.x/jsContainer.rectTransform.sizeDelta.x); 29 | position.y = (position.y/jsContainer.rectTransform.sizeDelta.y); 30 | 31 | InputDirection = position; 32 | InputDirection = (InputDirection.magnitude > 1) ? InputDirection.normalized : InputDirection; 33 | 34 | //to define the area in which joystick can move around 35 | joystick.rectTransform.anchoredPosition = new Vector2 (InputDirection.x * jsContainer.rectTransform.sizeDelta.x 36 | ,InputDirection.y * jsContainer.rectTransform.sizeDelta.y); 37 | 38 | if (GameManager.instance != null) 39 | GameManager.instance.inputAbstraction.ARSetFireDirection(InputDirection); 40 | } 41 | 42 | public void OnPointerDown(PointerEventData ped){ 43 | 44 | OnDrag(ped); 45 | if (GameManager.instance != null) 46 | { 47 | GameManager.instance.inputAbstraction.ARSetFireDirection(InputDirection); 48 | GameManager.instance.inputAbstraction.ARSetFire(); 49 | } 50 | } 51 | 52 | public void OnPointerUp(PointerEventData ped){ 53 | 54 | InputDirection = Vector2.zero; 55 | joystick.rectTransform.anchoredPosition = Vector2.zero; 56 | if (GameManager.instance != null) 57 | { 58 | GameManager.instance.inputAbstraction.ARSetFireDirection(InputDirection); 59 | GameManager.instance.inputAbstraction.ARUnsetFire(); 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /Assets/Scripts/VJHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3feb690e8b2bf14f9db6a183107207d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/WaveEnemy.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class WaveEnemy : Health 6 | { 7 | protected override void Start() 8 | { 9 | WaveManager.instance.AddWaveEnemy(this); 10 | base.Start(); 11 | } 12 | 13 | protected override void Die() 14 | { 15 | if (WaveManager.instance != null) 16 | WaveManager.instance.RemoveWaveEnemy(this); 17 | 18 | base.Die(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/Scripts/WaveEnemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 927743e7ea1824c409aaf2ffe7a9b33e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/XRNodeHandManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | using UnityEngine.XR; 6 | using UnityEngine.SpatialTracking; 7 | 8 | public class XRNodeHandManager : MonoBehaviour 9 | { 10 | public XRNode nodeType; 11 | public GameObject containerToDisable; 12 | 13 | [Tooltip("If left null, will attempt to use GetComponent on self")] 14 | public TrackedPoseDriver tpd = null; 15 | 16 | private Transform m_Transform; 17 | 18 | private void Start() 19 | { 20 | if (tpd == null) 21 | tpd = GetComponent(); 22 | 23 | m_Transform = GetComponent(); 24 | } 25 | 26 | // Update is called once per frame 27 | void Update() 28 | { 29 | ShowOrHide(); 30 | 31 | if (XRSettings.loadedDeviceName == "daydream") 32 | { 33 | tpd.trackingType = TrackedPoseDriver.TrackingType.RotationOnly; 34 | m_Transform.localPosition = new Vector3(0f, -1f, 0.5f); 35 | } 36 | else 37 | { 38 | tpd.trackingType = TrackedPoseDriver.TrackingType.RotationAndPosition; 39 | } 40 | } 41 | 42 | void ShowOrHide() 43 | { 44 | List nodeStates = new List(); 45 | InputTracking.GetNodeStates(nodeStates); 46 | 47 | bool setActive = false; 48 | foreach (XRNodeState nodeState in nodeStates) 49 | { 50 | if (nodeState.nodeType == nodeType) 51 | { 52 | setActive = true; 53 | } 54 | } 55 | containerToDisable.SetActive(setActive); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Assets/Scripts/XRNodeHandManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 662555dde33d5554da97cbd13117835e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0735c275001a2c84dafdb30deced5d8d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/LWRP-HighQuality.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 12 | m_Name: LWRP-HighQuality 13 | m_EditorClassIdentifier: 14 | k_AssetVersion: 3 15 | m_MaxPixelLights: 4 16 | m_SupportsVertexLight: 1 17 | m_RequireDepthTexture: 0 18 | m_RequireSoftParticles: 0 19 | m_RequireOpaqueTexture: 0 20 | m_OpaqueDownsampling: 1 21 | m_SupportsHDR: 1 22 | m_MSAA: 4 23 | m_RenderScale: 1 24 | m_SupportsDynamicBatching: 1 25 | m_DirectionalShadowsSupported: 1 26 | m_ShadowAtlasResolution: 1024 27 | m_ShadowDistance: 65 28 | m_ShadowCascades: 2 29 | m_Cascade2Split: 0.1 30 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 31 | m_LocalShadowsSupported: 1 32 | m_LocalShadowsAtlasResolution: 1024 33 | m_SoftShadowsSupported: 1 34 | m_CustomShaderVariantStrippingSettings: 0 35 | m_KeepAdditionalLightVariants: 1 36 | m_KeepVertexLightVariants: 1 37 | m_KeepDirectionalShadowVariants: 1 38 | m_KeepLocalShadowVariants: 1 39 | m_KeepSoftShadowVariants: 1 40 | m_ResourcesAsset: {fileID: 11400000, guid: aac5a08c32552a14c89394b703f1978a, type: 2} 41 | m_ShadowType: 2 42 | -------------------------------------------------------------------------------- /Assets/Settings/LWRP-HighQuality.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41d46425a367d4d4690340ddbb6b5972 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/LWRP-LowQuality.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 12 | m_Name: LWRP-LowQuality 13 | m_EditorClassIdentifier: 14 | kAssetVersion: 2 15 | m_MaxPixelLights: 1 16 | m_SupportsVertexLight: 0 17 | m_RequireDepthTexture: 0 18 | m_RequireSoftParticles: 0 19 | m_SupportsHDR: 0 20 | m_MSAA: 1 21 | m_RenderScale: 1 22 | m_ShadowType: 0 23 | m_ShadowAtlasResolution: 1024 24 | m_ShadowNearPlaneOffset: 2 25 | m_ShadowDistance: 65 26 | m_ShadowCascades: 1 27 | m_Cascade2Split: 0.1 28 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 29 | m_ResourcesAsset: {fileID: 11400000, guid: aac5a08c32552a14c89394b703f1978a, type: 2} 30 | -------------------------------------------------------------------------------- /Assets/Settings/LWRP-LowQuality.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03b2ebe1f1dcae64a83671df8b025962 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/LWRP-MediumQuality.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: LWRP-MediumQuality 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 3 16 | m_MaxPixelLights: 1 17 | m_SupportsVertexLight: 1 18 | m_RequireDepthTexture: 0 19 | m_RequireSoftParticles: 0 20 | m_RequireOpaqueTexture: 0 21 | m_OpaqueDownsampling: 1 22 | m_SupportsHDR: 0 23 | m_MSAA: 4 24 | m_RenderScale: 1 25 | m_SupportsDynamicBatching: 1 26 | m_DirectionalShadowsSupported: 1 27 | m_ShadowAtlasResolution: 1024 28 | m_ShadowDistance: 65 29 | m_ShadowCascades: 1 30 | m_Cascade2Split: 0.1 31 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 32 | m_LocalShadowsSupported: 1 33 | m_LocalShadowsAtlasResolution: 512 34 | m_SoftShadowsSupported: 1 35 | m_KeepAdditionalLightVariants: 1 36 | m_KeepVertexLightVariants: 1 37 | m_KeepDirectionalShadowVariants: 1 38 | m_KeepLocalShadowVariants: 1 39 | m_KeepSoftShadowVariants: 1 40 | m_ResourcesAsset: {fileID: 11400000, guid: aac5a08c32552a14c89394b703f1978a, type: 2} 41 | m_SavedXRConfig: 42 | renderScale: 1 43 | viewportScale: 1 44 | useOcclusionMesh: 1 45 | occlusionMaskScale: 1 46 | showDeviceView: 1 47 | gameViewRenderMode: 2 48 | m_ShadowType: 2 49 | -------------------------------------------------------------------------------- /Assets/Settings/LWRP-MediumQuality.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7973e303b707b774faaaf3d91dec1dbc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/PostProcessProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 680922c45b9bfe14085ea8a49e7d23dd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86e070ceac743824fbf7ecadc5f99195 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shader/FeatheredPlaneShader.shader: -------------------------------------------------------------------------------- 1 | Shader "Unlit/FeatheredPlaneShader" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "white" {} 6 | _TexTintColor("Texture Tint Color", Color) = (1,1,1,1) 7 | _PlaneColor("Plane Color", Color) = (1,1,1,1) 8 | } 9 | SubShader 10 | { 11 | Tags { "RenderType"="Transparent" "Queue"="Transparent" } 12 | LOD 100 13 | Blend SrcAlpha OneMinusSrcAlpha 14 | ZWrite Off 15 | 16 | Pass 17 | { 18 | CGPROGRAM 19 | #pragma vertex vert 20 | #pragma fragment frag 21 | 22 | #include "UnityCG.cginc" 23 | 24 | struct appdata 25 | { 26 | float4 vertex : POSITION; 27 | float2 uv : TEXCOORD0; 28 | float3 uv2 : TEXCOORD1; 29 | }; 30 | 31 | struct v2f 32 | { 33 | float4 vertex : SV_POSITION; 34 | float2 uv : TEXCOORD0; 35 | float3 uv2 : TEXCOORD1; 36 | }; 37 | 38 | sampler2D _MainTex; 39 | float4 _MainTex_ST; 40 | fixed4 _TexTintColor; 41 | fixed4 _PlaneColor; 42 | float _ShortestUVMapping; 43 | 44 | v2f vert (appdata v) 45 | { 46 | v2f o; 47 | o.vertex = UnityObjectToClipPos(v.vertex); 48 | o.uv = TRANSFORM_TEX(v.uv, _MainTex); 49 | o.uv2 = v.uv2; 50 | return o; 51 | } 52 | 53 | fixed4 frag (v2f i) : SV_Target 54 | { 55 | fixed4 col = tex2D(_MainTex, i.uv) * _TexTintColor; 56 | col = lerp( _PlaneColor, col, col.a); 57 | // Fade out from as we pass the edge. 58 | // uv2.x stores a mapped UV that will be "1" at the beginning of the feathering. 59 | // We fade until we reach at the edge of the shortest UV mapping. 60 | // This is the remmaped UV value at the vertex. 61 | // We choose the shorted one so that ll edges will fade out completely. 62 | // See ARFeatheredPlaneMeshVisualizer.cs for more details. 63 | col.a *= 1-smoothstep(1, _ShortestUVMapping, i.uv2.x); 64 | return col; 65 | } 66 | ENDCG 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Assets/Shader/FeatheredPlaneShader.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58c431416c0f26f459aa1a96cef1f092 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 510fb047755c0b04a8fa1c9ae0e761b4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/FeatheredPlaneShader.shader: -------------------------------------------------------------------------------- 1 | Shader "Unlit/FeatheredPlaneShader" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "white" {} 6 | _TexTintColor("Texture Tint Color", Color) = (1,1,1,1) 7 | _PlaneColor("Plane Color", Color) = (1,1,1,1) 8 | } 9 | SubShader 10 | { 11 | Tags { "RenderType"="Transparent" "Queue"="Transparent" } 12 | LOD 100 13 | Blend SrcAlpha OneMinusSrcAlpha 14 | ZWrite Off 15 | 16 | Pass 17 | { 18 | CGPROGRAM 19 | #pragma vertex vert 20 | #pragma fragment frag 21 | 22 | #include "UnityCG.cginc" 23 | 24 | struct appdata 25 | { 26 | float4 vertex : POSITION; 27 | float2 uv : TEXCOORD0; 28 | float3 uv2 : TEXCOORD1; 29 | }; 30 | 31 | struct v2f 32 | { 33 | float4 vertex : SV_POSITION; 34 | float2 uv : TEXCOORD0; 35 | float3 uv2 : TEXCOORD1; 36 | }; 37 | 38 | sampler2D _MainTex; 39 | float4 _MainTex_ST; 40 | fixed4 _TexTintColor; 41 | fixed4 _PlaneColor; 42 | float _ShortestUVMapping; 43 | 44 | v2f vert (appdata v) 45 | { 46 | v2f o; 47 | o.vertex = UnityObjectToClipPos(v.vertex); 48 | o.uv = TRANSFORM_TEX(v.uv, _MainTex); 49 | o.uv2 = v.uv2; 50 | return o; 51 | } 52 | 53 | fixed4 frag (v2f i) : SV_Target 54 | { 55 | fixed4 col = tex2D(_MainTex, i.uv) * _TexTintColor; 56 | col = lerp( _PlaneColor, col, col.a); 57 | // Fade out from as we pass the edge. 58 | // uv2.x stores a mapped UV that will be "1" at the beginning of the feathering. 59 | // We fade until we reach at the edge of the shortest UV mapping. 60 | // This is the remmaped UV value at the vertex. 61 | // We choose the shorted one so that ll edges will fade out completely. 62 | // See ARFeatheredPlaneMeshVisualizer.cs for more details. 63 | col.a *= 1-smoothstep(1, _ShortestUVMapping, i.uv2.x); 64 | return col; 65 | } 66 | ENDCG 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Assets/Shaders/FeatheredPlaneShader.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38661a2f93c3bf34a8aeab0082c6ce64 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Sounds.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd0c684dedfaed84ca3f0f521132bde1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sounds/Explosion.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Explosion.wav -------------------------------------------------------------------------------- /Assets/Sounds/Explosion.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0912090087c3e214f8054237e5231516 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Explosion2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Explosion2.wav -------------------------------------------------------------------------------- /Assets/Sounds/Explosion2.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a00e51b2e96ec44d8f8026983dc6b4a 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Explosion_Heavy.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Explosion_Heavy.wav -------------------------------------------------------------------------------- /Assets/Sounds/Explosion_Heavy.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c46ed9c019f51e4d93174c63d6c855c 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Hit_Hurt5.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Hit_Hurt5.wav -------------------------------------------------------------------------------- /Assets/Sounds/Hit_Hurt5.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50b266ff61b41b543a9eea0459f53d73 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Laser_Shoot.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Laser_Shoot.wav -------------------------------------------------------------------------------- /Assets/Sounds/Laser_Shoot.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c656d0ff98a8c242b51f468b8f7f029 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Laser_Shoot_Heavy.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Laser_Shoot_Heavy.wav -------------------------------------------------------------------------------- /Assets/Sounds/Laser_Shoot_Heavy.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b55fb6d4be91cdd47b9f7fec2b016540 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Move.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Move.wav -------------------------------------------------------------------------------- /Assets/Sounds/Move.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 641f4f11c47f1904ba5260755b4461c4 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Pickup_Coin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Pickup_Coin.wav -------------------------------------------------------------------------------- /Assets/Sounds/Pickup_Coin.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f1f4004e08cca04688032900f6c4b6d 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Sounds/Powerup.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Sounds/Powerup.wav -------------------------------------------------------------------------------- /Assets/Sounds/Powerup.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b0ad00f8bd023f449cc2c891c174c23 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 0 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: 14 | 4: 15 | loadType: 0 16 | sampleRateSetting: 0 17 | sampleRateOverride: 44100 18 | compressionFormat: 3 19 | quality: 1 20 | conversionMode: 0 21 | 7: 22 | loadType: 0 23 | sampleRateSetting: 0 24 | sampleRateOverride: 44100 25 | compressionFormat: 1 26 | quality: 1 27 | conversionMode: 0 28 | forceToMono: 0 29 | normalize: 1 30 | preloadAudioData: 1 31 | loadInBackground: 0 32 | ambisonic: 0 33 | 3D: 1 34 | userData: 35 | assetBundleName: 36 | assetBundleVariant: 37 | -------------------------------------------------------------------------------- /Assets/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72c483fa792d50e46a12c3192ded469f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/PlanePatternDot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/Textures/PlanePatternDot.png -------------------------------------------------------------------------------- /Assets/Textures/PlanePatternDot.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf0c720f1ba9b47e293f4b9bcfb2ecb4 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Assets/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f179ff91db79e242b96b54d3cc6e846 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UI/ControllerOutline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/UI/ControllerOutline.png -------------------------------------------------------------------------------- /Assets/UI/ControllerOutline.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 642dcc080b8a5ee40866bfcde8e9669a 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 4 36 | mipBias: -1 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 4096 86 | resizeAlgorithm: 0 87 | textureFormat: 32 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 1 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 2048 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 87228b1a6bb8d774dabc4cfef324945c 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /Assets/UI/Gaze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Onslaught/46df271368d79a64e064713efb2cbabbe97697f4/Assets/UI/Gaze.png -------------------------------------------------------------------------------- /Assets/UI/Gaze.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e84f36ef0e130224e9437c5a97767e56 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 4 36 | mipBias: -1 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 8192 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 8192 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 4096 86 | resizeAlgorithm: 0 87 | textureFormat: 32 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 1 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 8192 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 8192 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 28667b1ba497e2b4eb40d32e9e87ea3b 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | ## If you are interested in contributing, here are some ground rules: 4 | * Match coding conventions found in existing scripts 5 | * Pull requests may or may not be accepted to this repository for any reason 6 | 7 | ## All contributions are subject to the [Unity Contribution Agreement(UCA)](https://unity3d.com/legal/licenses/Unity_Contribution_Agreement) 8 | By making a pull request, you are confirming agreement to the terms and conditions of the UCA, including that your Contributions are your original creation and that you have complete right and authority to make your Contributions. 9 | 10 | ## Once you have a change ready following these ground rules. Simply make a pull request 11 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | XR Input Test Suite copyright © 2018 Unity Technologies ApS 2 | 3 | Licensed under the Unity Companion License for Unity-dependent projects--see [Unity Companion License](http://www.unity3d.com/legal/licenses/Unity_Companion_License). 4 | 5 | Unless expressly provided otherwise, the Software under this license is made available strictly on an “AS IS” BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions. 6 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.sprite": "1.0.0", 4 | "com.unity.2d.tilemap": "1.0.0", 5 | "com.unity.ads": "2.0.8", 6 | "com.unity.analytics": "3.3.2", 7 | "com.unity.collab-proxy": "1.2.16", 8 | "com.unity.ext.nunit": "1.0.0", 9 | "com.unity.ide.rider": "1.1.0", 10 | "com.unity.ide.vscode": "1.0.7", 11 | "com.unity.package-manager-ui": "2.2.0", 12 | "com.unity.purchasing": "2.0.6", 13 | "com.unity.test-framework": "1.0.13", 14 | "com.unity.textmeshpro": "2.0.1", 15 | "com.unity.timeline": "1.1.0", 16 | "com.unity.ugui": "1.0.0", 17 | "com.unity.xr.arcore": "2.0.2", 18 | "com.unity.xr.arfoundation": "2.1.3", 19 | "com.unity.xr.arkit": "2.0.1", 20 | "com.unity.xr.legacyinputhelpers": "2.0.2", 21 | "com.unity.xr.oculus.standalone": "1.36.0", 22 | "com.unity.modules.ai": "1.0.0", 23 | "com.unity.modules.androidjni": "1.0.0", 24 | "com.unity.modules.animation": "1.0.0", 25 | "com.unity.modules.assetbundle": "1.0.0", 26 | "com.unity.modules.audio": "1.0.0", 27 | "com.unity.modules.cloth": "1.0.0", 28 | "com.unity.modules.director": "1.0.0", 29 | "com.unity.modules.imageconversion": "1.0.0", 30 | "com.unity.modules.imgui": "1.0.0", 31 | "com.unity.modules.jsonserialize": "1.0.0", 32 | "com.unity.modules.particlesystem": "1.0.0", 33 | "com.unity.modules.physics": "1.0.0", 34 | "com.unity.modules.physics2d": "1.0.0", 35 | "com.unity.modules.screencapture": "1.0.0", 36 | "com.unity.modules.terrain": "1.0.0", 37 | "com.unity.modules.terrainphysics": "1.0.0", 38 | "com.unity.modules.tilemap": "1.0.0", 39 | "com.unity.modules.ui": "1.0.0", 40 | "com.unity.modules.uielements": "1.0.0", 41 | "com.unity.modules.umbra": "1.0.0", 42 | "com.unity.modules.unityanalytics": "1.0.0", 43 | "com.unity.modules.unitywebrequest": "1.0.0", 44 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 45 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 46 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 47 | "com.unity.modules.unitywebrequestwww": "1.0.0", 48 | "com.unity.modules.vehicles": "1.0.0", 49 | "com.unity.modules.video": "1.0.0", 50 | "com.unity.modules.vr": "1.0.0", 51 | "com.unity.modules.wind": "1.0.0", 52 | "com.unity.modules.xr": "1.0.0" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /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: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: OculusSpatializer 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /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/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: 8 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_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /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/Scenes/VR.unity 10 | guid: 99c9720ab356a0642a771bea13969a05 11 | - enabled: 0 12 | path: Assets/Scenes/AR.unity 13 | guid: 70f91755d5922584e9dade3e56b7c86a 14 | m_configObjects: {} 15 | -------------------------------------------------------------------------------- /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: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /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 | - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} 41 | - {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0} 42 | m_PreloadedShaders: [] 43 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 44 | type: 0} 45 | m_CustomRenderPipeline: {fileID: 0} 46 | m_TransparencySortMode: 0 47 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 48 | m_DefaultRenderingPath: 1 49 | m_DefaultMobileRenderingPath: 1 50 | m_TierSettings: [] 51 | m_LightmapStripping: 0 52 | m_FogStripping: 0 53 | m_InstancingStripping: 0 54 | m_LightmapKeepPlain: 1 55 | m_LightmapKeepDirCombined: 1 56 | m_LightmapKeepDynamicPlain: 1 57 | m_LightmapKeepDynamicDirCombined: 1 58 | m_LightmapKeepShadowMask: 1 59 | m_LightmapKeepSubtractive: 1 60 | m_FogKeepLinear: 1 61 | m_FogKeepExp: 1 62 | m_FogKeepExp2: 1 63 | m_AlbedoSwatchInfos: [] 64 | m_LightsUseLinearIntensity: 0 65 | m_LightsUseColorTemperature: 0 66 | -------------------------------------------------------------------------------- /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: -1372625422 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.1 77 | agentHeight: 0.5 78 | agentSlope: 45 79 | agentClimb: 0.1 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 | debug: 89 | m_Flags: 0 90 | - serializedVersion: 2 91 | agentTypeID: -1372625422 92 | agentRadius: 0.05 93 | agentHeight: 0.01 94 | agentSlope: 45 95 | agentClimb: 0.002 96 | ledgeDropHeight: 0 97 | maxJumpAcrossDistance: 0 98 | minRegionArea: 2 99 | manualCellSize: 0 100 | cellSize: 0.16666667 101 | manualTileSize: 0 102 | tileSize: 256 103 | accuratePlacement: 0 104 | debug: 105 | m_Flags: 0 106 | m_SettingNames: 107 | - Humanoid 108 | - AR Humanoid 109 | -------------------------------------------------------------------------------- /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: 4 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: 0 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 | -------------------------------------------------------------------------------- /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 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: 463065d4f17d1d94d848aa127b94dd43, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1006 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: e638c0a99ead192429620acaff45cccb, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1020 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: fbe3044078845df4eafe8ccd620d0ac9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.2.2f1 2 | m_EditorVersionWithRevision: 2019.2.2f1 (ab112815d860) 3 | -------------------------------------------------------------------------------- /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 | - MovementRaycaster 8 | layers: 9 | - Default 10 | - TransparentFX 11 | - Ignore Raycast 12 | - 13 | - Water 14 | - UI 15 | - 16 | - 17 | - PostProcessing 18 | - Player 19 | - NavigationTarget 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | - 41 | m_SortingLayers: 42 | - name: Default 43 | uniqueID: 0 44 | locked: 0 45 | -------------------------------------------------------------------------------- /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.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /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 | serializedVersion: 1 7 | m_Enabled: 1 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 1 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: 32 | AndroidPlayer: 33 | iPhonePlayer: 34 | tvOSPlayer: 35 | m_GameId: 36 | PerformanceReportingSettings: 37 | m_Enabled: 0 38 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Onslaught 2 | A cross-platform XR sample game with no third-party packages. 3 | 4 | This project is made as a part of "Scenario Test Week" - a time during the beta period of our editor release cycle when we do exploratory testing by making games. As such, releases will target beta versions of the editor and use experimental APIs. Your mileage may vary using this project with a different version of the editor than the one the project targets. 5 | 6 | This game can be deployed to... 7 | 8 | Standalone (PC): OpenVR, Oculus, or Windows Mixed Reality Immersive Headsets 9 | 10 | Android: Oculus, Daydream, ARCore 11 | 12 | iOS: ARKit 13 | 14 | To compile for VR, set up the ProjectSetting->Player->XRSettings to your target VR SDK(s) and build the scene Assets/Scenes/VR.unity to the corresponding platform. 15 | 16 | To compile for AR, disable VR support and build the scene Assets/Scenes/AR.unity to the corresponding platform. Do NOT enable XRSettings->ARCoreSupport when targeting AR. This project uses ARFoundation for AR support, which does not use that settings path. 17 | --------------------------------------------------------------------------------