├── .gitignore ├── .gitmodules ├── Assets.meta ├── Assets ├── Common.meta ├── Common │ ├── DecreaseHealth.cs │ ├── DecreaseHealth.cs.meta │ ├── HealthLogger.meta │ ├── HealthLogger │ │ ├── HealthLogger.asset │ │ ├── HealthLogger.asset.meta │ │ ├── HealthLogger.cs │ │ └── HealthLogger.cs.meta │ ├── Input.meta │ ├── Input │ │ ├── DemoControls.cs │ │ ├── DemoControls.cs.meta │ │ ├── DemoControls.inputactions │ │ ├── DemoControls.inputactions.meta │ │ ├── DemoInputSystem.prefab │ │ ├── DemoInputSystem.prefab.meta │ │ ├── MovementCallbackContextInterpreter.asset │ │ ├── MovementCallbackContextInterpreter.asset.meta │ │ ├── MovementInput.asset │ │ ├── MovementInput.asset.meta │ │ ├── OnShootingDown.asset │ │ ├── OnShootingDown.asset.meta │ │ ├── OnShootingLeft.asset │ │ ├── OnShootingLeft.asset.meta │ │ ├── OnShootingRight.asset │ │ ├── OnShootingRight.asset.meta │ │ ├── OnShootingUp.asset │ │ ├── OnShootingUp.asset.meta │ │ ├── PlayerMove.cs │ │ ├── PlayerMove.cs.meta │ │ ├── ShootingDownCallbackContextInterpreter.asset │ │ ├── ShootingDownCallbackContextInterpreter.asset.meta │ │ ├── ShootingLeftCallbackContextInterpreter.asset │ │ ├── ShootingLeftCallbackContextInterpreter.asset.meta │ │ ├── ShootingRightCallbackContextInterpreter.asset │ │ ├── ShootingRightCallbackContextInterpreter.asset.meta │ │ ├── ShootingUpCallbackContextInterpreter.asset │ │ └── ShootingUpCallbackContextInterpreter.asset.meta │ ├── Sprites.meta │ ├── Sprites │ │ ├── Square.png │ │ └── Square.png.meta │ ├── UI.meta │ ├── UI │ │ ├── HealthBar.meta │ │ ├── HealthBar │ │ │ ├── HealthBar.cs │ │ │ └── HealthBar.cs.meta │ │ ├── MenuButton.meta │ │ ├── MenuButton │ │ │ ├── OnMenuClicked.asset │ │ │ ├── OnMenuClicked.asset.meta │ │ │ ├── SetUIStateSecond.asset │ │ │ └── SetUIStateSecond.asset.meta │ │ ├── QuitButton.meta │ │ ├── QuitButton │ │ │ ├── OnQuitClicked.asset │ │ │ ├── OnQuitClicked.asset.meta │ │ │ ├── QuitApplication.asset │ │ │ └── QuitApplication.asset.meta │ │ ├── ResetHealthButton.meta │ │ ├── ResetHealthButton │ │ │ ├── OnResetHealthClicked.asset │ │ │ └── OnResetHealthClicked.asset.meta │ │ ├── ResumeButton.meta │ │ └── ResumeButton │ │ │ ├── OnResumeClicked.asset │ │ │ ├── OnResumeClicked.asset.meta │ │ │ ├── SetUIStateFirst.asset │ │ │ └── SetUIStateFirst.asset.meta │ ├── UnitHealth.cs │ └── UnitHealth.cs.meta ├── InfiniteWaves.meta ├── InfiniteWaves │ ├── Common.meta │ ├── Common │ │ ├── DestroyMe.cs │ │ ├── DestroyMe.cs.meta │ │ ├── Rigidbody2DExtensions.cs │ │ ├── Rigidbody2DExtensions.cs.meta │ │ ├── SyncPositionWithVariable.cs │ │ └── SyncPositionWithVariable.cs.meta │ ├── Enemy.meta │ ├── Enemy │ │ ├── Enemies.asset │ │ ├── Enemies.asset.meta │ │ ├── Enemy.prefab │ │ ├── Enemy.prefab.meta │ │ ├── EnemyAdded.asset │ │ ├── EnemyAdded.asset.meta │ │ ├── EnemyDataAddedBase.asset │ │ ├── EnemyDataAddedBase.asset.meta │ │ ├── EnemyDataBase.asset │ │ ├── EnemyDataBase.asset.meta │ │ ├── EnemyDataRemovedBase.asset │ │ ├── EnemyDataRemovedBase.asset.meta │ │ ├── EnemyHealthBase.asset │ │ ├── EnemyHealthBase.asset.meta │ │ ├── EnemyHealthChangedBase.asset │ │ ├── EnemyHealthChangedBase.asset.meta │ │ ├── EnemyMovement.cs │ │ ├── EnemyMovement.cs.meta │ │ ├── EnemyPositionBase.asset │ │ ├── EnemyPositionBase.asset.meta │ │ ├── EnemyPositionChangedBase.asset │ │ ├── EnemyPositionChangedBase.asset.meta │ │ ├── EnemyRemoved.asset │ │ ├── EnemyRemoved.asset.meta │ │ ├── EnemyShooting.cs │ │ ├── EnemyShooting.cs.meta │ │ ├── EnemyShootingRange.asset │ │ ├── EnemyShootingRange.asset.meta │ │ ├── EnemyStateChangedBase.asset │ │ ├── EnemyStateChangedBase.asset.meta │ │ ├── EnemyStateMachineBase.asset │ │ ├── EnemyStateMachineBase.asset.meta │ │ ├── TagEnemy.asset │ │ └── TagEnemy.asset.meta │ ├── EnemyWaveManager.meta │ ├── EnemyWaveManager │ │ ├── EnemyWaveManager.cs │ │ ├── EnemyWaveManager.cs.meta │ │ ├── EnemyWaveManager.prefab │ │ ├── EnemyWaveManager.prefab.meta │ │ ├── SpawnedEnemies.asset │ │ ├── SpawnedEnemies.asset.meta │ │ ├── SpawnedEnemyRemoved.asset │ │ ├── SpawnedEnemyRemoved.asset.meta │ │ ├── WaveCount.asset │ │ ├── WaveCount.asset.meta │ │ ├── WaveCountChanged.asset │ │ └── WaveCountChanged.asset.meta │ ├── GlobalState.meta │ ├── GlobalState │ │ ├── GameStateDispatcher.cs │ │ ├── GameStateDispatcher.cs.meta │ │ ├── GameStateMachine.asset │ │ └── GameStateMachine.asset.meta │ ├── InfiniteWaves.unity │ ├── InfiniteWaves.unity.meta │ ├── Player.meta │ ├── Player │ │ ├── DirectionIndicator.png │ │ ├── DirectionIndicator.png.meta │ │ ├── PlayerShooting.cs │ │ └── PlayerShooting.cs.meta │ ├── Projectile.meta │ ├── Projectile │ │ ├── MoveInDirection.cs │ │ ├── MoveInDirection.cs.meta │ │ ├── Projectile.png │ │ ├── Projectile.png.meta │ │ ├── Projectile.prefab │ │ ├── Projectile.prefab.meta │ │ ├── ProjectileDidCollideBase.asset │ │ ├── ProjectileDidCollideBase.asset.meta │ │ ├── ProjectileTriggerBase.asset │ │ └── ProjectileTriggerBase.asset.meta │ ├── UI.meta │ └── UI │ │ ├── EnemyHealthBars.meta │ │ ├── EnemyHealthBars │ │ ├── EnemyHealthBarManager.cs │ │ ├── EnemyHealthBarManager.cs.meta │ │ ├── HealthBar.prefab │ │ └── HealthBar.prefab.meta │ │ ├── TryAgainButton.meta │ │ ├── TryAgainButton │ │ ├── RestartCurrentScene.cs │ │ ├── RestartCurrentScene.cs.meta │ │ ├── TryAgainButtonClicked.asset │ │ └── TryAgainButtonClicked.asset.meta │ │ ├── UIStateChanged.asset │ │ ├── UIStateChanged.asset.meta │ │ ├── WaveCountText.cs │ │ └── WaveCountText.cs.meta ├── Intro.meta ├── Intro │ ├── GlobalState.meta │ ├── GlobalState │ │ ├── ClampHealth.asset │ │ ├── ClampHealth.asset.meta │ │ ├── Health.asset │ │ ├── Health.asset.meta │ │ ├── HealthChangedEvent.asset │ │ ├── HealthChangedEvent.asset.meta │ │ ├── UIState.asset │ │ ├── UIState.asset.meta │ │ ├── UIStateChanged.asset │ │ └── UIStateChanged.asset.meta │ ├── Harmful.meta │ ├── Harmful │ │ ├── Harmful.prefab │ │ ├── Harmful.prefab.meta │ │ ├── HarmfulTriggerEvent.asset │ │ └── HarmfulTriggerEvent.asset.meta │ ├── HealthListener.meta │ ├── HealthListener │ │ ├── HealthListener.prefab │ │ └── HealthListener.prefab.meta │ ├── Intro.unity │ ├── Intro.unity.meta │ ├── IntroSettings.lighting │ ├── IntroSettings.lighting.meta │ ├── SharedConstants.meta │ └── SharedConstants │ │ ├── MaxHealth.asset │ │ ├── MaxHealth.asset.meta │ │ ├── TagPlayer.asset │ │ ├── TagPlayer.asset.meta │ │ ├── UIState_First.asset │ │ ├── UIState_First.asset.meta │ │ ├── UIState_Second.asset │ │ └── UIState_Second.asset.meta ├── Test.meta ├── Test │ ├── TODO.md │ └── TODO.md.meta ├── UniRx.meta ├── UniRx │ ├── Player.meta │ ├── Player │ │ ├── PlayerMoveUniRx.cs │ │ └── PlayerMoveUniRx.cs.meta │ ├── UI.meta │ ├── UI │ │ ├── HealthBarUniRx.cs │ │ └── HealthBarUniRx.cs.meta │ ├── UniRx.unity │ ├── UniRx.unity.meta │ ├── UniRxSettings.lighting │ └── UniRxSettings.lighting.meta ├── csc.rsp ├── csc.rsp.meta └── unity-atoms.meta ├── LICENSE ├── Logs.meta ├── Logs ├── Packages-Update.log └── Packages-Update.log.meta ├── Packages.meta ├── Packages ├── manifest.json ├── manifest.json.meta └── packages-lock.json ├── ProjectSettings.meta ├── ProjectSettings ├── AudioManager.asset ├── AudioManager.asset.meta ├── ClusterInputManager.asset ├── ClusterInputManager.asset.meta ├── DynamicsManager.asset ├── DynamicsManager.asset.meta ├── EditorBuildSettings.asset ├── EditorBuildSettings.asset.meta ├── EditorSettings.asset ├── EditorSettings.asset.meta ├── GraphicsSettings.asset ├── GraphicsSettings.asset.meta ├── InputManager.asset ├── InputManager.asset.meta ├── NavMeshAreas.asset ├── NavMeshAreas.asset.meta ├── NetworkManager.asset ├── NetworkManager.asset.meta ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── Physics2DSettings.asset.meta ├── PresetManager.asset ├── PresetManager.asset.meta ├── ProjectSettings.asset ├── ProjectSettings.asset.meta ├── ProjectVersion.txt ├── ProjectVersion.txt.meta ├── QualitySettings.asset ├── QualitySettings.asset.meta ├── TagManager.asset ├── TagManager.asset.meta ├── TimeManager.asset ├── TimeManager.asset.meta ├── UnityConnectSettings.asset ├── UnityConnectSettings.asset.meta ├── VFXManager.asset ├── VFXManager.asset.meta ├── VersionControlSettings.asset └── XRSettings.asset ├── README.md └── UserSettings └── EditorUserSettings.asset /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | 8 | # Visual Studio 2015 cache directory 9 | /.vs/ 10 | /.idea/ 11 | 12 | /Assets/Plugins/Editor/JetBrains* 13 | 14 | # Autogenerated VS/MD/Consulo solution and project files 15 | ExportedObj/ 16 | .consulo/ 17 | *.csproj 18 | *.unityproj 19 | *.sln 20 | *.suo 21 | *.tmp 22 | *.user 23 | *.userprefs 24 | *.pidb 25 | *.booproj 26 | *.svd 27 | *.pdb 28 | 29 | # Unity3D generated meta files 30 | *.pidb.meta 31 | 32 | # Unity3D Generated File On Crash Reports 33 | sysinfo.txt 34 | 35 | # Builds 36 | *.apk 37 | *.unitypackage 38 | 39 | # VS Code Settings 40 | .vscode 41 | 42 | .DS_Store -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Assets/unity-atoms"] 2 | path = Assets/unity-atoms 3 | url = https://github.com/unity-atoms/unity-atoms.git 4 | -------------------------------------------------------------------------------- /Assets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b7c8f15e9ec041bca48a46033596bde 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc03c828d96fe49ca9d73d6971357d6b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/DecreaseHealth.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using UnityEngine.Assertions; 4 | using UnityAtoms.BaseAtoms; 5 | using UnityAtoms.Tags; 6 | 7 | namespace UnityAtoms.Examples 8 | { 9 | /// 10 | /// Script to decrease a Unit's health. 11 | /// 12 | public class DecreaseHealth : MonoBehaviour 13 | { 14 | public List TagsAffected { get => _tags; } 15 | 16 | [SerializeField] 17 | private IntReference _decreaseBy; 18 | 19 | [SerializeField] 20 | private List _tags; 21 | 22 | [SerializeField] 23 | private VoidBaseEventReference _didCollide; 24 | 25 | void Start() 26 | { 27 | Assert.IsNotNull(_decreaseBy); 28 | Assert.IsNotNull(_tags); 29 | } 30 | 31 | public void Do(Collider2D collider) 32 | { 33 | if (collider == null) return; 34 | 35 | if (collider.gameObject.HasAnyTag(_tags)) 36 | { 37 | collider.GetComponent().Health -= _decreaseBy; 38 | } 39 | 40 | if (_didCollide != null && _didCollide.Event != null) 41 | { 42 | _didCollide.Event.Raise(); 43 | } 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /Assets/Common/DecreaseHealth.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2eb8227755d4543bba34358ca3a9ab6f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Common/HealthLogger.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9804f9778f6664f4c88b0fafedc17868 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/HealthLogger/HealthLogger.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: 49bba051ac5c14a298288dc289ab85d7, type: 3} 13 | m_Name: HealthLogger 14 | m_EditorClassIdentifier: 15 | _developerDescription: IntAction that Debug.Logs the value it receives. 16 | -------------------------------------------------------------------------------- /Assets/Common/HealthLogger/HealthLogger.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58f78c691d84e44cd84c884aadacf21a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/HealthLogger/HealthLogger.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityAtoms.BaseAtoms; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// An IntAction that Debug.Logs the value it recieves. 8 | /// 9 | [CreateAssetMenu(menuName = "Unity Atoms/Examples/Intro/Health Logger")] 10 | public sealed class HealthLogger : IntAction 11 | { 12 | public override void Do(int health) 13 | { 14 | Debug.Log("<3: " + health); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/Common/HealthLogger/HealthLogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49bba051ac5c14a298288dc289ab85d7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Common/Input.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e27550bc64044a5cb644f796c56f48d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/DemoControls.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9bca082e3f7314051a0c44b62e723d20 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Common/Input/DemoControls.inputactions: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DemoControls", 3 | "maps": [ 4 | { 5 | "name": "InGame", 6 | "id": "35062ae5-10ae-466d-a7b9-0c5f472a2177", 7 | "actions": [ 8 | { 9 | "name": "ShootingUp", 10 | "type": "Button", 11 | "id": "8615d9fb-93b0-400c-9a4c-a39b681a4158", 12 | "expectedControlType": "Button", 13 | "processors": "", 14 | "interactions": "" 15 | }, 16 | { 17 | "name": "ShootingDown", 18 | "type": "Button", 19 | "id": "e8aafec1-4a00-4799-a689-0a3539a1f366", 20 | "expectedControlType": "Button", 21 | "processors": "", 22 | "interactions": "" 23 | }, 24 | { 25 | "name": "ShootingLeft", 26 | "type": "Button", 27 | "id": "8a55130d-5906-4c5d-a6d6-d07eba034237", 28 | "expectedControlType": "Button", 29 | "processors": "", 30 | "interactions": "" 31 | }, 32 | { 33 | "name": "ShootingRight", 34 | "type": "Button", 35 | "id": "9c8b6bc1-5757-4974-8b43-87c5d3a87c22", 36 | "expectedControlType": "Button", 37 | "processors": "", 38 | "interactions": "" 39 | }, 40 | { 41 | "name": "Moving", 42 | "type": "PassThrough", 43 | "id": "2fa85faf-2966-4a67-9329-4635ac11afc0", 44 | "expectedControlType": "Vector2", 45 | "processors": "", 46 | "interactions": "" 47 | } 48 | ], 49 | "bindings": [ 50 | { 51 | "name": "2D Vector", 52 | "id": "47c8590a-3c81-4dea-afd6-b0a9d3c83605", 53 | "path": "2DVector", 54 | "interactions": "", 55 | "processors": "", 56 | "groups": "", 57 | "action": "Moving", 58 | "isComposite": true, 59 | "isPartOfComposite": false 60 | }, 61 | { 62 | "name": "up", 63 | "id": "82ae0eaa-eb7c-4add-a472-11116057a230", 64 | "path": "/w", 65 | "interactions": "", 66 | "processors": "", 67 | "groups": "Keyboard", 68 | "action": "Moving", 69 | "isComposite": false, 70 | "isPartOfComposite": true 71 | }, 72 | { 73 | "name": "down", 74 | "id": "28c9cd27-13eb-4cda-8e92-b3c7fc01dd66", 75 | "path": "/s", 76 | "interactions": "", 77 | "processors": "", 78 | "groups": "Keyboard", 79 | "action": "Moving", 80 | "isComposite": false, 81 | "isPartOfComposite": true 82 | }, 83 | { 84 | "name": "left", 85 | "id": "b56720bd-3c31-4930-ae99-c97d4d9eafd0", 86 | "path": "/a", 87 | "interactions": "", 88 | "processors": "", 89 | "groups": "Keyboard", 90 | "action": "Moving", 91 | "isComposite": false, 92 | "isPartOfComposite": true 93 | }, 94 | { 95 | "name": "right", 96 | "id": "830e6dc2-9a81-494e-8cb9-ed45cf3f4ce8", 97 | "path": "/d", 98 | "interactions": "", 99 | "processors": "", 100 | "groups": "Keyboard", 101 | "action": "Moving", 102 | "isComposite": false, 103 | "isPartOfComposite": true 104 | }, 105 | { 106 | "name": "", 107 | "id": "5fbd74f7-a2e9-4925-bf3b-9a6671633b59", 108 | "path": "/downArrow", 109 | "interactions": "", 110 | "processors": "", 111 | "groups": "Keyboard", 112 | "action": "ShootingDown", 113 | "isComposite": false, 114 | "isPartOfComposite": false 115 | }, 116 | { 117 | "name": "", 118 | "id": "00c3e6b4-8344-4337-9c83-359be513fab1", 119 | "path": "/upArrow", 120 | "interactions": "", 121 | "processors": "", 122 | "groups": "Keyboard", 123 | "action": "ShootingUp", 124 | "isComposite": false, 125 | "isPartOfComposite": false 126 | }, 127 | { 128 | "name": "", 129 | "id": "a11346b4-31ae-488a-abc2-afb9c363f7d9", 130 | "path": "/rightArrow", 131 | "interactions": "", 132 | "processors": "", 133 | "groups": "Keyboard", 134 | "action": "ShootingRight", 135 | "isComposite": false, 136 | "isPartOfComposite": false 137 | }, 138 | { 139 | "name": "", 140 | "id": "75e36175-01cb-4cf3-aa06-56945d7904cf", 141 | "path": "/leftArrow", 142 | "interactions": "", 143 | "processors": "", 144 | "groups": "Keyboard", 145 | "action": "ShootingLeft", 146 | "isComposite": false, 147 | "isPartOfComposite": false 148 | } 149 | ] 150 | } 151 | ], 152 | "controlSchemes": [ 153 | { 154 | "name": "Keyboard", 155 | "bindingGroup": "Keyboard", 156 | "devices": [ 157 | { 158 | "devicePath": "", 159 | "isOptional": false, 160 | "isOR": false 161 | } 162 | ] 163 | } 164 | ] 165 | } -------------------------------------------------------------------------------- /Assets/Common/Input/DemoControls.inputactions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e99306deb66c44fd1b3e1338ae134db1 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} 11 | generateWrapperCode: 1 12 | wrapperCodePath: Assets/Common/Input/DemoControls.cs 13 | wrapperClassName: 14 | wrapperCodeNamespace: 15 | -------------------------------------------------------------------------------- /Assets/Common/Input/DemoInputSystem.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &7107865494949338114 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 7107865494949338112} 12 | - component: {fileID: 7107865494949338113} 13 | m_Layer: 0 14 | m_Name: DemoInputSystem 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!4 &7107865494949338112 21 | Transform: 22 | m_ObjectHideFlags: 0 23 | m_CorrespondingSourceObject: {fileID: 0} 24 | m_PrefabInstance: {fileID: 0} 25 | m_PrefabAsset: {fileID: 0} 26 | m_GameObject: {fileID: 7107865494949338114} 27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 28 | m_LocalPosition: {x: 0, y: 0, z: 0} 29 | m_LocalScale: {x: 1, y: 1, z: 1} 30 | m_Children: [] 31 | m_Father: {fileID: 0} 32 | m_RootOrder: 0 33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 34 | --- !u!114 &7107865494949338113 35 | MonoBehaviour: 36 | m_ObjectHideFlags: 0 37 | m_CorrespondingSourceObject: {fileID: 0} 38 | m_PrefabInstance: {fileID: 0} 39 | m_PrefabAsset: {fileID: 0} 40 | m_GameObject: {fileID: 7107865494949338114} 41 | m_Enabled: 1 42 | m_EditorHideFlags: 0 43 | m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} 44 | m_Name: 45 | m_EditorClassIdentifier: 46 | m_Actions: {fileID: -944628639613478452, guid: e99306deb66c44fd1b3e1338ae134db1, 47 | type: 3} 48 | m_NotificationBehavior: 2 49 | m_UIInputModule: {fileID: 0} 50 | m_DeviceLostEvent: 51 | m_PersistentCalls: 52 | m_Calls: [] 53 | m_DeviceRegainedEvent: 54 | m_PersistentCalls: 55 | m_Calls: [] 56 | m_ControlsChangedEvent: 57 | m_PersistentCalls: 58 | m_Calls: [] 59 | m_ActionEvents: 60 | - m_PersistentCalls: 61 | m_Calls: 62 | - m_Target: {fileID: 11400000, guid: 55f39a1f960994082ac7ca2a59c5c2c4, type: 2} 63 | m_TargetAssemblyTypeName: UnityAtoms.InputSystem.CallbackContextInterpreter`8[[System.Single, 64 | mscorlib 65 | m_MethodName: Raise 66 | m_Mode: 0 67 | m_Arguments: 68 | m_ObjectArgument: {fileID: 0} 69 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 70 | m_IntArgument: 0 71 | m_FloatArgument: 0 72 | m_StringArgument: 73 | m_BoolArgument: 0 74 | m_CallState: 2 75 | m_ActionId: 8615d9fb-93b0-400c-9a4c-a39b681a4158 76 | m_ActionName: InGame1/ShootingUp[/Keyboard/upArrow] 77 | - m_PersistentCalls: 78 | m_Calls: 79 | - m_Target: {fileID: 11400000, guid: fca5bed70eb7e422ab1687d879872650, type: 2} 80 | m_TargetAssemblyTypeName: UnityAtoms.InputSystem.CallbackContextInterpreter`8[[System.Single, 81 | mscorlib 82 | m_MethodName: Raise 83 | m_Mode: 0 84 | m_Arguments: 85 | m_ObjectArgument: {fileID: 0} 86 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 87 | m_IntArgument: 0 88 | m_FloatArgument: 0 89 | m_StringArgument: 90 | m_BoolArgument: 0 91 | m_CallState: 2 92 | m_ActionId: e8aafec1-4a00-4799-a689-0a3539a1f366 93 | m_ActionName: InGame1/ShootingDown[/Keyboard/downArrow] 94 | - m_PersistentCalls: 95 | m_Calls: 96 | - m_Target: {fileID: 11400000, guid: dfa466f1136794e6280b39e8d9da8c19, type: 2} 97 | m_TargetAssemblyTypeName: UnityAtoms.InputSystem.CallbackContextInterpreter`8[[System.Single, 98 | mscorlib 99 | m_MethodName: Raise 100 | m_Mode: 0 101 | m_Arguments: 102 | m_ObjectArgument: {fileID: 0} 103 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 104 | m_IntArgument: 0 105 | m_FloatArgument: 0 106 | m_StringArgument: 107 | m_BoolArgument: 0 108 | m_CallState: 2 109 | m_ActionId: 8a55130d-5906-4c5d-a6d6-d07eba034237 110 | m_ActionName: InGame1/ShootingLeft[/Keyboard/leftArrow] 111 | - m_PersistentCalls: 112 | m_Calls: 113 | - m_Target: {fileID: 11400000, guid: ef17971b2601e4e0586c7e79524a1a3c, type: 2} 114 | m_TargetAssemblyTypeName: UnityAtoms.InputSystem.CallbackContextInterpreter`8[[System.Single, 115 | mscorlib 116 | m_MethodName: Raise 117 | m_Mode: 0 118 | m_Arguments: 119 | m_ObjectArgument: {fileID: 0} 120 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 121 | m_IntArgument: 0 122 | m_FloatArgument: 0 123 | m_StringArgument: 124 | m_BoolArgument: 0 125 | m_CallState: 2 126 | m_ActionId: 9c8b6bc1-5757-4974-8b43-87c5d3a87c22 127 | m_ActionName: InGame1/ShootingRight[/Keyboard/rightArrow] 128 | - m_PersistentCalls: 129 | m_Calls: 130 | - m_Target: {fileID: 11400000, guid: b7cef7c3529da46778b6c3457f50eb5b, type: 2} 131 | m_TargetAssemblyTypeName: UnityAtoms.InputSystem.CallbackContextInterpreter`8[[UnityEngine.Vector2, 132 | UnityEngine 133 | m_MethodName: UpdateValues 134 | m_Mode: 0 135 | m_Arguments: 136 | m_ObjectArgument: {fileID: 0} 137 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 138 | m_IntArgument: 0 139 | m_FloatArgument: 0 140 | m_StringArgument: 141 | m_BoolArgument: 0 142 | m_CallState: 2 143 | m_ActionId: 2fa85faf-2966-4a67-9329-4635ac11afc0 144 | m_ActionName: InGame1/Moving[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d] 145 | m_NeverAutoSwitchControlSchemes: 0 146 | m_DefaultControlScheme: Keyboard 147 | m_DefaultActionMap: InGame 148 | m_SplitScreenIndex: -1 149 | m_Camera: {fileID: 0} 150 | -------------------------------------------------------------------------------- /Assets/Common/Input/DemoInputSystem.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 187af25211528403abd2acb144491fcf 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Common/Input/MovementCallbackContextInterpreter.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: 80b673161316f484e9270ad0bb251029, type: 3} 13 | m_Name: MovementCallbackContextInterpreter 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _started: {fileID: 0} 17 | _performed: {fileID: 0} 18 | _canceled: {fileID: 0} 19 | _waiting: {fileID: 0} 20 | _disabled: {fileID: 0} 21 | _value: {fileID: 11400000, guid: b952c784efa0c4a6aa87458b7c46574c, type: 2} 22 | _valueAsButton: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/Common/Input/MovementCallbackContextInterpreter.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7cef7c3529da46778b6c3457f50eb5b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/MovementInput.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: f76a04b727336433cb49bbba3dbe9175, type: 3} 13 | m_Name: MovementInput 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _id: 17 | _value: {x: 0, y: 0} 18 | _changed: {fileID: 0} 19 | _changedWithHistory: {fileID: 0} 20 | _triggerChangedOnOnEnable: 0 21 | _triggerChangedWithHistoryOnOnEnable: 0 22 | _oldValue: {x: 0, y: 0} 23 | _initialValue: {x: 0, y: 0} 24 | _preChangeTransformers: [] 25 | -------------------------------------------------------------------------------- /Assets/Common/Input/MovementInput.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b952c784efa0c4a6aa87458b7c46574c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingDown.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: 1a52ef257dc24452785b714bb0ae0008, type: 3} 13 | m_Name: OnShootingDown 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 0 18 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingDown.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c64ec8b6f8794f1a8be090c4f561e90 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingLeft.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: 1a52ef257dc24452785b714bb0ae0008, type: 3} 13 | m_Name: OnShootingLeft 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 0 18 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingLeft.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a1fe4c58350744389f230c9c18ecd0f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingRight.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: 1a52ef257dc24452785b714bb0ae0008, type: 3} 13 | m_Name: OnShootingRight 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 0 18 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingRight.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 950aac376c1d64a479a06f7355813534 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingUp.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: 1a52ef257dc24452785b714bb0ae0008, type: 3} 13 | m_Name: OnShootingUp 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 0 18 | -------------------------------------------------------------------------------- /Assets/Common/Input/OnShootingUp.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79660c28ed2954c4daa4dfdaaa523f07 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/PlayerMove.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityAtoms.BaseAtoms; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// Simple move script for the Player. 8 | /// 9 | [AddComponentMenu("Unity Atoms/Examples/PlayerMove")] 10 | public class PlayerMove : MonoBehaviour 11 | { 12 | [SerializeField] 13 | private Vector2Variable _movementInput; 14 | 15 | private void Update() 16 | { 17 | GetComponent().Move(_movementInput.Value, 5f, Time.deltaTime); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /Assets/Common/Input/PlayerMove.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe09a2350f1f64d15b116366c3e6630f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingDownCallbackContextInterpreter.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: b8db79be4274a0145b4f5c655df19225, type: 3} 13 | m_Name: ShootingDownCallbackContextInterpreter 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _started: {fileID: 0} 17 | _performed: {fileID: 11400000, guid: 6c64ec8b6f8794f1a8be090c4f561e90, type: 2} 18 | _canceled: {fileID: 0} 19 | _waiting: {fileID: 0} 20 | _disabled: {fileID: 0} 21 | _value: {fileID: 0} 22 | _valueAsButton: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingDownCallbackContextInterpreter.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fca5bed70eb7e422ab1687d879872650 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingLeftCallbackContextInterpreter.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: b8db79be4274a0145b4f5c655df19225, type: 3} 13 | m_Name: ShootingLeftCallbackContextInterpreter 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _started: {fileID: 0} 17 | _performed: {fileID: 11400000, guid: 1a1fe4c58350744389f230c9c18ecd0f, type: 2} 18 | _canceled: {fileID: 0} 19 | _waiting: {fileID: 0} 20 | _disabled: {fileID: 0} 21 | _value: {fileID: 0} 22 | _valueAsButton: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingLeftCallbackContextInterpreter.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dfa466f1136794e6280b39e8d9da8c19 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingRightCallbackContextInterpreter.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: b8db79be4274a0145b4f5c655df19225, type: 3} 13 | m_Name: ShootingRightCallbackContextInterpreter 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _started: {fileID: 0} 17 | _performed: {fileID: 11400000, guid: 950aac376c1d64a479a06f7355813534, type: 2} 18 | _canceled: {fileID: 0} 19 | _waiting: {fileID: 0} 20 | _disabled: {fileID: 0} 21 | _value: {fileID: 0} 22 | _valueAsButton: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingRightCallbackContextInterpreter.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef17971b2601e4e0586c7e79524a1a3c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingUpCallbackContextInterpreter.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: b8db79be4274a0145b4f5c655df19225, type: 3} 13 | m_Name: ShootingUpCallbackContextInterpreter 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _started: {fileID: 0} 17 | _performed: {fileID: 11400000, guid: 79660c28ed2954c4daa4dfdaaa523f07, type: 2} 18 | _canceled: {fileID: 0} 19 | _waiting: {fileID: 0} 20 | _disabled: {fileID: 0} 21 | _value: {fileID: 0} 22 | _valueAsButton: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/Common/Input/ShootingUpCallbackContextInterpreter.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55f39a1f960994082ac7ca2a59c5c2c4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90fb67e49d52f458fba2277fd38ae43d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/Sprites/Square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unity-atoms/unity-atoms-examples/04675cff4231bbcc2d9f508bdc1c2f44c24aa493/Assets/Common/Sprites/Square.png -------------------------------------------------------------------------------- /Assets/Common/Sprites/Square.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcb9bdff5d4664c74a932c679135aff5 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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: 0 35 | aniso: 1 36 | mipBias: 0 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 3 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 4 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 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: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: 4 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 1 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: 77 | - - {x: -2, y: -2} 78 | - {x: -2, y: 2} 79 | - {x: 2, y: 2} 80 | - {x: 2, y: -2} 81 | physicsShape: 82 | - - {x: -2, y: -2} 83 | - {x: -2, y: 2} 84 | - {x: 2, y: 2} 85 | - {x: 2, y: -2} 86 | bones: [] 87 | spriteID: e5460c57af88340f99d55d782eaad19e 88 | internalID: 0 89 | vertices: [] 90 | indices: 91 | edges: [] 92 | weights: [] 93 | secondaryTextures: [] 94 | spritePackingTag: 95 | pSDRemoveMatte: 0 96 | pSDShowRemoveMatteOption: 0 97 | userData: 98 | assetBundleName: 99 | assetBundleVariant: 100 | -------------------------------------------------------------------------------- /Assets/Common/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d093fbd43b1a40afa13a67f7c3657c8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/HealthBar.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55e062114b35d41fe9926ca9d7d82413 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/HealthBar/HealthBar.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using UnityAtoms.BaseAtoms; 4 | 5 | namespace UnityAtoms.Examples 6 | { 7 | /// 8 | /// A healthbar component that sets the fill amount of its associated UI Image accordingly. 9 | /// 10 | [AddComponentMenu("Unity Atoms/Examples/HealthBar")] 11 | public class HealthBar : MonoBehaviour 12 | { 13 | public IntReference InitialHealth { get => _initialHealth; } 14 | 15 | [SerializeField] 16 | private IntReference _initialHealth = null; 17 | 18 | [SerializeField] 19 | private Image _image; 20 | 21 | void Awake() 22 | { 23 | if (_image == null) 24 | { 25 | _image = GetComponent(); 26 | } 27 | } 28 | 29 | public void HealthChanged(int health) => _image.fillAmount = 1.0f * health / _initialHealth.Value; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Common/UI/HealthBar/HealthBar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbd80c08b2c1349c0839fcab63bcf9a3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Common/UI/MenuButton.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48ddcc0576215451b89bb724b269f95b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/MenuButton/OnMenuClicked.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: 04d35e2eb934747da9d77a3af62bb8ca, type: 3} 13 | m_Name: OnMenuClicked 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when the menu button is clicked. 16 | _replayBufferSize: 1 17 | -------------------------------------------------------------------------------- /Assets/Common/UI/MenuButton/OnMenuClicked.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6434f074450b40fbb398ffe95df8fbb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/MenuButton/SetUIStateSecond.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: f796f0a47da0e421cb954ef7aa235812, type: 3} 13 | m_Name: SetUIStateSecond 14 | m_EditorClassIdentifier: 15 | _developerDescription: Sets the UI State to "Second". 16 | _variable: {fileID: 11400000, guid: ca4bd447b40154988be601bad9c84506, type: 2} 17 | _value: 18 | _usage: 1 19 | _value: 20 | _constant: {fileID: 11400000, guid: 0f191ae005f2448dfb420563d3f089a7, type: 2} 21 | _variable: {fileID: 0} 22 | _variableInstancer: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/Common/UI/MenuButton/SetUIStateSecond.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23bac2fbe8e7545e78e859bde7d6573c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/QuitButton.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2d1db6f1b7be45348083ee45e25b7ef 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/QuitButton/OnQuitClicked.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: 04d35e2eb934747da9d77a3af62bb8ca, type: 3} 13 | m_Name: OnQuitClicked 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when the quit application button is clicked. 16 | _replayBufferSize: 1 17 | -------------------------------------------------------------------------------- /Assets/Common/UI/QuitButton/OnQuitClicked.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da495ab8344c04faaa60b210efd9e317 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/QuitButton/QuitApplication.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: efd09b740ed5a4ae0be92b4b95bead40, type: 3} 13 | m_Name: QuitApplication 14 | m_EditorClassIdentifier: 15 | _developerDescription: VoidAction that quits the application. 16 | -------------------------------------------------------------------------------- /Assets/Common/UI/QuitButton/QuitApplication.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ec7260c4832945c8b7bc4bb1cd57ff2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResetHealthButton.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59b2d554ff2bd4d4e83127b588dfb6eb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResetHealthButton/OnResetHealthClicked.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: 04d35e2eb934747da9d77a3af62bb8ca, type: 3} 13 | m_Name: OnResetHealthClicked 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when the reset health button is clicked. 16 | _replayBufferSize: 1 17 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResetHealthButton/OnResetHealthClicked.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b9a2b51edbbb543bd87d8b8a1275f3b7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResumeButton.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8d4850e83c774527956af298ecb94a7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResumeButton/OnResumeClicked.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: 04d35e2eb934747da9d77a3af62bb8ca, type: 3} 13 | m_Name: OnResumeClicked 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when the resume button is clicked. 16 | _replayBufferSize: 1 17 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResumeButton/OnResumeClicked.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5f344a0d70af41f9a7288e5572f0234 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResumeButton/SetUIStateFirst.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: f796f0a47da0e421cb954ef7aa235812, type: 3} 13 | m_Name: SetUIStateFirst 14 | m_EditorClassIdentifier: 15 | _developerDescription: Sets the UI State to "First". 16 | _variable: {fileID: 11400000, guid: ca4bd447b40154988be601bad9c84506, type: 2} 17 | _value: 18 | _usage: 1 19 | _value: 20 | _constant: {fileID: 11400000, guid: cb8238ac7ef5d407fb31219fe114d2ae, type: 2} 21 | _variable: {fileID: 0} 22 | _variableInstancer: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/Common/UI/ResumeButton/SetUIStateFirst.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffb54297f78ca406286c62b7a33578df 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Common/UnitHealth.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityAtoms.BaseAtoms; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// A component that contains the Player's health. 8 | /// 9 | public class UnitHealth : MonoBehaviour 10 | { 11 | public int Health { get => _health.Value; set => _health.Value = value; } 12 | 13 | 14 | [SerializeField] 15 | private IntReference _health; 16 | } 17 | } -------------------------------------------------------------------------------- /Assets/Common/UnitHealth.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 521fccafae8ab41e8b91a6aebdf2a1f1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fec437b5ab1cd4af9a4ea069d1610fcf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Common.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32f3c8136b3654e0f893f4821d7ac08f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Common/DestroyMe.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Assertions; 3 | using UnityAtoms.BaseAtoms; 4 | 5 | namespace UnityAtoms.Examples 6 | { 7 | /// 8 | /// Script intending to destroy the GameObject it's attached to. 9 | /// 10 | public class DestroyMe : MonoBehaviour 11 | { 12 | [SerializeField] 13 | FloatReference _delay = new FloatReference(-1f); 14 | 15 | void Start() 16 | { 17 | Assert.IsNotNull(_delay); 18 | if (_delay.Value >= 0f) 19 | { 20 | Destroy(gameObject, _delay.Value); 21 | } 22 | } 23 | 24 | public void DestroyImmediate() => Destroy(gameObject); 25 | 26 | public void DestroyIfZeroOrBelow(int value) 27 | { 28 | if (value <= 0) 29 | { 30 | DestroyImmediate(); 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Common/DestroyMe.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a57cc968d2764ec0bc2de2bd308d451 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Common/Rigidbody2DExtensions.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UnityAtoms.Examples 4 | { 5 | public static class Rigidbody2DExtensions 6 | { 7 | /// 8 | /// Simple extension to move a Rigidbody2D using input. 9 | /// 10 | /// The Rigidbody2D. 11 | /// Move input. 12 | /// The speed multiplier. 13 | /// Time since last Update tick. 14 | public static void Move(this Rigidbody2D body, Vector2 input, float speed, float deltaTime) 15 | { 16 | var direction = input.normalized; 17 | var targetVelocity = direction * speed; 18 | body.velocity = Vector2.Lerp(body.velocity, targetVelocity, 10f * deltaTime); 19 | 20 | if (direction.magnitude > 0f) 21 | { 22 | float lookAtTargetAngle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg; 23 | body.transform.rotation = Quaternion.AngleAxis(lookAtTargetAngle, Vector3.forward); 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Common/Rigidbody2DExtensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65ccada6f42ae49518ebdb6b31b679eb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Common/SyncPositionWithVariable.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityAtoms.BaseAtoms; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// Script to sync the Vector3 Variable with this GameObject's current position. 8 | /// 9 | public class SyncPositionWithVariable : MonoBehaviour 10 | { 11 | [SerializeField] 12 | private Vector3Reference _reference; 13 | 14 | void LateUpdate() 15 | { 16 | _reference.Value = transform.position; 17 | } 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Common/SyncPositionWithVariable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a208484d52a9148f2b664132607d7deb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d9148141bd7144726a78ecbf2c6f8495 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/Enemies.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: ecd0f51e6cdda4338b8adc4542076829, type: 3} 13 | m_Name: Enemies 14 | m_EditorClassIdentifier: 15 | _developerDescription: A list of Enemy data that will be added to this list whenever 16 | a new Enemy is instantiated. 17 | _id: 18 | _value: 19 | _serializedList: [] 20 | _added: {fileID: 11400000, guid: 1f43d5301a4b244c6873d8cf5e465083, type: 2} 21 | _removed: {fileID: 11400000, guid: bbead2c649eb14ada9e9672807bbd0b2, type: 2} 22 | _cleared: {fileID: 0} 23 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/Enemies.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17112074d7b52489893e5dce0c45df02 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/Enemy.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1326bc3a5a491414d936c2cbaaf52c53 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyAdded.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: 10a2b6c04f1da42f0ba0b469ec86f689, type: 3} 13 | m_Name: EnemyAdded 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when an Enemy is added to the Enemies List. 16 | _replayBufferSize: 0 17 | _inspectorRaiseValue: {fileID: 0} 18 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyAdded.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f43d5301a4b244c6873d8cf5e465083 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyDataAddedBase.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: 10a2b6c04f1da42f0ba0b469ec86f689, type: 3} 13 | m_Name: EnemyDataAddedBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when Enemy data is added to an Enemy Data Collection. 16 | This is a base Event that will be used as a base in an Instancer. 17 | _replayBufferSize: 2 18 | _inspectorRaiseValue: {fileID: 0} 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyDataAddedBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e940aaaaaca2e4ccfa65f3159e6cf8ec 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyDataBase.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: f905a459d97c84162be2fdcd2bc3a39a, type: 3} 13 | m_Name: EnemyDataBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: A Collection of Enemy data. This is a base Collection that 16 | will be used as a base in an Instancer. 17 | _id: 18 | _value: 19 | _serializedKeys: [] 20 | _serializedValues: [] 21 | _duplicateKeyIndices: 22 | _added: {fileID: 11400000, guid: e940aaaaaca2e4ccfa65f3159e6cf8ec, type: 2} 23 | _removed: {fileID: 11400000, guid: 955d19fc5a0a9412a8e3444652119b2d, type: 2} 24 | _cleared: {fileID: 0} 25 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyDataBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c1c7dbe7b14d458892c7621ea08daa5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyDataRemovedBase.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: 10a2b6c04f1da42f0ba0b469ec86f689, type: 3} 13 | m_Name: EnemyDataRemovedBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when Enemy data is removed from the Enemy data Collection 16 | its associated with. This is a base Event used for creating in memory copies. 17 | _replayBufferSize: 2 18 | _inspectorRaiseValue: {fileID: 0} 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyDataRemovedBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 955d19fc5a0a9412a8e3444652119b2d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyHealthBase.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: cf8a67b68db3d4650908f8cf6adeda60, type: 3} 13 | m_Name: EnemyHealthBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: This is a base Variable used for creating in memory copies 16 | of Enemy health. 17 | _id: Health 18 | _value: 20 19 | Changed: {fileID: 11400000, guid: d481ae3b5fe854cd187b0e79017e8d1e, type: 2} 20 | ChangedWithHistory: {fileID: 0} 21 | _oldValue: 20 22 | _initialValue: 20 23 | _preChangeTransformers: [] 24 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyHealthBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16bf069429937474390ce1ed7d17a8bf 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyHealthChangedBase.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: 9fce12a4beec24778830e555cb6e5ca3, type: 3} 13 | m_Name: EnemyHealthChangedBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when Enemy health is changed. This is a base Event 16 | used for creating in memory copies. 17 | _replayBufferSize: 1 18 | _inspectorRaiseValue: 0 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyHealthChangedBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d481ae3b5fe854cd187b0e79017e8d1e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyMovement.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityAtoms.BaseAtoms; 3 | using UnityAtoms.Tags; 4 | using UnityAtoms.FSM; 5 | 6 | namespace UnityAtoms.Examples 7 | { 8 | /// 9 | /// Moves the Enemy based on the state of the enemy. 10 | /// 11 | public class EnemyMovement : MonoBehaviour 12 | { 13 | [SerializeField] 14 | private StringReference _tagToTarget; 15 | 16 | [SerializeField] 17 | private FloatReference _shootingRange = new FloatReference(5f); 18 | 19 | [SerializeField] 20 | private FloatReference _moveSpeedMultiplier = new FloatReference(2f); 21 | 22 | [SerializeField] 23 | private FiniteStateMachineReference _enemyState; 24 | 25 | 26 | void Awake() 27 | { 28 | Transform target = null; 29 | AtomTags.OnInitialization(() => target = AtomTags.FindByTag(_tagToTarget.Value).transform); 30 | var body = GetComponent(); 31 | 32 | _enemyState.Machine.OnUpdate((deltaTime, value) => 33 | { 34 | if (target) 35 | { 36 | body.Move((target.position - transform.position), value == "CHASING" ? 2f : 0f, deltaTime); 37 | } 38 | else 39 | { 40 | body.Move(Vector2.zero, 0f, deltaTime); 41 | } 42 | }, gameObject); 43 | _enemyState.Machine.DispatchWhen(command: "ATTACK", (value) => target != null && value == "CHASING" && (_shootingRange.Value >= Vector3.Distance(target.position, transform.position)), gameObject); 44 | _enemyState.Machine.DispatchWhen(command: "CHASE", (value) => target != null && value == "ATTACKING" && (_shootingRange.Value < Vector3.Distance(target.position, transform.position)), gameObject); 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyMovement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cf9e86ff89e64f7fb046969f9297b7f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyPositionBase.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: 2f868f8b3380b47a38cf0b95f42c134b, type: 3} 13 | m_Name: EnemyPositionBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: This is a base Variable used for creating in memory copies 16 | of Enemy position. 17 | _id: Position 18 | _value: {x: 0, y: 0, z: 0} 19 | Changed: {fileID: 11400000, guid: d422efc48be6541469a4a6467ad76cd7, type: 2} 20 | ChangedWithHistory: {fileID: 0} 21 | _oldValue: {x: 0, y: 0, z: 0} 22 | _initialValue: {x: 0, y: 0, z: 0} 23 | _preChangeTransformers: [] 24 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyPositionBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f133550ba7db7498c84c4b53cc471932 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyPositionChangedBase.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: c19800e64279c44e1ae4529ee6a2d780, type: 3} 13 | m_Name: EnemyPositionChangedBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when Enemy position is changed. This is a base Event 16 | used for creating in memory copies. 17 | _replayBufferSize: 1 18 | _inspectorRaiseValue: {x: 0, y: 0, z: 0} 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyPositionChangedBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d422efc48be6541469a4a6467ad76cd7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyRemoved.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: 10a2b6c04f1da42f0ba0b469ec86f689, type: 3} 13 | m_Name: EnemyRemoved 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when an Enemy is removed from Enemies list. 16 | _replayBufferSize: 0 17 | _inspectorRaiseValue: {fileID: 0} 18 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyRemoved.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbead2c649eb14ada9e9672807bbd0b2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyShooting.cs: -------------------------------------------------------------------------------- 1 | using UnityAtoms.BaseAtoms; 2 | using UnityAtoms.FSM; 3 | using UnityEngine; 4 | using UnityAtoms.Tags; 5 | 6 | namespace UnityAtoms.Examples 7 | { 8 | /// 9 | /// Scipt that listens to the state of the enemy and shoots towards the Player if it's in the correct state. 10 | /// 11 | public class EnemyShooting : MonoBehaviour 12 | { 13 | [SerializeField] 14 | private StringReference _tagToTarget; 15 | [SerializeField] 16 | private FiniteStateMachineReference _enemyState; 17 | [SerializeField] 18 | private GameObject _projectile; 19 | 20 | void Awake() 21 | { 22 | Transform target = null; 23 | AtomTags.OnInitialization(() => target = AtomTags.FindByTag(_tagToTarget.Value).transform); 24 | 25 | _enemyState.Machine.OnStateCooldown("ATTACKING", (value) => 26 | { 27 | if (target) 28 | { 29 | var spawnPos = transform.position + transform.right; 30 | Instantiate(_projectile, spawnPos, transform.rotation); 31 | } 32 | }, gameObject); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyShooting.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6d7e87282ce6479184ce08bf6dbe121 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyShootingRange.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: 708376110c05a4e20b0ce756930c3bb0, type: 3} 13 | m_Name: EnemyShootingRange 14 | m_EditorClassIdentifier: 15 | _developerDescription: Shooting range of an enemy, meaning the min distance from 16 | the Player the Enemy has to be in order to attack. 17 | _id: 18 | _value: 5 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyShootingRange.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8eeed365578d048ff9b2098ce261db1c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyStateChangedBase.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: 75feba4dec8d44f0fb83f34e749e4dc3, type: 3} 13 | m_Name: EnemyStateChangedBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: Event raised when Enemy state is changed. This is a base 16 | Event used for creating in memory copies. 17 | _replayBufferSize: 0 18 | _inspectorRaiseValue: 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyStateChangedBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da1401f0da9c44ed98d933c0f6b86d10 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyStateMachineBase.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: a56d454e768904df09296076c1aaea26, type: 3} 13 | m_Name: EnemyStateMachineBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: A simple FSM for Enemy state. 16 | _id: 17 | _value: CHASING 18 | Changed: {fileID: 11400000, guid: da1401f0da9c44ed98d933c0f6b86d10, type: 2} 19 | ChangedWithHistory: {fileID: 0} 20 | _oldValue: CHASING 21 | _initialValue: CHASING 22 | _preChangeTransformers: [] 23 | _transitionStarted: {fileID: 0} 24 | _completeCurrentTransition: {fileID: 0} 25 | _states: 26 | _list: 27 | - _id: 28 | _usage: 0 29 | _value: CHASING 30 | _constant: {fileID: 0} 31 | _variable: {fileID: 0} 32 | _variableInstancer: {fileID: 0} 33 | _cooldown: 34 | _usage: 0 35 | _value: 0 36 | _constant: {fileID: 0} 37 | _variable: {fileID: 0} 38 | _variableInstancer: {fileID: 0} 39 | _subMachine: {fileID: 0} 40 | - _id: 41 | _usage: 0 42 | _value: ATTACKING 43 | _constant: {fileID: 0} 44 | _variable: {fileID: 0} 45 | _variableInstancer: {fileID: 0} 46 | _cooldown: 47 | _usage: 0 48 | _value: 2 49 | _constant: {fileID: 0} 50 | _variable: {fileID: 0} 51 | _variableInstancer: {fileID: 0} 52 | _subMachine: {fileID: 0} 53 | _transitions: 54 | _list: 55 | - _fromState: 56 | _usage: 0 57 | _value: CHASING 58 | _constant: {fileID: 0} 59 | _variable: {fileID: 0} 60 | _variableInstancer: {fileID: 0} 61 | _toState: 62 | _usage: 0 63 | _value: ATTACKING 64 | _constant: {fileID: 0} 65 | _variable: {fileID: 0} 66 | _variableInstancer: {fileID: 0} 67 | _command: 68 | _usage: 0 69 | _value: ATTACK 70 | _constant: {fileID: 0} 71 | _variable: {fileID: 0} 72 | _variableInstancer: {fileID: 0} 73 | _testCondition: {fileID: 0} 74 | _raiseEventToCompleteTransition: 0 75 | - _fromState: 76 | _usage: 0 77 | _value: ATTACKING 78 | _constant: {fileID: 0} 79 | _variable: {fileID: 0} 80 | _variableInstancer: {fileID: 0} 81 | _toState: 82 | _usage: 0 83 | _value: CHASING 84 | _constant: {fileID: 0} 85 | _variable: {fileID: 0} 86 | _variableInstancer: {fileID: 0} 87 | _command: 88 | _usage: 0 89 | _value: CHASE 90 | _constant: {fileID: 0} 91 | _variable: {fileID: 0} 92 | _variableInstancer: {fileID: 0} 93 | _testCondition: {fileID: 0} 94 | _raiseEventToCompleteTransition: 0 95 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/EnemyStateMachineBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 574b826f5842e400eb4cb44d63b60077 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/TagEnemy.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: 44fe6f8275613408d9adc4435b52bf4f, type: 3} 13 | m_Name: TagEnemy 14 | m_EditorClassIdentifier: 15 | _developerDescription: Tag for identifying an Enemy. 16 | _id: 17 | _value: Enemy 18 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Enemy/TagEnemy.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 548d717e096e245aa93d91687b22e1f7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c5e603952dc542b6b8384e822b3ab36 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/EnemyWaveManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using UnityEngine; 3 | using UnityEngine.Assertions; 4 | using UnityAtoms.BaseAtoms; 5 | 6 | namespace UnityAtoms.Examples 7 | { 8 | /// 9 | /// Manager responsible of spawning enmeies and keep track of which enemy wave we are currently facing. 10 | /// 11 | public class EnemyWaveManager : MonoBehaviour 12 | { 13 | [SerializeField] 14 | private Transform _player; 15 | 16 | [SerializeField] 17 | private GameObject _enemyPrefab; 18 | 19 | [SerializeField] 20 | private GameObjectValueList _spawnedEnemies; 21 | 22 | [SerializeField] 23 | private IntReference _waveCount = new IntReference(0); 24 | 25 | void Awake() 26 | { 27 | Assert.IsNotNull(_player); 28 | Assert.IsNotNull(_enemyPrefab); 29 | Assert.IsNotNull(_spawnedEnemies); 30 | Assert.IsNotNull(_waveCount); 31 | } 32 | 33 | private Coroutine _waveRoutine; 34 | 35 | IEnumerator StartWaves() 36 | { 37 | yield return new WaitForSeconds(3); 38 | 39 | for (var i = 0; i < _waveCount.Value; ++i) 40 | { 41 | if (_player != null) 42 | { 43 | var randomMagnitude = 5f; 44 | var randomPosAroundPlayer = new Vector3( 45 | Random.Range(_player.transform.position.x - randomMagnitude, _player.transform.position.x + randomMagnitude), 46 | Random.Range(_player.transform.position.y - randomMagnitude, _player.transform.position.y + randomMagnitude), 47 | 0f 48 | ); 49 | var enemy = Instantiate(_enemyPrefab, randomPosAroundPlayer, Quaternion.identity); 50 | } 51 | yield return new WaitForSeconds(0.1f); 52 | } 53 | } 54 | 55 | public void StartWaveIfNoEnemiesLeft(GameObject enemyToRemove) 56 | { 57 | if (_spawnedEnemies.Count <= 0) 58 | { 59 | _waveCount.Value++; 60 | if (_waveRoutine != null) 61 | { 62 | StopCoroutine(_waveRoutine); 63 | } 64 | _waveRoutine = StartCoroutine(StartWaves()); 65 | } 66 | } 67 | 68 | public void StartWavesIfInGame(string gameState) 69 | { 70 | if (gameState == "InGame") 71 | { 72 | _waveCount.Value = 1; 73 | if (_waveRoutine != null) 74 | { 75 | StopCoroutine(_waveRoutine); 76 | } 77 | _waveRoutine = StartCoroutine(StartWaves()); 78 | } 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/EnemyWaveManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf3f2ed232a5d4421a7480d00f1ac6ed 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/EnemyWaveManager.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1788459492122731499 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 1788459492122731501} 12 | - component: {fileID: 1788459492122731500} 13 | m_Layer: 0 14 | m_Name: EnemyWaveManager 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!4 &1788459492122731501 21 | Transform: 22 | m_ObjectHideFlags: 0 23 | m_CorrespondingSourceObject: {fileID: 0} 24 | m_PrefabInstance: {fileID: 0} 25 | m_PrefabAsset: {fileID: 0} 26 | m_GameObject: {fileID: 1788459492122731499} 27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 28 | m_LocalPosition: {x: 0, y: 0, z: 0} 29 | m_LocalScale: {x: 1, y: 1, z: 1} 30 | m_Children: [] 31 | m_Father: {fileID: 0} 32 | m_RootOrder: 0 33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 34 | --- !u!114 &1788459492122731500 35 | MonoBehaviour: 36 | m_ObjectHideFlags: 0 37 | m_CorrespondingSourceObject: {fileID: 0} 38 | m_PrefabInstance: {fileID: 0} 39 | m_PrefabAsset: {fileID: 0} 40 | m_GameObject: {fileID: 1788459492122731499} 41 | m_Enabled: 1 42 | m_EditorHideFlags: 0 43 | m_Script: {fileID: 11500000, guid: cf3f2ed232a5d4421a7480d00f1ac6ed, type: 3} 44 | m_Name: 45 | m_EditorClassIdentifier: 46 | _player: {fileID: 0} 47 | _enemyPrefab: {fileID: 2421445419809145576, guid: 1326bc3a5a491414d936c2cbaaf52c53, 48 | type: 3} 49 | _spawnedEnemies: {fileID: 11400000, guid: 118b16031adba41c2921b637788fa016, type: 2} 50 | _waveCount: 51 | _usage: 2 52 | _value: 0 53 | _constant: {fileID: 0} 54 | _variable: {fileID: 11400000, guid: fc9fadbe5ec824d7eb357f1f2e07a5f3, type: 2} 55 | _variableInstancer: {fileID: 0} 56 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/EnemyWaveManager.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2506bc32201bf46ff94ddb453c913fc0 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/SpawnedEnemies.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: ba615354262bb46d7add759502baf53f, type: 3} 13 | m_Name: SpawnedEnemies 14 | m_EditorClassIdentifier: 15 | _developerDescription: List of spawned enemies in the scene. 16 | Cleared: {fileID: 0} 17 | Added: {fileID: 0} 18 | Removed: {fileID: 11400000, guid: 30353c14e8a09474b853aff46b7e9c40, type: 2} 19 | list: [] 20 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/SpawnedEnemies.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 118b16031adba41c2921b637788fa016 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/SpawnedEnemyRemoved.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: 09747f8c6d9954e4a81c09bb7f6e44a6, type: 3} 13 | m_Name: SpawnedEnemyRemoved 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when an Enemy is removed from the Spawned Enemies 16 | list. 17 | _replayBufferSize: 1 18 | _inspectorRaiseValue: {fileID: 0} 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/SpawnedEnemyRemoved.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30353c14e8a09474b853aff46b7e9c40 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/WaveCount.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: cf8a67b68db3d4650908f8cf6adeda60, type: 3} 13 | m_Name: WaveCount 14 | m_EditorClassIdentifier: 15 | _developerDescription: Keeps track of the enemy wave count. 16 | _id: 17 | _value: 0 18 | Changed: {fileID: 11400000, guid: 2b556070e50ea4f83b41ead9f8583bc5, type: 2} 19 | ChangedWithHistory: {fileID: 0} 20 | _oldValue: 0 21 | _initialValue: 0 22 | _preChangeTransformers: [] 23 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/WaveCount.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc9fadbe5ec824d7eb357f1f2e07a5f3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/WaveCountChanged.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: 9fce12a4beec24778830e555cb6e5ca3, type: 3} 13 | m_Name: WaveCountChanged 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when the wave count changes. 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 0 18 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/EnemyWaveManager/WaveCountChanged.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b556070e50ea4f83b41ead9f8583bc5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/GlobalState.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f8b4ffc287064c2c8e2d69bbdb8bcd3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/GlobalState/GameStateDispatcher.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityAtoms.FSM; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// Dispatches commands to the FSM. 8 | /// 9 | public class GameStateDispatcher : MonoBehaviour 10 | { 11 | [SerializeField] 12 | private FiniteStateMachineReference _gameStateRef; 13 | 14 | public void DispatchGameOverIfDead(int health) 15 | { 16 | if (health <= 0) 17 | { 18 | _gameStateRef.Machine.Dispatch("SetGameOver"); 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Assets/InfiniteWaves/GlobalState/GameStateDispatcher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 578b39322c0ba4e3fb1c53fbaf8ea6df 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/GlobalState/GameStateMachine.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: a56d454e768904df09296076c1aaea26, type: 3} 13 | m_Name: GameStateMachine 14 | m_EditorClassIdentifier: 15 | _developerDescription: Simple FSM keeping track of the main game state. 16 | _id: 17 | _value: GameOver 18 | Changed: {fileID: 11400000, guid: 3979f8535cda044809f98bde2acbadcd, type: 2} 19 | ChangedWithHistory: {fileID: 0} 20 | _oldValue: InGame 21 | _initialValue: InGame 22 | _preChangeTransformers: [] 23 | _transitionStarted: {fileID: 0} 24 | _completeCurrentTransition: {fileID: 0} 25 | _states: 26 | _list: 27 | - _id: 28 | _usage: 0 29 | _value: InGame 30 | _constant: {fileID: 0} 31 | _variable: {fileID: 0} 32 | _variableInstancer: {fileID: 0} 33 | _cooldown: 34 | _usage: 0 35 | _value: 0 36 | _constant: {fileID: 0} 37 | _variable: {fileID: 0} 38 | _variableInstancer: {fileID: 0} 39 | _subMachine: {fileID: 0} 40 | - _id: 41 | _usage: 0 42 | _value: GameOver 43 | _constant: {fileID: 0} 44 | _variable: {fileID: 0} 45 | _variableInstancer: {fileID: 0} 46 | _cooldown: 47 | _usage: 0 48 | _value: 0 49 | _constant: {fileID: 0} 50 | _variable: {fileID: 0} 51 | _variableInstancer: {fileID: 0} 52 | _subMachine: {fileID: 0} 53 | _transitions: 54 | _list: 55 | - _fromState: 56 | _usage: 0 57 | _value: InGame 58 | _constant: {fileID: 0} 59 | _variable: {fileID: 0} 60 | _variableInstancer: {fileID: 0} 61 | _toState: 62 | _usage: 0 63 | _value: GameOver 64 | _constant: {fileID: 0} 65 | _variable: {fileID: 0} 66 | _variableInstancer: {fileID: 0} 67 | _command: 68 | _usage: 0 69 | _value: SetGameOver 70 | _constant: {fileID: 0} 71 | _variable: {fileID: 0} 72 | _variableInstancer: {fileID: 0} 73 | _testCondition: {fileID: 0} 74 | _raiseEventToCompleteTransition: 0 75 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/GlobalState/GameStateMachine.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42e941e460d424571aa897b211cee70e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/InfiniteWaves.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1884ae14ccb814c8194f6b64dcf0af90 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Player.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 608e332102c7a46aebc71ad84256dacf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Player/DirectionIndicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unity-atoms/unity-atoms-examples/04675cff4231bbcc2d9f508bdc1c2f44c24aa493/Assets/InfiniteWaves/Player/DirectionIndicator.png -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Player/PlayerShooting.cs: -------------------------------------------------------------------------------- 1 | using UnityAtoms.BaseAtoms; 2 | using UnityEngine; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// Simple shooting scipt for the player using the arrow keys. 8 | /// 9 | public class PlayerShooting : MonoBehaviour 10 | { 11 | [SerializeField] 12 | private GameObject _projectile; 13 | 14 | [SerializeField] 15 | private StringConstant _playerTag; 16 | 17 | 18 | private enum Direction 19 | { 20 | Up, 21 | Down, 22 | Left, 23 | Right 24 | } 25 | void Shoot(Direction direction) 26 | { 27 | var shootDirection = Vector3.zero; 28 | var rot = Quaternion.identity; 29 | switch (direction) 30 | { 31 | case Direction.Up: 32 | { 33 | shootDirection = Vector3.up; 34 | rot = Quaternion.Euler(0f, 0f, 90f); 35 | break; 36 | } 37 | case Direction.Down: 38 | { 39 | shootDirection = Vector3.down; 40 | rot = Quaternion.Euler(0f, 0f, -90f); 41 | break; 42 | } 43 | case Direction.Right: 44 | { 45 | shootDirection = Vector3.right; 46 | rot = Quaternion.Euler(0f, 0f, 0f); 47 | break; 48 | } 49 | case Direction.Left: 50 | { 51 | shootDirection = Vector3.left; 52 | rot = Quaternion.Euler(0f, 0f, 180f); 53 | break; 54 | } 55 | } 56 | 57 | var spawnPos = transform.position + shootDirection * 0.6f; 58 | var projectile = Instantiate(_projectile, spawnPos, rot); 59 | projectile.GetComponent().TagsAffected.Remove(_playerTag); // Turn off friendly fire 60 | } 61 | 62 | public void ShootUp() 63 | { 64 | Shoot(Direction.Up); 65 | } 66 | 67 | public void ShootDown() 68 | { 69 | Shoot(Direction.Down); 70 | } 71 | 72 | public void ShootLeft() 73 | { 74 | Shoot(Direction.Left); 75 | } 76 | 77 | public void ShootRight() 78 | { 79 | Shoot(Direction.Right); 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Player/PlayerShooting.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eefa918545d944306849e05beda6ac63 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b76e2bb92c89e4b3dbb4d33198adb982 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/MoveInDirection.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityAtoms.BaseAtoms; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// Sets a constant velocity on the attached Rigidbody 2D. 8 | /// 9 | [RequireComponent(typeof(Rigidbody2D))] 10 | public class MoveInDirection : MonoBehaviour 11 | { 12 | public float Speed { set => _speed.Value = value; } 13 | 14 | [SerializeField] 15 | private FloatReference _speed; 16 | 17 | private Rigidbody2D rb; 18 | 19 | void Start() 20 | { 21 | rb = GetComponent(); 22 | rb.isKinematic = true; 23 | } 24 | 25 | void Update() 26 | { 27 | rb.velocity = transform.right * _speed.Value; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/MoveInDirection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adf0d22e8586c4ddda7a4186d00cc32d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/Projectile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unity-atoms/unity-atoms-examples/04675cff4231bbcc2d9f508bdc1c2f44c24aa493/Assets/InfiniteWaves/Projectile/Projectile.png -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/Projectile.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &2729875676815699808 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 2544472235185267225} 12 | - component: {fileID: 1294875927} 13 | - component: {fileID: 1294875923} 14 | - component: {fileID: 1294875924} 15 | - component: {fileID: 1294875917} 16 | - component: {fileID: 1294875918} 17 | - component: {fileID: 1294875919} 18 | - component: {fileID: 1294875920} 19 | - component: {fileID: 1294875921} 20 | - component: {fileID: 1294875922} 21 | - component: {fileID: 1294875925} 22 | - component: {fileID: 1294875926} 23 | m_Layer: 0 24 | m_Name: Projectile 25 | m_TagString: Untagged 26 | m_Icon: {fileID: 0} 27 | m_NavMeshLayer: 0 28 | m_StaticEditorFlags: 0 29 | m_IsActive: 1 30 | --- !u!4 &2544472235185267225 31 | Transform: 32 | m_ObjectHideFlags: 0 33 | m_CorrespondingSourceObject: {fileID: 0} 34 | m_PrefabInstance: {fileID: 0} 35 | m_PrefabAsset: {fileID: 0} 36 | m_GameObject: {fileID: 2729875676815699808} 37 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 38 | m_LocalPosition: {x: 0, y: 0, z: 0} 39 | m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} 40 | m_Children: [] 41 | m_Father: {fileID: 0} 42 | m_RootOrder: 0 43 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 44 | --- !u!50 &1294875927 45 | Rigidbody2D: 46 | serializedVersion: 4 47 | m_ObjectHideFlags: 0 48 | m_CorrespondingSourceObject: {fileID: 0} 49 | m_PrefabInstance: {fileID: 0} 50 | m_PrefabAsset: {fileID: 0} 51 | m_GameObject: {fileID: 2729875676815699808} 52 | m_BodyType: 1 53 | m_Simulated: 1 54 | m_UseFullKinematicContacts: 0 55 | m_UseAutoMass: 0 56 | m_Mass: 1 57 | m_LinearDrag: 0 58 | m_AngularDrag: 0.05 59 | m_GravityScale: 1 60 | m_Material: {fileID: 0} 61 | m_Interpolate: 0 62 | m_SleepingMode: 1 63 | m_CollisionDetection: 0 64 | m_Constraints: 0 65 | --- !u!58 &1294875923 66 | CircleCollider2D: 67 | m_ObjectHideFlags: 0 68 | m_CorrespondingSourceObject: {fileID: 0} 69 | m_PrefabInstance: {fileID: 0} 70 | m_PrefabAsset: {fileID: 0} 71 | m_GameObject: {fileID: 2729875676815699808} 72 | m_Enabled: 1 73 | m_Density: 1 74 | m_Material: {fileID: 0} 75 | m_IsTrigger: 1 76 | m_UsedByEffector: 0 77 | m_UsedByComposite: 0 78 | m_Offset: {x: 0, y: 0} 79 | serializedVersion: 2 80 | m_Radius: 0.5 81 | --- !u!212 &1294875924 82 | SpriteRenderer: 83 | m_ObjectHideFlags: 0 84 | m_CorrespondingSourceObject: {fileID: 0} 85 | m_PrefabInstance: {fileID: 0} 86 | m_PrefabAsset: {fileID: 0} 87 | m_GameObject: {fileID: 2729875676815699808} 88 | m_Enabled: 1 89 | m_CastShadows: 0 90 | m_ReceiveShadows: 0 91 | m_DynamicOccludee: 1 92 | m_MotionVectors: 1 93 | m_LightProbeUsage: 1 94 | m_ReflectionProbeUsage: 1 95 | m_RayTracingMode: 0 96 | m_RenderingLayerMask: 1 97 | m_RendererPriority: 0 98 | m_Materials: 99 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} 100 | m_StaticBatchInfo: 101 | firstSubMesh: 0 102 | subMeshCount: 0 103 | m_StaticBatchRoot: {fileID: 0} 104 | m_ProbeAnchor: {fileID: 0} 105 | m_LightProbeVolumeOverride: {fileID: 0} 106 | m_ScaleInLightmap: 1 107 | m_ReceiveGI: 1 108 | m_PreserveUVs: 0 109 | m_IgnoreNormalsForChartDetection: 0 110 | m_ImportantGI: 0 111 | m_StitchLightmapSeams: 1 112 | m_SelectedEditorRenderState: 0 113 | m_MinimumChartSize: 4 114 | m_AutoUVMaxDistance: 0.5 115 | m_AutoUVMaxAngle: 89 116 | m_LightmapParameters: {fileID: 0} 117 | m_SortingLayerID: 0 118 | m_SortingLayer: 0 119 | m_SortingOrder: 0 120 | m_Sprite: {fileID: 21300000, guid: e73905c499d7b4660a64b7a956ebd018, type: 3} 121 | m_Color: {r: 0.9824066, g: 1, b: 0.8915094, a: 1} 122 | m_FlipX: 0 123 | m_FlipY: 0 124 | m_DrawMode: 0 125 | m_Size: {x: 1, y: 1} 126 | m_AdaptiveModeThreshold: 0.5 127 | m_SpriteTileMode: 0 128 | m_WasSpriteAssigned: 1 129 | m_MaskInteraction: 0 130 | m_SpriteSortPoint: 0 131 | --- !u!114 &1294875917 132 | MonoBehaviour: 133 | m_ObjectHideFlags: 0 134 | m_CorrespondingSourceObject: {fileID: 0} 135 | m_PrefabInstance: {fileID: 0} 136 | m_PrefabAsset: {fileID: 0} 137 | m_GameObject: {fileID: 2729875676815699808} 138 | m_Enabled: 1 139 | m_EditorHideFlags: 0 140 | m_Script: {fileID: 11500000, guid: d2458933140c54c9db0aec7a69c1b617, type: 3} 141 | m_Name: 142 | m_EditorClassIdentifier: 143 | _developerDescription: 144 | _unityEventResponse: 145 | m_PersistentCalls: 146 | m_Calls: 147 | - m_Target: {fileID: 1294875922} 148 | m_MethodName: DestroyImmediate 149 | m_Mode: 1 150 | m_Arguments: 151 | m_ObjectArgument: {fileID: 0} 152 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 153 | m_IntArgument: 0 154 | m_FloatArgument: 0 155 | m_StringArgument: 156 | m_BoolArgument: 0 157 | m_CallState: 2 158 | _actionResponses: [] 159 | _eventReference: 160 | _usage: 1 161 | _event: {fileID: 0} 162 | _eventInstancer: {fileID: 1294875925} 163 | --- !u!114 &1294875918 164 | MonoBehaviour: 165 | m_ObjectHideFlags: 0 166 | m_CorrespondingSourceObject: {fileID: 0} 167 | m_PrefabInstance: {fileID: 0} 168 | m_PrefabAsset: {fileID: 0} 169 | m_GameObject: {fileID: 2729875676815699808} 170 | m_Enabled: 1 171 | m_EditorHideFlags: 0 172 | m_Script: {fileID: 11500000, guid: 64882d9a6a5104b579ad078658f093c6, type: 3} 173 | m_Name: 174 | m_EditorClassIdentifier: 175 | _developerDescription: Listens for On Trigger 2D Events 176 | _unityEventResponse: 177 | m_PersistentCalls: 178 | m_Calls: 179 | - m_Target: {fileID: 1294875920} 180 | m_MethodName: Do 181 | m_Mode: 0 182 | m_Arguments: 183 | m_ObjectArgument: {fileID: 0} 184 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 185 | m_IntArgument: 0 186 | m_FloatArgument: 0 187 | m_StringArgument: 188 | m_BoolArgument: 0 189 | m_CallState: 2 190 | _actionResponses: [] 191 | _eventReference: 192 | _usage: 1 193 | _event: {fileID: 0} 194 | _eventInstancer: {fileID: 1294875919} 195 | _variable: {fileID: 0} 196 | _variableInstancer: {fileID: 0} 197 | --- !u!114 &1294875919 198 | MonoBehaviour: 199 | m_ObjectHideFlags: 0 200 | m_CorrespondingSourceObject: {fileID: 0} 201 | m_PrefabInstance: {fileID: 0} 202 | m_PrefabAsset: {fileID: 0} 203 | m_GameObject: {fileID: 2729875676815699808} 204 | m_Enabled: 1 205 | m_EditorHideFlags: 0 206 | m_Script: {fileID: 11500000, guid: 0f47abc31328c42c48e66af66a05c1f9, type: 3} 207 | m_Name: 208 | m_EditorClassIdentifier: 209 | _inMemoryCopy: {fileID: 0} 210 | _base: {fileID: 11400000, guid: c90e171d32d4c496fb2f2ecf7420f249, type: 2} 211 | --- !u!114 &1294875920 212 | MonoBehaviour: 213 | m_ObjectHideFlags: 0 214 | m_CorrespondingSourceObject: {fileID: 0} 215 | m_PrefabInstance: {fileID: 0} 216 | m_PrefabAsset: {fileID: 0} 217 | m_GameObject: {fileID: 2729875676815699808} 218 | m_Enabled: 1 219 | m_EditorHideFlags: 0 220 | m_Script: {fileID: 11500000, guid: 2eb8227755d4543bba34358ca3a9ab6f, type: 3} 221 | m_Name: 222 | m_EditorClassIdentifier: 223 | _decreaseBy: 224 | _usage: 0 225 | _value: 10 226 | _constant: {fileID: 0} 227 | _variable: {fileID: 0} 228 | _variableInstancer: {fileID: 0} 229 | _tags: 230 | - {fileID: 11400000, guid: 23f42a77324bd4158a00555f04f7824e, type: 2} 231 | - {fileID: 11400000, guid: 548d717e096e245aa93d91687b22e1f7, type: 2} 232 | _didCollide: 233 | _usage: 1 234 | _event: {fileID: 0} 235 | _eventInstancer: {fileID: 1294875925} 236 | --- !u!114 &1294875921 237 | MonoBehaviour: 238 | m_ObjectHideFlags: 0 239 | m_CorrespondingSourceObject: {fileID: 0} 240 | m_PrefabInstance: {fileID: 0} 241 | m_PrefabAsset: {fileID: 0} 242 | m_GameObject: {fileID: 2729875676815699808} 243 | m_Enabled: 1 244 | m_EditorHideFlags: 0 245 | m_Script: {fileID: 11500000, guid: d6b2ba18c3f8e4b409ccb9db0bcd4ce5, type: 3} 246 | m_Name: 247 | m_EditorClassIdentifier: 248 | _eventReference: 249 | _usage: 1 250 | _event: {fileID: 0} 251 | _eventInstancer: {fileID: 1294875919} 252 | _variable: {fileID: 0} 253 | _variableInstancer: {fileID: 0} 254 | _selectGameObjectReference: {fileID: 0} 255 | _eventWithGameObjectReference: 256 | _usage: 0 257 | _event: {fileID: 0} 258 | _eventInstancer: {fileID: 0} 259 | _variable: {fileID: 0} 260 | _variableInstancer: {fileID: 0} 261 | _triggerOnEnter: 1 262 | _triggerOnExit: 0 263 | _triggerOnStay: 1 264 | --- !u!114 &1294875922 265 | MonoBehaviour: 266 | m_ObjectHideFlags: 0 267 | m_CorrespondingSourceObject: {fileID: 0} 268 | m_PrefabInstance: {fileID: 0} 269 | m_PrefabAsset: {fileID: 0} 270 | m_GameObject: {fileID: 2729875676815699808} 271 | m_Enabled: 1 272 | m_EditorHideFlags: 0 273 | m_Script: {fileID: 11500000, guid: 6a57cc968d2764ec0bc2de2bd308d451, type: 3} 274 | m_Name: 275 | m_EditorClassIdentifier: 276 | _delay: 277 | _usage: 0 278 | _value: 5 279 | _constant: {fileID: 0} 280 | _variable: {fileID: 0} 281 | _variableInstancer: {fileID: 0} 282 | --- !u!114 &1294875925 283 | MonoBehaviour: 284 | m_ObjectHideFlags: 0 285 | m_CorrespondingSourceObject: {fileID: 0} 286 | m_PrefabInstance: {fileID: 0} 287 | m_PrefabAsset: {fileID: 0} 288 | m_GameObject: {fileID: 2729875676815699808} 289 | m_Enabled: 1 290 | m_EditorHideFlags: 0 291 | m_Script: {fileID: 11500000, guid: b7ddf86bc0bd24f30868f3a6a765342e, type: 3} 292 | m_Name: 293 | m_EditorClassIdentifier: 294 | _inMemoryCopy: {fileID: 0} 295 | _base: {fileID: 11400000, guid: 3ac34adcc7f114450a294921f7b6c441, type: 2} 296 | --- !u!114 &1294875926 297 | MonoBehaviour: 298 | m_ObjectHideFlags: 0 299 | m_CorrespondingSourceObject: {fileID: 0} 300 | m_PrefabInstance: {fileID: 0} 301 | m_PrefabAsset: {fileID: 0} 302 | m_GameObject: {fileID: 2729875676815699808} 303 | m_Enabled: 1 304 | m_EditorHideFlags: 0 305 | m_Script: {fileID: 11500000, guid: adf0d22e8586c4ddda7a4186d00cc32d, type: 3} 306 | m_Name: 307 | m_EditorClassIdentifier: 308 | _speed: 309 | _usage: 0 310 | _value: 5 311 | _constant: {fileID: 0} 312 | _variable: {fileID: 0} 313 | _variableInstancer: {fileID: 0} 314 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/Projectile.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e06c7b1d6f150401bbea0ac60adf80b1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/ProjectileDidCollideBase.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: 04d35e2eb934747da9d77a3af62bb8ca, type: 3} 13 | m_Name: ProjectileDidCollideBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when a projectile do collide. This is a base Event 16 | used for creating in memory copies. 17 | _replayBufferSize: 1 18 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/ProjectileDidCollideBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ac34adcc7f114450a294921f7b6c441 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/ProjectileTriggerBase.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: 9712fe83f4a3a4887a58910aeb195c64, type: 3} 13 | m_Name: ProjectileTriggerBase 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when a projectile enters a trigger. This is a base 16 | Event used for creating in memory copies. 17 | _replayBufferSize: 1 18 | _inspectorRaiseValue: {fileID: 0} 19 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/Projectile/ProjectileTriggerBase.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c90e171d32d4c496fb2f2ecf7420f249 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3f8284858a8a40508931a04d17630a3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/EnemyHealthBars.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03d72942856114a35806ff2918f7a3a5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/EnemyHealthBars/EnemyHealthBarManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityAtoms.BaseAtoms; 3 | using UnityEngine; 4 | using UnityEngine.Assertions; 5 | using UnityEngine.UI; 6 | 7 | namespace UnityAtoms.Examples 8 | { 9 | /// 10 | /// Listens to spawned and dead enemies and create and manage healthbars accordingly. 11 | /// 12 | public class EnemyHealthBarManager : MonoBehaviour 13 | { 14 | [SerializeField] 15 | private AtomList _enemies; 16 | 17 | [SerializeField] 18 | private GameObject _healthBarPrefab; 19 | 20 | [SerializeField] 21 | private RectTransform _canvasRectTransform; 22 | 23 | void Awake() 24 | { 25 | Assert.IsNotNull(_enemies); 26 | Assert.IsNotNull(_healthBarPrefab); 27 | Assert.IsNotNull(_canvasRectTransform); 28 | } 29 | 30 | public void SetupHealthBar(AtomBaseVariable enemyData) 31 | { 32 | var enemyDataCollection = (AtomCollection)enemyData; 33 | var healthBar = Instantiate(_healthBarPrefab).GetComponent(); 34 | healthBar.transform.SetParent(transform); 35 | 36 | IntVariable health = default; 37 | Vector3Variable position = default; 38 | Action positionChangedHandler = default; 39 | Action varAddedHandler = (AtomBaseVariable baseVar) => 40 | { 41 | switch (baseVar.Id) 42 | { 43 | case "Health": 44 | var healthVar = (IntVariable)baseVar; 45 | health = healthVar; 46 | healthBar.InitialHealth.Value = healthVar.InitialValue; 47 | healthVar.Changed.Register(healthBar.HealthChanged); 48 | break; 49 | case "Position": 50 | var positionVar = (Vector3Variable)baseVar; 51 | position = positionVar; 52 | positionChangedHandler = (pos) => 53 | { 54 | Vector2 viewportPos = Camera.main.WorldToViewportPoint(pos); 55 | Vector2 healthBarPos = new Vector2( 56 | (viewportPos.x * _canvasRectTransform.sizeDelta.x) - (_canvasRectTransform.sizeDelta.x * 0.5f), 57 | (viewportPos.y * _canvasRectTransform.sizeDelta.y) - (_canvasRectTransform.sizeDelta.y * 0.5f) + 38f 58 | ); 59 | healthBar.GetComponent().anchoredPosition = healthBarPos; 60 | }; 61 | positionVar.Changed.Register(positionChangedHandler); 62 | break; 63 | } 64 | }; 65 | 66 | Action varRemovedHandler = (AtomBaseVariable baseVar) => 67 | { 68 | switch (baseVar.Id) 69 | { 70 | case "Health": 71 | var healthVar = (IntVariable)baseVar; 72 | healthVar.Changed.Unregister(healthBar.HealthChanged); 73 | break; 74 | case "Position": 75 | var positionVar = (Vector3Variable)baseVar; 76 | positionVar.Changed.Unregister(positionChangedHandler); 77 | break; 78 | } 79 | }; 80 | 81 | enemyDataCollection.Added.Register(varAddedHandler); 82 | enemyDataCollection.Removed.Register(varRemovedHandler); 83 | 84 | Action enemyDataRemovedHandler = default; 85 | enemyDataRemovedHandler = (enemyDataToBeRemoved) => 86 | { 87 | if (enemyDataToBeRemoved == enemyData) 88 | { 89 | enemyDataCollection.Added.Unregister(varAddedHandler); 90 | enemyDataCollection.Removed.Unregister(varRemovedHandler); 91 | _enemies.Removed.Unregister(enemyDataRemovedHandler); 92 | 93 | if (healthBar != null && healthBar.gameObject != null) 94 | { 95 | if (health != null) 96 | { 97 | health.Changed.Unregister(healthBar.HealthChanged); 98 | } 99 | else if (position != null) 100 | { 101 | position.Changed.Unregister(positionChangedHandler); 102 | } 103 | 104 | Destroy(healthBar.gameObject); 105 | } 106 | 107 | } 108 | }; 109 | _enemies.Removed.Register(enemyDataRemovedHandler); 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/EnemyHealthBars/EnemyHealthBarManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1b416f9725d24fe5b140a75157a371e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/EnemyHealthBars/HealthBar.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &5962985843664808544 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 5962985843664808547} 12 | - component: {fileID: 5962985843664808549} 13 | - component: {fileID: 5962985843664808546} 14 | m_Layer: 0 15 | m_Name: Fill 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!224 &5962985843664808547 22 | RectTransform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 5962985843664808544} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_Children: [] 32 | m_Father: {fileID: 5962985845040392295} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | m_AnchorMin: {x: 0, y: 0} 36 | m_AnchorMax: {x: 1, y: 1} 37 | m_AnchoredPosition: {x: 0, y: 0} 38 | m_SizeDelta: {x: -2, y: -2} 39 | m_Pivot: {x: 0.5, y: 0.5} 40 | --- !u!222 &5962985843664808549 41 | CanvasRenderer: 42 | m_ObjectHideFlags: 0 43 | m_CorrespondingSourceObject: {fileID: 0} 44 | m_PrefabInstance: {fileID: 0} 45 | m_PrefabAsset: {fileID: 0} 46 | m_GameObject: {fileID: 5962985843664808544} 47 | m_CullTransparentMesh: 0 48 | --- !u!114 &5962985843664808546 49 | MonoBehaviour: 50 | m_ObjectHideFlags: 0 51 | m_CorrespondingSourceObject: {fileID: 0} 52 | m_PrefabInstance: {fileID: 0} 53 | m_PrefabAsset: {fileID: 0} 54 | m_GameObject: {fileID: 5962985843664808544} 55 | m_Enabled: 1 56 | m_EditorHideFlags: 0 57 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 58 | m_Name: 59 | m_EditorClassIdentifier: 60 | m_Material: {fileID: 0} 61 | m_Color: {r: 0.6117647, g: 0, b: 0, a: 1} 62 | m_RaycastTarget: 1 63 | m_OnCullStateChanged: 64 | m_PersistentCalls: 65 | m_Calls: [] 66 | m_Sprite: {fileID: 21300000, guid: bcb9bdff5d4664c74a932c679135aff5, type: 3} 67 | m_Type: 3 68 | m_PreserveAspect: 0 69 | m_FillCenter: 1 70 | m_FillMethod: 0 71 | m_FillAmount: 1 72 | m_FillClockwise: 1 73 | m_FillOrigin: 0 74 | m_UseSpriteMesh: 0 75 | m_PixelsPerUnitMultiplier: 1 76 | --- !u!1 &5962985845040392292 77 | GameObject: 78 | m_ObjectHideFlags: 0 79 | m_CorrespondingSourceObject: {fileID: 0} 80 | m_PrefabInstance: {fileID: 0} 81 | m_PrefabAsset: {fileID: 0} 82 | serializedVersion: 6 83 | m_Component: 84 | - component: {fileID: 5962985845040392295} 85 | - component: {fileID: 5962985845040392313} 86 | - component: {fileID: 5962985845040392294} 87 | - component: {fileID: 672736024155512211} 88 | - component: {fileID: 1195006272440714522} 89 | m_Layer: 0 90 | m_Name: HealthBar 91 | m_TagString: Untagged 92 | m_Icon: {fileID: 0} 93 | m_NavMeshLayer: 0 94 | m_StaticEditorFlags: 0 95 | m_IsActive: 1 96 | --- !u!224 &5962985845040392295 97 | RectTransform: 98 | m_ObjectHideFlags: 0 99 | m_CorrespondingSourceObject: {fileID: 0} 100 | m_PrefabInstance: {fileID: 0} 101 | m_PrefabAsset: {fileID: 0} 102 | m_GameObject: {fileID: 5962985845040392292} 103 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 104 | m_LocalPosition: {x: 0, y: 0, z: 0} 105 | m_LocalScale: {x: 1, y: 1, z: 1} 106 | m_Children: 107 | - {fileID: 5962985843664808547} 108 | m_Father: {fileID: 0} 109 | m_RootOrder: 0 110 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 111 | m_AnchorMin: {x: 0.5, y: 0.5} 112 | m_AnchorMax: {x: 0.5, y: 0.5} 113 | m_AnchoredPosition: {x: -253.5, y: 148} 114 | m_SizeDelta: {x: 50, y: 10} 115 | m_Pivot: {x: 0.5, y: 0.5} 116 | --- !u!222 &5962985845040392313 117 | CanvasRenderer: 118 | m_ObjectHideFlags: 0 119 | m_CorrespondingSourceObject: {fileID: 0} 120 | m_PrefabInstance: {fileID: 0} 121 | m_PrefabAsset: {fileID: 0} 122 | m_GameObject: {fileID: 5962985845040392292} 123 | m_CullTransparentMesh: 0 124 | --- !u!114 &5962985845040392294 125 | MonoBehaviour: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | m_GameObject: {fileID: 5962985845040392292} 131 | m_Enabled: 1 132 | m_EditorHideFlags: 0 133 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 134 | m_Name: 135 | m_EditorClassIdentifier: 136 | m_Material: {fileID: 0} 137 | m_Color: {r: 0.14901961, g: 0.14901961, b: 0.14901961, a: 1} 138 | m_RaycastTarget: 1 139 | m_OnCullStateChanged: 140 | m_PersistentCalls: 141 | m_Calls: [] 142 | m_Sprite: {fileID: 0} 143 | m_Type: 0 144 | m_PreserveAspect: 0 145 | m_FillCenter: 1 146 | m_FillMethod: 4 147 | m_FillAmount: 1 148 | m_FillClockwise: 1 149 | m_FillOrigin: 0 150 | m_UseSpriteMesh: 0 151 | m_PixelsPerUnitMultiplier: 1 152 | --- !u!114 &672736024155512211 153 | MonoBehaviour: 154 | m_ObjectHideFlags: 0 155 | m_CorrespondingSourceObject: {fileID: 0} 156 | m_PrefabInstance: {fileID: 0} 157 | m_PrefabAsset: {fileID: 0} 158 | m_GameObject: {fileID: 5962985845040392292} 159 | m_Enabled: 1 160 | m_EditorHideFlags: 0 161 | m_Script: {fileID: 11500000, guid: dbd80c08b2c1349c0839fcab63bcf9a3, type: 3} 162 | m_Name: 163 | m_EditorClassIdentifier: 164 | _initialHealth: 165 | _usage: 0 166 | _value: 0 167 | _constant: {fileID: 0} 168 | _variable: {fileID: 0} 169 | _variableInstancer: {fileID: 0} 170 | _image: {fileID: 5962985843664808546} 171 | --- !u!114 &1195006272440714522 172 | MonoBehaviour: 173 | m_ObjectHideFlags: 0 174 | m_CorrespondingSourceObject: {fileID: 0} 175 | m_PrefabInstance: {fileID: 0} 176 | m_PrefabAsset: {fileID: 0} 177 | m_GameObject: {fileID: 5962985845040392292} 178 | m_Enabled: 1 179 | m_EditorHideFlags: 0 180 | m_Script: {fileID: 11500000, guid: 050ff37b5550f4b7e9bdf8b985aff484, type: 3} 181 | m_Name: 182 | m_EditorClassIdentifier: 183 | _developerDescription: 184 | _unityEventResponse: 185 | m_PersistentCalls: 186 | m_Calls: [] 187 | _actionResponses: [] 188 | _replayEventBufferOnRegister: 1 189 | _eventReference: 190 | _usage: 0 191 | _event: {fileID: 0} 192 | _eventInstancer: {fileID: 0} 193 | _variable: {fileID: 0} 194 | _variableInstancer: {fileID: 0} 195 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/EnemyHealthBars/HealthBar.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26027fcaed24946ab8ccd94d49977476 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/TryAgainButton.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 110fa57a940364e1dac4913625ffdedd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/TryAgainButton/RestartCurrentScene.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.SceneManagement; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// Restart the current scene. 8 | /// 9 | public class RestartCurrentScene : MonoBehaviour 10 | { 11 | public void Do() => SceneManager.LoadScene(SceneManager.GetActiveScene().name); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/TryAgainButton/RestartCurrentScene.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0edcc6be89a1846018a134a7c0f23c29 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/TryAgainButton/TryAgainButtonClicked.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: 04d35e2eb934747da9d77a3af62bb8ca, type: 3} 13 | m_Name: TryAgainButtonClicked 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when the player clicks the try again button in the 16 | game over screen. 17 | _replayBufferSize: 0 18 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/TryAgainButton/TryAgainButtonClicked.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b512e6d2a87f440c5883fe3546438a16 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/UIStateChanged.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: 75feba4dec8d44f0fb83f34e749e4dc3, type: 3} 13 | m_Name: UIStateChanged 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when UI state is changed. 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 18 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/UIStateChanged.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3979f8535cda044809f98bde2acbadcd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/WaveCountText.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace UnityAtoms.Examples 5 | { 6 | /// 7 | /// Sets the text for the Wave count UI. 8 | /// 9 | public class WaveCountText : MonoBehaviour 10 | { 11 | public void AdjustText(int waveCount) => GetComponent().text = $"Wave count: {waveCount}"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Assets/InfiniteWaves/UI/WaveCountText.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31ffc7cd313ed4b62a3d99ae926487ee 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Intro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 945ddfa5e9c3f4c81a682f469562893d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8988f54755dd64c0d82b43cf147312b8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/ClampHealth.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: 6fca6fcea11a74802b8c952026ca7386, type: 3} 13 | m_Name: ClampHealth 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | Min: 17 | _usage: 0 18 | _value: 0 19 | _constant: {fileID: 0} 20 | _variable: {fileID: 0} 21 | _variableInstancer: {fileID: 0} 22 | Max: 23 | _usage: 1 24 | _value: 0 25 | _constant: {fileID: 11400000, guid: 41aa2296cd68a4b718a8fd1bd8ad5a95, type: 2} 26 | _variable: {fileID: 0} 27 | _variableInstancer: {fileID: 0} 28 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/ClampHealth.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 958ba52eba25948938a6ce4097b9f961 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/Health.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: cf8a67b68db3d4650908f8cf6adeda60, type: 3} 13 | m_Name: Health 14 | m_EditorClassIdentifier: 15 | _developerDescription: Variable keeping track of the Player's health. 16 | _id: 17 | _value: 100 18 | _changed: {fileID: 11400000, guid: fb1508338b66f42099fceb52aa22cf4c, type: 2} 19 | _changedWithHistory: {fileID: 0} 20 | _triggerChangedOnOnEnable: 0 21 | _triggerChangedWithHistoryOnOnEnable: 0 22 | _oldValue: 100 23 | _initialValue: 100 24 | _preChangeTransformers: 25 | - {fileID: 11400000, guid: 958ba52eba25948938a6ce4097b9f961, type: 2} 26 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/Health.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50206c000343d496fa82bd362e3b3b2b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/HealthChangedEvent.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: 9fce12a4beec24778830e555cb6e5ca3, type: 3} 13 | m_Name: HealthChangedEvent 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when the Player's health is changed. 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 0 18 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/HealthChangedEvent.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb1508338b66f42099fceb52aa22cf4c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/UIState.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: 0fdbbdbe4268c4d729a51bde5e681e8c, type: 3} 13 | m_Name: UIState 14 | m_EditorClassIdentifier: 15 | _developerDescription: Variable keeping track of global UI state. 16 | _id: 17 | _value: First 18 | Changed: {fileID: 11400000, guid: c69dea8a114f5426595035f762d6e93d, type: 2} 19 | ChangedWithHistory: {fileID: 0} 20 | _oldValue: First 21 | _initialValue: First 22 | _preChangeTransformers: [] 23 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/UIState.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca4bd447b40154988be601bad9c84506 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/UIStateChanged.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: 75feba4dec8d44f0fb83f34e749e4dc3, type: 3} 13 | m_Name: UIStateChanged 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised when UI State is changed. 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: 18 | -------------------------------------------------------------------------------- /Assets/Intro/GlobalState/UIStateChanged.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c69dea8a114f5426595035f762d6e93d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/Harmful.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f895991e9df44857a2af43856e9bea3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/Harmful/Harmful.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &6817695843196285254 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 5649868538695814393} 12 | - component: {fileID: 2114507819800655474} 13 | - component: {fileID: 4469886331617117075} 14 | - component: {fileID: 6817695843196285249} 15 | - component: {fileID: 8791131526705612255} 16 | - component: {fileID: 1041281918} 17 | m_Layer: 0 18 | m_Name: Harmful 19 | m_TagString: Untagged 20 | m_Icon: {fileID: 0} 21 | m_NavMeshLayer: 0 22 | m_StaticEditorFlags: 0 23 | m_IsActive: 1 24 | --- !u!4 &5649868538695814393 25 | Transform: 26 | m_ObjectHideFlags: 0 27 | m_CorrespondingSourceObject: {fileID: 0} 28 | m_PrefabInstance: {fileID: 0} 29 | m_PrefabAsset: {fileID: 0} 30 | m_GameObject: {fileID: 6817695843196285254} 31 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 32 | m_LocalPosition: {x: 2.535, y: 0, z: 0} 33 | m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} 34 | m_Children: [] 35 | m_Father: {fileID: 0} 36 | m_RootOrder: 0 37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 38 | --- !u!212 &2114507819800655474 39 | SpriteRenderer: 40 | m_ObjectHideFlags: 0 41 | m_CorrespondingSourceObject: {fileID: 0} 42 | m_PrefabInstance: {fileID: 0} 43 | m_PrefabAsset: {fileID: 0} 44 | m_GameObject: {fileID: 6817695843196285254} 45 | m_Enabled: 1 46 | m_CastShadows: 0 47 | m_ReceiveShadows: 0 48 | m_DynamicOccludee: 1 49 | m_MotionVectors: 1 50 | m_LightProbeUsage: 1 51 | m_ReflectionProbeUsage: 1 52 | m_RayTracingMode: 0 53 | m_RenderingLayerMask: 4294967295 54 | m_RendererPriority: 0 55 | m_Materials: 56 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} 57 | m_StaticBatchInfo: 58 | firstSubMesh: 0 59 | subMeshCount: 0 60 | m_StaticBatchRoot: {fileID: 0} 61 | m_ProbeAnchor: {fileID: 0} 62 | m_LightProbeVolumeOverride: {fileID: 0} 63 | m_ScaleInLightmap: 1 64 | m_ReceiveGI: 1 65 | m_PreserveUVs: 0 66 | m_IgnoreNormalsForChartDetection: 0 67 | m_ImportantGI: 0 68 | m_StitchLightmapSeams: 0 69 | m_SelectedEditorRenderState: 0 70 | m_MinimumChartSize: 4 71 | m_AutoUVMaxDistance: 0.5 72 | m_AutoUVMaxAngle: 89 73 | m_LightmapParameters: {fileID: 0} 74 | m_SortingLayerID: 0 75 | m_SortingLayer: 0 76 | m_SortingOrder: 0 77 | m_Sprite: {fileID: 21300000, guid: bcb9bdff5d4664c74a932c679135aff5, type: 3} 78 | m_Color: {r: 1, g: 0.93066514, b: 0.5330188, a: 1} 79 | m_FlipX: 0 80 | m_FlipY: 0 81 | m_DrawMode: 0 82 | m_Size: {x: 1, y: 1} 83 | m_AdaptiveModeThreshold: 0.5 84 | m_SpriteTileMode: 0 85 | m_WasSpriteAssigned: 1 86 | m_MaskInteraction: 0 87 | m_SpriteSortPoint: 0 88 | --- !u!61 &4469886331617117075 89 | BoxCollider2D: 90 | m_ObjectHideFlags: 0 91 | m_CorrespondingSourceObject: {fileID: 0} 92 | m_PrefabInstance: {fileID: 0} 93 | m_PrefabAsset: {fileID: 0} 94 | m_GameObject: {fileID: 6817695843196285254} 95 | m_Enabled: 1 96 | m_Density: 1 97 | m_Material: {fileID: 0} 98 | m_IsTrigger: 1 99 | m_UsedByEffector: 0 100 | m_UsedByComposite: 0 101 | m_Offset: {x: 0, y: 0} 102 | m_SpriteTilingProperty: 103 | border: {x: 0, y: 0, z: 0, w: 0} 104 | pivot: {x: 0.5, y: 0.5} 105 | oldSize: {x: 1, y: 1} 106 | newSize: {x: 1, y: 1} 107 | adaptiveTilingThreshold: 0.5 108 | drawMode: 0 109 | adaptiveTiling: 0 110 | m_AutoTiling: 0 111 | serializedVersion: 2 112 | m_Size: {x: 1, y: 1} 113 | m_EdgeRadius: 0 114 | --- !u!114 &6817695843196285249 115 | MonoBehaviour: 116 | m_ObjectHideFlags: 0 117 | m_CorrespondingSourceObject: {fileID: 0} 118 | m_PrefabInstance: {fileID: 0} 119 | m_PrefabAsset: {fileID: 0} 120 | m_GameObject: {fileID: 6817695843196285254} 121 | m_Enabled: 1 122 | m_EditorHideFlags: 0 123 | m_Script: {fileID: 11500000, guid: d6b2ba18c3f8e4b409ccb9db0bcd4ce5, type: 3} 124 | m_Name: 125 | m_EditorClassIdentifier: 126 | _eventReference: 127 | _usage: 0 128 | _event: {fileID: 11400000, guid: ae9405f95b96f4b88bee16d433034a52, type: 2} 129 | _eventInstancer: {fileID: 0} 130 | _variable: {fileID: 0} 131 | _variableInstancer: {fileID: 0} 132 | _selectGameObjectReference: {fileID: 0} 133 | _eventWithGameObjectReference: 134 | _usage: 0 135 | _event: {fileID: 0} 136 | _eventInstancer: {fileID: 0} 137 | _variable: {fileID: 0} 138 | _variableInstancer: {fileID: 0} 139 | _triggerOnEnter: 1 140 | _triggerOnExit: 0 141 | _triggerOnStay: 0 142 | --- !u!114 &8791131526705612255 143 | MonoBehaviour: 144 | m_ObjectHideFlags: 0 145 | m_CorrespondingSourceObject: {fileID: 0} 146 | m_PrefabInstance: {fileID: 0} 147 | m_PrefabAsset: {fileID: 0} 148 | m_GameObject: {fileID: 6817695843196285254} 149 | m_Enabled: 1 150 | m_EditorHideFlags: 0 151 | m_Script: {fileID: 11500000, guid: 64882d9a6a5104b579ad078658f093c6, type: 3} 152 | m_Name: 153 | m_EditorClassIdentifier: 154 | _developerDescription: 155 | _unityEventResponse: 156 | m_PersistentCalls: 157 | m_Calls: 158 | - m_Target: {fileID: 1041281918} 159 | m_MethodName: Do 160 | m_Mode: 0 161 | m_Arguments: 162 | m_ObjectArgument: {fileID: 0} 163 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 164 | m_IntArgument: 0 165 | m_FloatArgument: 0 166 | m_StringArgument: 167 | m_BoolArgument: 0 168 | m_CallState: 2 169 | _actionResponses: [] 170 | _eventReference: 171 | _usage: 0 172 | _event: {fileID: 11400000, guid: ae9405f95b96f4b88bee16d433034a52, type: 2} 173 | _eventInstancer: {fileID: 0} 174 | _variable: {fileID: 0} 175 | _variableInstancer: {fileID: 0} 176 | --- !u!114 &1041281918 177 | MonoBehaviour: 178 | m_ObjectHideFlags: 0 179 | m_CorrespondingSourceObject: {fileID: 0} 180 | m_PrefabInstance: {fileID: 0} 181 | m_PrefabAsset: {fileID: 0} 182 | m_GameObject: {fileID: 6817695843196285254} 183 | m_Enabled: 1 184 | m_EditorHideFlags: 0 185 | m_Script: {fileID: 11500000, guid: 2eb8227755d4543bba34358ca3a9ab6f, type: 3} 186 | m_Name: 187 | m_EditorClassIdentifier: 188 | _decreaseBy: 189 | _usage: 0 190 | _value: 10 191 | _constant: {fileID: 0} 192 | _variable: {fileID: 0} 193 | _variableInstancer: {fileID: 0} 194 | _tags: 195 | - {fileID: 11400000, guid: 23f42a77324bd4158a00555f04f7824e, type: 2} 196 | _didCollide: 197 | _usage: 0 198 | _event: {fileID: 0} 199 | _eventInstancer: {fileID: 0} 200 | -------------------------------------------------------------------------------- /Assets/Intro/Harmful/Harmful.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01e7046886cdb499a99f4bed284db6a1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Intro/Harmful/HarmfulTriggerEvent.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: 9712fe83f4a3a4887a58910aeb195c64, type: 3} 13 | m_Name: HarmfulTriggerEvent 14 | m_EditorClassIdentifier: 15 | _developerDescription: Raised on On Trigger Enter 2D. 16 | _replayBufferSize: 1 17 | _inspectorRaiseValue: {fileID: 0} 18 | -------------------------------------------------------------------------------- /Assets/Intro/Harmful/HarmfulTriggerEvent.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae9405f95b96f4b88bee16d433034a52 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/HealthListener.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5ca6f1b53e68443d9095d31cd89224a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/HealthListener/HealthListener.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1111135183548040 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 4748691630159618} 12 | - component: {fileID: 114212381404589792} 13 | m_Layer: 0 14 | m_Name: HealthListener 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!4 &4748691630159618 21 | Transform: 22 | m_ObjectHideFlags: 0 23 | m_CorrespondingSourceObject: {fileID: 0} 24 | m_PrefabInstance: {fileID: 0} 25 | m_PrefabAsset: {fileID: 0} 26 | m_GameObject: {fileID: 1111135183548040} 27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 28 | m_LocalPosition: {x: 0, y: 0, z: 0} 29 | m_LocalScale: {x: 1, y: 1, z: 1} 30 | m_Children: [] 31 | m_Father: {fileID: 0} 32 | m_RootOrder: 0 33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 34 | --- !u!114 &114212381404589792 35 | MonoBehaviour: 36 | m_ObjectHideFlags: 0 37 | m_CorrespondingSourceObject: {fileID: 0} 38 | m_PrefabInstance: {fileID: 0} 39 | m_PrefabAsset: {fileID: 0} 40 | m_GameObject: {fileID: 1111135183548040} 41 | m_Enabled: 1 42 | m_EditorHideFlags: 0 43 | m_Script: {fileID: 11500000, guid: e564c43d8cd6f404fbf20034291d3354, type: 3} 44 | m_Name: 45 | m_EditorClassIdentifier: 46 | _event: {fileID: 11400000, guid: fb1508338b66f42099fceb52aa22cf4c, type: 2} 47 | _unityEventResponse: 48 | m_PersistentCalls: 49 | m_Calls: 50 | - m_Target: {fileID: 0} 51 | m_MethodName: HealthChanged 52 | m_Mode: 0 53 | m_Arguments: 54 | m_ObjectArgument: {fileID: 0} 55 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 56 | m_IntArgument: 0 57 | m_FloatArgument: 0 58 | m_StringArgument: 59 | m_BoolArgument: 0 60 | m_CallState: 2 61 | m_TypeName: UnityAtoms.IntUnityEvent, UnityAtoms, Version=0.0.0.0, Culture=neutral, 62 | PublicKeyToken=null 63 | _actionResponses: 64 | - {fileID: 11400000, guid: 58f78c691d84e44cd84c884aadacf21a, type: 2} 65 | -------------------------------------------------------------------------------- /Assets/Intro/HealthListener/HealthListener.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4cdf4b23d0154814b9975c71d15466b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Intro/Intro.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5975690ceb19c40728375ab924af0fbe 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Intro/IntroSettings.lighting: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!850595691 &4890085278179872738 4 | LightingSettings: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: IntroSettings 10 | serializedVersion: 2 11 | m_GIWorkflowMode: 1 12 | m_EnableBakedLightmaps: 0 13 | m_EnableRealtimeLightmaps: 0 14 | m_RealtimeEnvironmentLighting: 1 15 | m_BounceScale: 1 16 | m_AlbedoBoost: 1 17 | m_IndirectOutputScale: 1 18 | m_UsingShadowmask: 1 19 | m_BakeBackend: 0 20 | m_LightmapMaxSize: 1024 21 | m_BakeResolution: 40 22 | m_Padding: 2 23 | m_TextureCompression: 1 24 | m_AO: 0 25 | m_AOMaxDistance: 1 26 | m_CompAOExponent: 1 27 | m_CompAOExponentDirect: 0 28 | m_ExtractAO: 0 29 | m_MixedBakeMode: 2 30 | m_LightmapsBakeMode: 1 31 | m_FilterMode: 1 32 | m_LightmapParameters: {fileID: 0} 33 | m_ExportTrainingData: 0 34 | m_TrainingDataDestination: TrainingData 35 | m_RealtimeResolution: 2 36 | m_ForceWhiteAlbedo: 0 37 | m_ForceUpdates: 0 38 | m_FinalGather: 0 39 | m_FinalGatherRayCount: 256 40 | m_FinalGatherFiltering: 1 41 | m_PVRCulling: 1 42 | m_PVRSampling: 1 43 | m_PVRDirectSampleCount: 32 44 | m_PVRSampleCount: 500 45 | m_PVREnvironmentSampleCount: 500 46 | m_PVREnvironmentReferencePointCount: 2048 47 | m_LightProbeSampleCountMultiplier: 4 48 | m_PVRBounces: 2 49 | m_PVRRussianRouletteStartBounce: 2 50 | m_PVREnvironmentMIS: 0 51 | m_PVRFilteringMode: 2 52 | m_PVRDenoiserTypeDirect: 0 53 | m_PVRDenoiserTypeIndirect: 0 54 | m_PVRDenoiserTypeAO: 0 55 | m_PVRFilterTypeDirect: 0 56 | m_PVRFilterTypeIndirect: 0 57 | m_PVRFilterTypeAO: 0 58 | m_PVRFilteringGaussRadiusDirect: 1 59 | m_PVRFilteringGaussRadiusIndirect: 5 60 | m_PVRFilteringGaussRadiusAO: 2 61 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 62 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 63 | m_PVRFilteringAtrousPositionSigmaAO: 1 64 | -------------------------------------------------------------------------------- /Assets/Intro/IntroSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c54779fbb519c43b08ffd33f1b54420f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5f44945aeae34ea6a7d2093544eb008 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/MaxHealth.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: ad76d497767c34ecf88c7aa597da29c0, type: 3} 13 | m_Name: MaxHealth 14 | m_EditorClassIdentifier: 15 | _developerDescription: The player's maximum amount of health. 16 | _id: 17 | _value: 100 18 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/MaxHealth.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41aa2296cd68a4b718a8fd1bd8ad5a95 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/TagPlayer.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: 44fe6f8275613408d9adc4435b52bf4f, type: 3} 13 | m_Name: TagPlayer 14 | m_EditorClassIdentifier: 15 | _developerDescription: Tag to identify the player. 16 | _id: 17 | _value: Player 18 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/TagPlayer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23f42a77324bd4158a00555f04f7824e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/UIState_First.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: 44fe6f8275613408d9adc4435b52bf4f, type: 3} 13 | m_Name: UIState_First 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _value: First 17 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/UIState_First.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb8238ac7ef5d407fb31219fe114d2ae 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/UIState_Second.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: 44fe6f8275613408d9adc4435b52bf4f, type: 3} 13 | m_Name: UIState_Second 14 | m_EditorClassIdentifier: 15 | _developerDescription: 16 | _value: Second 17 | -------------------------------------------------------------------------------- /Assets/Intro/SharedConstants/UIState_Second.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f191ae005f2448dfb420563d3f089a7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Test.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bc9961d23e5740fdb0967784e2cbe2d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Test/TODO.md: -------------------------------------------------------------------------------- 1 | # Unity Atoms v5 2 | 3 | ## Features 4 | 5 | ### Generic serialization ⭐️ 6 | 7 | Use Unity's new capability to serialize generics 8 | 9 | ### Improve debugability large projects 10 | 11 | Visualize all atoms and MBs in a specific scene that are referencing those atoms. 12 | 13 | ### Selectors / Derrived Variable 14 | 15 | Derrive state from several Atoms. Eg. combine AtomVariable and AtomVariable to AtomVariable> 16 | 17 | See: https://recoiljs.org/docs/basic-tutorial/selectors 18 | 19 | ### Mutations / transactions ⭐️ 20 | 21 | Group changes of several atoms into one transaction (like a database transaction). 22 | 23 | ### Batch change events ⭐️ 24 | 25 | Wait triggering change events until a specific phase, eg. trigger on LateUpdate. 26 | 27 | ### Reactive lists 28 | 29 | Like Atom List, but also possible to subscribe to when a list item is being modified. 30 | 31 | ### Group Atoms / SOs in the project hierarchy 32 | 33 | Eg. add events as sub assets to a variable 34 | 35 | ### Templates 36 | 37 | Starter C# templates for certain atoms, eg. AtomFunction / AtomAction 38 | 39 | ## Structural changes 40 | 41 | ### CI /CD 42 | 43 | https://github.com/game-ci 44 | 45 | ### Github organization 46 | 47 | ### Break out website + Unity project to there own repos 48 | 49 | Using git sub modules. 50 | -------------------------------------------------------------------------------- /Assets/Test/TODO.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c322011353fe4f21bd6481f842b0276 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/UniRx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13e22e6cc4f7448399e30356dfc3f386 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniRx/Player.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6df9db7d2d7274579ac026d2869f3a46 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniRx/Player/PlayerMoveUniRx.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Marvelous; 3 | using UniRx; 4 | using UnityAtoms.BaseAtoms; 5 | 6 | namespace UnityAtoms.Examples 7 | { 8 | /// 9 | /// Simple Player move script using UniRx. 10 | /// 11 | public class PlayerMoveUniRx : MonoBehaviour 12 | { 13 | [SerializeField] 14 | private StringVariable _uiState; 15 | [SerializeField] 16 | private StringConstant _uiStatePlaying; 17 | [SerializeField] 18 | private Vector2Variable _movementInput; 19 | 20 | private void Awake() 21 | { 22 | float _horizontal = 0f, _vertical = 0f; 23 | 24 | Observable 25 | .EveryUpdate() 26 | .Fuse( 27 | _uiState.ObserveChange(), 28 | initialValue2: _uiState.Value 29 | ).Subscribe(t => 30 | { 31 | var (_, state) = t; 32 | _horizontal = state == _uiStatePlaying.Value ? _movementInput.Value.x : 0f; 33 | _vertical = state == _uiStatePlaying.Value ? _movementInput.Value.y : 0f; 34 | }); 35 | 36 | Observable 37 | .EveryFixedUpdate() 38 | .Subscribe(t => 39 | { 40 | GetComponent().velocity = new Vector2(_horizontal, _vertical) * 5f; 41 | }); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Assets/UniRx/Player/PlayerMoveUniRx.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c51695bccb3bc4e02bcba23d12ebeea7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/UniRx/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a43ad90f8102b419a9e6a4efc9a4bb4f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniRx/UI/HealthBarUniRx.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using UniRx; 4 | using UnityAtoms.BaseAtoms; 5 | 6 | namespace UnityAtoms.Examples 7 | { 8 | /// 9 | /// Simple healthbar script using UniRx. 10 | /// 11 | public class HealthBarUniRx : MonoBehaviour 12 | { 13 | [SerializeField] 14 | private IntVariable _health = null; 15 | 16 | void Awake() 17 | { 18 | _health.ObserveChange().Subscribe(health => 19 | { 20 | GetComponent().fillAmount = 1.0f * health / _health.InitialValue; 21 | }); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/UniRx/UI/HealthBarUniRx.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df9d93e69065440c2b752b81e4dbacd1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/UniRx/UniRx.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31c534783e33c48a2acf5be4231304cd 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/UniRx/UniRxSettings.lighting: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!850595691 &4890085278179872738 4 | LightingSettings: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: UniRxSettings 10 | serializedVersion: 2 11 | m_GIWorkflowMode: 1 12 | m_EnableBakedLightmaps: 0 13 | m_EnableRealtimeLightmaps: 0 14 | m_RealtimeEnvironmentLighting: 1 15 | m_BounceScale: 1 16 | m_AlbedoBoost: 1 17 | m_IndirectOutputScale: 1 18 | m_UsingShadowmask: 1 19 | m_BakeBackend: 0 20 | m_LightmapMaxSize: 1024 21 | m_BakeResolution: 40 22 | m_Padding: 2 23 | m_TextureCompression: 1 24 | m_AO: 0 25 | m_AOMaxDistance: 1 26 | m_CompAOExponent: 1 27 | m_CompAOExponentDirect: 0 28 | m_ExtractAO: 0 29 | m_MixedBakeMode: 2 30 | m_LightmapsBakeMode: 1 31 | m_FilterMode: 1 32 | m_LightmapParameters: {fileID: 0} 33 | m_ExportTrainingData: 0 34 | m_TrainingDataDestination: TrainingData 35 | m_RealtimeResolution: 2 36 | m_ForceWhiteAlbedo: 0 37 | m_ForceUpdates: 0 38 | m_FinalGather: 0 39 | m_FinalGatherRayCount: 256 40 | m_FinalGatherFiltering: 1 41 | m_PVRCulling: 1 42 | m_PVRSampling: 1 43 | m_PVRDirectSampleCount: 32 44 | m_PVRSampleCount: 500 45 | m_PVREnvironmentSampleCount: 500 46 | m_PVREnvironmentReferencePointCount: 2048 47 | m_LightProbeSampleCountMultiplier: 4 48 | m_PVRBounces: 2 49 | m_PVRRussianRouletteStartBounce: 2 50 | m_PVREnvironmentMIS: 0 51 | m_PVRFilteringMode: 2 52 | m_PVRDenoiserTypeDirect: 0 53 | m_PVRDenoiserTypeIndirect: 0 54 | m_PVRDenoiserTypeAO: 0 55 | m_PVRFilterTypeDirect: 0 56 | m_PVRFilterTypeIndirect: 0 57 | m_PVRFilterTypeAO: 0 58 | m_PVRFilteringGaussRadiusDirect: 1 59 | m_PVRFilteringGaussRadiusIndirect: 5 60 | m_PVRFilteringGaussRadiusAO: 2 61 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 62 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 63 | m_PVRFilteringAtrousPositionSigmaAO: 1 64 | -------------------------------------------------------------------------------- /Assets/UniRx/UniRxSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2008f775d8274c689ed84a9d1b70fcf 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/csc.rsp: -------------------------------------------------------------------------------- 1 | -nowarn:0649 2 | -------------------------------------------------------------------------------- /Assets/csc.rsp.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25610c77d3facf1429054ba959ed1dfd 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/unity-atoms.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b56e15a87ee1c4d67ad24b4950c4b124 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2021 Unity Atoms 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /Logs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a924c42874e7d416582e75c6ab325e7e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Fri Mar 8 14:08:32 2019 3 | 4 | Packages were changed. 5 | Update Mode: mergeDefaultDependencies 6 | 7 | The following packages were added: 8 | com.unity.analytics@3.2.2 9 | com.unity.purchasing@2.0.3 10 | com.unity.ads@2.0.8 11 | com.unity.textmeshpro@1.3.0 12 | com.unity.package-manager-ui@2.0.3 13 | com.unity.collab-proxy@1.2.15 14 | com.unity.modules.ai@1.0.0 15 | com.unity.modules.animation@1.0.0 16 | com.unity.modules.assetbundle@1.0.0 17 | com.unity.modules.audio@1.0.0 18 | com.unity.modules.cloth@1.0.0 19 | com.unity.modules.director@1.0.0 20 | com.unity.modules.imageconversion@1.0.0 21 | com.unity.modules.imgui@1.0.0 22 | com.unity.modules.jsonserialize@1.0.0 23 | com.unity.modules.particlesystem@1.0.0 24 | com.unity.modules.physics@1.0.0 25 | com.unity.modules.physics2d@1.0.0 26 | com.unity.modules.screencapture@1.0.0 27 | com.unity.modules.terrain@1.0.0 28 | com.unity.modules.terrainphysics@1.0.0 29 | com.unity.modules.tilemap@1.0.0 30 | com.unity.modules.ui@1.0.0 31 | com.unity.modules.uielements@1.0.0 32 | com.unity.modules.umbra@1.0.0 33 | com.unity.modules.unityanalytics@1.0.0 34 | com.unity.modules.unitywebrequest@1.0.0 35 | com.unity.modules.unitywebrequestassetbundle@1.0.0 36 | com.unity.modules.unitywebrequestaudio@1.0.0 37 | com.unity.modules.unitywebrequesttexture@1.0.0 38 | com.unity.modules.unitywebrequestwww@1.0.0 39 | com.unity.modules.vehicles@1.0.0 40 | com.unity.modules.video@1.0.0 41 | com.unity.modules.vr@1.0.0 42 | com.unity.modules.wind@1.0.0 43 | com.unity.modules.xr@1.0.0 44 | 45 | === Fri Apr 5 21:10:03 2019 46 | 47 | Packages were changed. 48 | Update Mode: updateDependencies 49 | 50 | The following packages were updated: 51 | com.unity.package-manager-ui from version 2.0.3 to 2.0.7 52 | 53 | === Sun May 5 00:35:34 2019 54 | 55 | Packages were changed. 56 | Update Mode: updateDependencies 57 | 58 | The following packages were added: 59 | com.unity.timeline@1.0.0 60 | com.unity.modules.animation@1.0.0 61 | com.unity.modules.director@1.0.0 62 | com.unity.modules.jsonserialize@1.0.0 63 | com.unity.modules.particlesystem@1.0.0 64 | com.unity.modules.unitywebrequest@1.0.0 65 | com.unity.modules.video@1.0.0 66 | com.unity.modules.vr@1.0.0 67 | com.unity.modules.xr@1.0.0 68 | com.unity.multiplayer-hlapi@1.0.2 69 | com.unity.xr.legacyinputhelpers@2.0.2 70 | The following packages were updated: 71 | com.unity.package-manager-ui from version 2.0.7 to 2.1.2 72 | 73 | === Thu Jan 23 20:17:14 2020 74 | 75 | Packages were changed. 76 | Update Mode: updateDependencies 77 | 78 | The following packages were added: 79 | com.unity.2d.tilemap@1.0.0 80 | com.unity.ext.nunit@1.0.0 81 | com.unity.test-framework@1.0.13 82 | com.unity.2d.sprite@1.0.0 83 | com.unity.ide.vscode@1.1.3 84 | com.unity.ide.rider@1.1.0 85 | com.unity.ugui@1.0.0 86 | com.unity.modules.androidjni@1.0.0 87 | The following packages were updated: 88 | com.unity.package-manager-ui from version 2.1.2 to 2.2.0 89 | 90 | === Sun Feb 23 02:50:53 2020 91 | 92 | Packages were changed. 93 | Update Mode: updateDependencies 94 | 95 | The following packages were updated: 96 | com.unity.ide.rider from version 1.1.0 to 1.1.4 97 | com.unity.ide.vscode from version 1.1.3 to 1.1.4 98 | com.unity.test-framework from version 1.0.13 to 1.1.11 99 | The following packages were removed: 100 | com.unity.package-manager-ui@2.2.0 101 | 102 | === Fri Apr 24 06:22:27 2020 103 | 104 | Packages were changed. 105 | Update Mode: updateDependencies 106 | 107 | The following packages were updated: 108 | com.unity.ide.vscode from version 1.1.3 to 1.1.4 109 | com.unity.test-framework from version 1.1.11 to 1.1.13 110 | 111 | === Sat Jun 20 00:18:47 2020 112 | 113 | Packages were changed. 114 | Update Mode: updateDependencies 115 | 116 | The following packages were updated: 117 | com.unity.ide.vscode from version 1.1.3 to 1.2.0 118 | com.unity.test-framework from version 1.1.13 to 1.1.14 119 | 120 | === Wed Jan 6 22:00:03 2021 121 | 122 | Packages were changed. 123 | Update Mode: updateDependencies 124 | 125 | The following packages were added: 126 | com.unity.ide.visualstudio@2.0.2 127 | The following packages were updated: 128 | com.unity.ide.rider from version 1.1.4 to 1.2.1 129 | com.unity.ide.vscode from version 1.2.0 to 1.2.2 130 | com.unity.test-framework from version 1.1.13 to 1.1.16 131 | -------------------------------------------------------------------------------- /Logs/Packages-Update.log.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3e76541de567493e8beefebb91e336e 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57bb6f8bee9194b2c87b200ad7fc2214 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.mambojambostudios.marvelous": "1.0.8", 4 | "com.neuecc.unirx": "https://github.com/starikcetin/UniRx.git#7.1.0-upm", 5 | "com.unity.2d.sprite": "1.0.0", 6 | "com.unity.2d.tilemap": "1.0.0", 7 | "com.unity.ext.nunit": "1.0.0", 8 | "com.unity.ide.rider": "1.2.1", 9 | "com.unity.ide.visualstudio": "2.0.20", 10 | "com.unity.ide.vscode": "1.2.2", 11 | "com.unity.inputsystem": "1.0.2", 12 | "com.unity.test-framework": "1.1.16", 13 | "com.unity.ugui": "1.0.0", 14 | "com.unity.modules.androidjni": "1.0.0", 15 | "com.unity.modules.animation": "1.0.0", 16 | "com.unity.modules.assetbundle": "1.0.0", 17 | "com.unity.modules.audio": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.unitywebrequest": "1.0.0", 28 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 29 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 30 | "com.unity.modules.unitywebrequestwww": "1.0.0" 31 | }, 32 | "testables": [ 33 | "com.unity-atoms.unity-atoms-core", 34 | "com.unity-atoms.unity-atoms-base-atoms", 35 | "com.unity-atoms.unity-atoms-mobile", 36 | "com.unity-atoms.unity-atoms-scene-mgmt", 37 | "com.unity-atoms.unity-atoms-tags", 38 | "com.unity-atoms.unity-atoms-ui" 39 | ], 40 | "scopedRegistries": [ 41 | { 42 | "name": "NPM", 43 | "url": "https://registry.npmjs.org", 44 | "scopes": [ 45 | "com.mambojambostudios.marvelous" 46 | ] 47 | } 48 | ] 49 | } 50 | -------------------------------------------------------------------------------- /Packages/manifest.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 878ce737f11e54c78b80fbd40b31636b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.mambojambostudios.marvelous": { 4 | "version": "1.0.8", 5 | "depth": 0, 6 | "source": "registry", 7 | "dependencies": {}, 8 | "url": "https://registry.npmjs.org" 9 | }, 10 | "com.neuecc.unirx": { 11 | "version": "https://github.com/starikcetin/UniRx.git#7.1.0-upm", 12 | "depth": 0, 13 | "source": "git", 14 | "dependencies": {}, 15 | "hash": "f93af89f2aafeccfc7aff9dee2cecc6d60ede06b" 16 | }, 17 | "com.unity.2d.sprite": { 18 | "version": "1.0.0", 19 | "depth": 0, 20 | "source": "builtin", 21 | "dependencies": {} 22 | }, 23 | "com.unity.2d.tilemap": { 24 | "version": "1.0.0", 25 | "depth": 0, 26 | "source": "builtin", 27 | "dependencies": {} 28 | }, 29 | "com.unity.ext.nunit": { 30 | "version": "1.0.0", 31 | "depth": 0, 32 | "source": "registry", 33 | "dependencies": {}, 34 | "url": "https://packages.unity.com" 35 | }, 36 | "com.unity.ide.rider": { 37 | "version": "1.2.1", 38 | "depth": 0, 39 | "source": "registry", 40 | "dependencies": { 41 | "com.unity.test-framework": "1.1.1" 42 | }, 43 | "url": "https://packages.unity.com" 44 | }, 45 | "com.unity.ide.visualstudio": { 46 | "version": "2.0.20", 47 | "depth": 0, 48 | "source": "registry", 49 | "dependencies": { 50 | "com.unity.test-framework": "1.1.9" 51 | }, 52 | "url": "https://packages.unity.com" 53 | }, 54 | "com.unity.ide.vscode": { 55 | "version": "1.2.2", 56 | "depth": 0, 57 | "source": "registry", 58 | "dependencies": {}, 59 | "url": "https://packages.unity.com" 60 | }, 61 | "com.unity.inputsystem": { 62 | "version": "1.0.2", 63 | "depth": 0, 64 | "source": "registry", 65 | "dependencies": {}, 66 | "url": "https://packages.unity.com" 67 | }, 68 | "com.unity.test-framework": { 69 | "version": "1.1.16", 70 | "depth": 0, 71 | "source": "registry", 72 | "dependencies": { 73 | "com.unity.ext.nunit": "1.0.0", 74 | "com.unity.modules.imgui": "1.0.0", 75 | "com.unity.modules.jsonserialize": "1.0.0" 76 | }, 77 | "url": "https://packages.unity.com" 78 | }, 79 | "com.unity.ugui": { 80 | "version": "1.0.0", 81 | "depth": 0, 82 | "source": "builtin", 83 | "dependencies": { 84 | "com.unity.modules.ui": "1.0.0", 85 | "com.unity.modules.imgui": "1.0.0" 86 | } 87 | }, 88 | "com.unity.modules.androidjni": { 89 | "version": "1.0.0", 90 | "depth": 0, 91 | "source": "builtin", 92 | "dependencies": {} 93 | }, 94 | "com.unity.modules.animation": { 95 | "version": "1.0.0", 96 | "depth": 0, 97 | "source": "builtin", 98 | "dependencies": {} 99 | }, 100 | "com.unity.modules.assetbundle": { 101 | "version": "1.0.0", 102 | "depth": 0, 103 | "source": "builtin", 104 | "dependencies": {} 105 | }, 106 | "com.unity.modules.audio": { 107 | "version": "1.0.0", 108 | "depth": 0, 109 | "source": "builtin", 110 | "dependencies": {} 111 | }, 112 | "com.unity.modules.director": { 113 | "version": "1.0.0", 114 | "depth": 0, 115 | "source": "builtin", 116 | "dependencies": { 117 | "com.unity.modules.audio": "1.0.0", 118 | "com.unity.modules.animation": "1.0.0" 119 | } 120 | }, 121 | "com.unity.modules.imageconversion": { 122 | "version": "1.0.0", 123 | "depth": 0, 124 | "source": "builtin", 125 | "dependencies": {} 126 | }, 127 | "com.unity.modules.imgui": { 128 | "version": "1.0.0", 129 | "depth": 0, 130 | "source": "builtin", 131 | "dependencies": {} 132 | }, 133 | "com.unity.modules.jsonserialize": { 134 | "version": "1.0.0", 135 | "depth": 0, 136 | "source": "builtin", 137 | "dependencies": {} 138 | }, 139 | "com.unity.modules.particlesystem": { 140 | "version": "1.0.0", 141 | "depth": 0, 142 | "source": "builtin", 143 | "dependencies": {} 144 | }, 145 | "com.unity.modules.physics": { 146 | "version": "1.0.0", 147 | "depth": 0, 148 | "source": "builtin", 149 | "dependencies": {} 150 | }, 151 | "com.unity.modules.physics2d": { 152 | "version": "1.0.0", 153 | "depth": 0, 154 | "source": "builtin", 155 | "dependencies": {} 156 | }, 157 | "com.unity.modules.ui": { 158 | "version": "1.0.0", 159 | "depth": 0, 160 | "source": "builtin", 161 | "dependencies": {} 162 | }, 163 | "com.unity.modules.uielements": { 164 | "version": "1.0.0", 165 | "depth": 0, 166 | "source": "builtin", 167 | "dependencies": { 168 | "com.unity.modules.ui": "1.0.0", 169 | "com.unity.modules.imgui": "1.0.0", 170 | "com.unity.modules.jsonserialize": "1.0.0", 171 | "com.unity.modules.uielementsnative": "1.0.0" 172 | } 173 | }, 174 | "com.unity.modules.uielementsnative": { 175 | "version": "1.0.0", 176 | "depth": 1, 177 | "source": "builtin", 178 | "dependencies": { 179 | "com.unity.modules.ui": "1.0.0", 180 | "com.unity.modules.imgui": "1.0.0", 181 | "com.unity.modules.jsonserialize": "1.0.0" 182 | } 183 | }, 184 | "com.unity.modules.unitywebrequest": { 185 | "version": "1.0.0", 186 | "depth": 0, 187 | "source": "builtin", 188 | "dependencies": {} 189 | }, 190 | "com.unity.modules.unitywebrequestassetbundle": { 191 | "version": "1.0.0", 192 | "depth": 0, 193 | "source": "builtin", 194 | "dependencies": { 195 | "com.unity.modules.assetbundle": "1.0.0", 196 | "com.unity.modules.unitywebrequest": "1.0.0" 197 | } 198 | }, 199 | "com.unity.modules.unitywebrequestaudio": { 200 | "version": "1.0.0", 201 | "depth": 0, 202 | "source": "builtin", 203 | "dependencies": { 204 | "com.unity.modules.unitywebrequest": "1.0.0", 205 | "com.unity.modules.audio": "1.0.0" 206 | } 207 | }, 208 | "com.unity.modules.unitywebrequestwww": { 209 | "version": "1.0.0", 210 | "depth": 0, 211 | "source": "builtin", 212 | "dependencies": { 213 | "com.unity.modules.unitywebrequest": "1.0.0", 214 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 215 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 216 | "com.unity.modules.audio": "1.0.0", 217 | "com.unity.modules.assetbundle": "1.0.0", 218 | "com.unity.modules.imageconversion": "1.0.0" 219 | } 220 | } 221 | } 222 | } 223 | -------------------------------------------------------------------------------- /ProjectSettings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: baa5fd9ad1cd64487beafddc8b98f34d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5423bf6366eaa485db3e5601aeedc71c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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/ClusterInputManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54e7a6072ce9a42cea0f8e9d0a1109e8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99fa6ec19ce144e5ca615662bf67ebc9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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/UniRx/UniRx.unity 10 | guid: 31c534783e33c48a2acf5be4231304cd 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4413111566c514309ad6b91614007b96 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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: 9 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 1 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 4 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 1 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 457746b7f776448e2b7840f12246a263 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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: 10753, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 16002, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 498dfae4eb671482fa3d6cabc5b251f4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: a 13 | positiveButton: d 14 | altNegativeButton: 15 | altPositiveButton: 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: s 29 | positiveButton: w 30 | altNegativeButton: 31 | altPositiveButton: 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c8cbf562ce45458cbe096089a772c78 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6408937258f89479cb473f90199ce11a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3136b52fa861f4c05a301b482411336f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 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: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | - m_Id: scoped:NPM 28 | m_Name: NPM 29 | m_Url: https://registry.npmjs.org 30 | m_Scopes: 31 | - com.mambojambostudios.marvelous 32 | m_IsDefault: 0 33 | m_Capabilities: 0 34 | m_UserSelectedRegistryName: 35 | m_UserAddingNewScopedRegistry: 0 36 | m_RegistryInfoDraft: 37 | m_ErrorMessage: 38 | m_Original: 39 | m_Id: scoped:NPM 40 | m_Name: NPM 41 | m_Url: https://registry.npmjs.org 42 | m_Scopes: 43 | - com.mambojambostudios.marvelous 44 | m_IsDefault: 0 45 | m_Capabilities: 0 46 | m_Modified: 0 47 | m_Name: NPM 48 | m_Url: https://registry.npmjs.org 49 | m_Scopes: 50 | - com.mambojambostudios.marvelous 51 | m_SelectedScopeIndex: 0 52 | -------------------------------------------------------------------------------- /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_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa2a6907e47a2459bbc482bf31672cf0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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: 20 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: bfcfc320427f8224bbb7a96f3d3aebad, 13 | type: 2} 14 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6dfc21bca64b748f7bed183d849a5622 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20b55009b702946d49be8c967992ed18 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.1.9f1 2 | m_EditorVersionWithRevision: 2020.1.9f1 (145f5172610f) 3 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ef8827ea33f4489791ac21f5f211a5b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | excludedTargetPlatforms: [] 44 | - serializedVersion: 2 45 | name: Low 46 | pixelLightCount: 0 47 | shadows: 0 48 | shadowResolution: 0 49 | shadowProjection: 1 50 | shadowCascades: 1 51 | shadowDistance: 20 52 | shadowNearPlaneOffset: 3 53 | shadowCascade2Split: 0.33333334 54 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 55 | shadowmaskMode: 0 56 | skinWeights: 2 57 | textureQuality: 0 58 | anisotropicTextures: 0 59 | antiAliasing: 0 60 | softParticles: 0 61 | softVegetation: 0 62 | realtimeReflectionProbes: 0 63 | billboardsFaceCameraPosition: 0 64 | vSyncCount: 0 65 | lodBias: 0.4 66 | maximumLODLevel: 0 67 | streamingMipmapsActive: 0 68 | streamingMipmapsAddAllCameras: 1 69 | streamingMipmapsMemoryBudget: 512 70 | streamingMipmapsRenderersPerFrame: 512 71 | streamingMipmapsMaxLevelReduction: 2 72 | streamingMipmapsMaxFileIORequests: 1024 73 | particleRaycastBudget: 16 74 | asyncUploadTimeSlice: 2 75 | asyncUploadBufferSize: 16 76 | asyncUploadPersistentBuffer: 1 77 | resolutionScalingFixedDPIFactor: 1 78 | excludedTargetPlatforms: [] 79 | - serializedVersion: 2 80 | name: Medium 81 | pixelLightCount: 1 82 | shadows: 0 83 | shadowResolution: 0 84 | shadowProjection: 1 85 | shadowCascades: 1 86 | shadowDistance: 20 87 | shadowNearPlaneOffset: 3 88 | shadowCascade2Split: 0.33333334 89 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 90 | shadowmaskMode: 0 91 | skinWeights: 2 92 | textureQuality: 0 93 | anisotropicTextures: 0 94 | antiAliasing: 0 95 | softParticles: 0 96 | softVegetation: 0 97 | realtimeReflectionProbes: 0 98 | billboardsFaceCameraPosition: 0 99 | vSyncCount: 1 100 | lodBias: 0.7 101 | maximumLODLevel: 0 102 | streamingMipmapsActive: 0 103 | streamingMipmapsAddAllCameras: 1 104 | streamingMipmapsMemoryBudget: 512 105 | streamingMipmapsRenderersPerFrame: 512 106 | streamingMipmapsMaxLevelReduction: 2 107 | streamingMipmapsMaxFileIORequests: 1024 108 | particleRaycastBudget: 64 109 | asyncUploadTimeSlice: 2 110 | asyncUploadBufferSize: 16 111 | asyncUploadPersistentBuffer: 1 112 | resolutionScalingFixedDPIFactor: 1 113 | excludedTargetPlatforms: [] 114 | - serializedVersion: 2 115 | name: High 116 | pixelLightCount: 2 117 | shadows: 0 118 | shadowResolution: 1 119 | shadowProjection: 1 120 | shadowCascades: 2 121 | shadowDistance: 40 122 | shadowNearPlaneOffset: 3 123 | shadowCascade2Split: 0.33333334 124 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 125 | shadowmaskMode: 1 126 | skinWeights: 2 127 | textureQuality: 0 128 | anisotropicTextures: 0 129 | antiAliasing: 0 130 | softParticles: 0 131 | softVegetation: 1 132 | realtimeReflectionProbes: 0 133 | billboardsFaceCameraPosition: 0 134 | vSyncCount: 1 135 | lodBias: 1 136 | maximumLODLevel: 0 137 | streamingMipmapsActive: 0 138 | streamingMipmapsAddAllCameras: 1 139 | streamingMipmapsMemoryBudget: 512 140 | streamingMipmapsRenderersPerFrame: 512 141 | streamingMipmapsMaxLevelReduction: 2 142 | streamingMipmapsMaxFileIORequests: 1024 143 | particleRaycastBudget: 256 144 | asyncUploadTimeSlice: 2 145 | asyncUploadBufferSize: 16 146 | asyncUploadPersistentBuffer: 1 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Very High 151 | pixelLightCount: 3 152 | shadows: 0 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 2 156 | shadowDistance: 70 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | skinWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 0 164 | antiAliasing: 0 165 | softParticles: 0 166 | softVegetation: 1 167 | realtimeReflectionProbes: 0 168 | billboardsFaceCameraPosition: 0 169 | vSyncCount: 1 170 | lodBias: 1.5 171 | maximumLODLevel: 0 172 | streamingMipmapsActive: 0 173 | streamingMipmapsAddAllCameras: 1 174 | streamingMipmapsMemoryBudget: 512 175 | streamingMipmapsRenderersPerFrame: 512 176 | streamingMipmapsMaxLevelReduction: 2 177 | streamingMipmapsMaxFileIORequests: 1024 178 | particleRaycastBudget: 1024 179 | asyncUploadTimeSlice: 2 180 | asyncUploadBufferSize: 16 181 | asyncUploadPersistentBuffer: 1 182 | resolutionScalingFixedDPIFactor: 1 183 | excludedTargetPlatforms: [] 184 | - serializedVersion: 2 185 | name: Ultra 186 | pixelLightCount: 4 187 | shadows: 0 188 | shadowResolution: 0 189 | shadowProjection: 1 190 | shadowCascades: 4 191 | shadowDistance: 150 192 | shadowNearPlaneOffset: 3 193 | shadowCascade2Split: 0.33333334 194 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 195 | shadowmaskMode: 1 196 | skinWeights: 4 197 | textureQuality: 0 198 | anisotropicTextures: 0 199 | antiAliasing: 0 200 | softParticles: 0 201 | softVegetation: 1 202 | realtimeReflectionProbes: 0 203 | billboardsFaceCameraPosition: 0 204 | vSyncCount: 1 205 | lodBias: 2 206 | maximumLODLevel: 0 207 | streamingMipmapsActive: 0 208 | streamingMipmapsAddAllCameras: 1 209 | streamingMipmapsMemoryBudget: 512 210 | streamingMipmapsRenderersPerFrame: 512 211 | streamingMipmapsMaxLevelReduction: 2 212 | streamingMipmapsMaxFileIORequests: 1024 213 | particleRaycastBudget: 4096 214 | asyncUploadTimeSlice: 2 215 | asyncUploadBufferSize: 16 216 | asyncUploadPersistentBuffer: 1 217 | resolutionScalingFixedDPIFactor: 1 218 | excludedTargetPlatforms: [] 219 | m_PerPlatformDefaultQuality: 220 | Android: 0 221 | Standalone: 0 222 | WebGL: 0 223 | iPhone: 0 224 | tvOS: 0 225 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3801d35122b0f47f4aa943b0b60049f8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 365c82071289d4a37b6f366e1ce1a83b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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/TimeManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 493d699780ab94809b381153b30396fd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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: 0 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 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4c2a0e1e6061437daa858d35364eb8a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /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/VFXManager.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e6eae028e29a54b65b3c7c262f22e1ce 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /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 | # Unity Atoms Examples 2 | 3 | 🧪 Unity project using Unity Atoms containing examples and used for the development of Unity Atoms. 4 | 5 | ## Setup 6 | 7 | - Checkout this repo. 8 | - Checkout unity-atoms as a git submodule located in `Assets/unity-atoms`. 9 | -------------------------------------------------------------------------------- /UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | vcSharedLogLevel: 9 | value: 0d5e400f0650 10 | flags: 0 11 | m_VCAutomaticAdd: 1 12 | m_VCDebugCom: 0 13 | m_VCDebugCmd: 0 14 | m_VCDebugOut: 0 15 | m_SemanticMergeMode: 2 16 | m_VCShowFailedCheckout: 1 17 | m_VCOverwriteFailedCheckoutAssets: 1 18 | m_VCOverlayIcons: 1 19 | m_VCAllowAsyncUpdate: 0 20 | --------------------------------------------------------------------------------