diff --git a/Assets/Scripts/Map/MapService.cs b/Assets/Scripts/Map/MapService.cs index b6582377..96a0c781 100644 --- a/Assets/Scripts/Map/MapService.cs +++ b/Assets/Scripts/Map/MapService.cs @@ -6,7 +6,7 @@ namespace ServiceLocator.Map { - public class MapService : MonoBehaviour + public class MapService :GenericMonoSingleton { [SerializeField] private EventService eventService; [SerializeField] private MapScriptableObject mapScriptableObject; @@ -16,6 +16,9 @@ public class MapService : MonoBehaviour private MapData currentMapData; private SpriteRenderer tileOverlay; + + + private void Start() { SubscribeToEvents(); diff --git a/Assets/Scripts/Player/PlayerService.cs b/Assets/Scripts/Player/PlayerService.cs index c58646b9..0f47fa0a 100644 --- a/Assets/Scripts/Player/PlayerService.cs +++ b/Assets/Scripts/Player/PlayerService.cs @@ -7,15 +7,13 @@ namespace ServiceLocator.Player { - public class PlayerService : MonoBehaviour + public class PlayerService : GenericMonoSingleton { - [SerializeField] private UIService uiService; - [SerializeField] private MapService mapService; - [SerializeField] private SoundService soundService; - [SerializeField] private PlayerService playerService; [SerializeField] public PlayerScriptableObject playerScriptableObject; + + private ProjectilePool projectilePool; private List activeMonkeys; @@ -23,9 +21,10 @@ public class PlayerService : MonoBehaviour private int health; public int Money { get; private set; } + private void Start() { - projectilePool = new ProjectilePool(playerService, playerScriptableObject.ProjectilePrefab, playerScriptableObject.ProjectileScriptableObjects); + projectilePool = new ProjectilePool( playerScriptableObject.ProjectilePrefab, playerScriptableObject.ProjectileScriptableObjects); InitializeVariables(); } @@ -33,8 +32,8 @@ private void InitializeVariables() { health = playerScriptableObject.Health; Money = playerScriptableObject.Money; - uiService.UpdateHealthUI(health); - uiService.UpdateMoneyUI(Money); + UIService.Instance.UpdateHealthUI(health); + UIService.Instance.UpdateMoneyUI(Money); activeMonkeys = new List(); } @@ -82,7 +81,7 @@ public void ValidateSpawnPosition(int monkeyCost, Vector3 dropPosition) if (monkeyCost > Money) return; - mapService.ValidateSpawnPosition(dropPosition); + MapService.Instance.ValidateSpawnPosition(dropPosition); } public void TrySpawningMonkey(MonkeyType monkeyType, int monkeyCost, Vector3 dropPosition) @@ -90,10 +89,10 @@ public void TrySpawningMonkey(MonkeyType monkeyType, int monkeyCost, Vector3 dro if (monkeyCost > Money) return; - if (mapService.TryGetMonkeySpawnPosition(dropPosition, out Vector3 spawnPosition)) + if (MapService.Instance.TryGetMonkeySpawnPosition(dropPosition, out Vector3 spawnPosition)) { SpawnMonkey(monkeyType, spawnPosition); - soundService.PlaySoundEffects(SoundType.SpawnMonkey); + SoundService.Instance.PlaySoundEffects(SoundType.SpawnMonkey); } } @@ -116,7 +115,7 @@ public void TakeDamage(int damageToTake) int reducedHealth = health - damageToTake; health = reducedHealth <= 0 ? 0 : health - damageToTake; - uiService.UpdateHealthUI(health); + UIService.Instance.UpdateHealthUI(health); if(health <= 0) PlayerDeath(); } @@ -124,15 +123,15 @@ public void TakeDamage(int damageToTake) private void DeductMoney(int moneyToDedecut) { Money -= moneyToDedecut; - uiService.UpdateMoneyUI(Money); + UIService.Instance.UpdateMoneyUI(Money); } public void GetReward(int reward) { Money += reward; - uiService.UpdateMoneyUI(Money); + UIService.Instance.UpdateMoneyUI(Money); } - private void PlayerDeath() => uiService.UpdateGameEndUI(false); + private void PlayerDeath() => UIService.Instance.UpdateGameEndUI(false); } } \ No newline at end of file diff --git a/Assets/Scripts/Player/Projectile/ProjectileController.cs b/Assets/Scripts/Player/Projectile/ProjectileController.cs index 5611d368..a7cd3427 100644 --- a/Assets/Scripts/Player/Projectile/ProjectileController.cs +++ b/Assets/Scripts/Player/Projectile/ProjectileController.cs @@ -5,16 +5,14 @@ namespace ServiceLocator.Player.Projectile { public class ProjectileController { - private PlayerService playerService; private ProjectileView projectileView; private ProjectileScriptableObject projectileScriptableObject; private BloonController target; private ProjectileState currentState; - public ProjectileController(PlayerService playerService, ProjectileView projectilePrefab, Transform projectileContainer) + public ProjectileController( ProjectileView projectilePrefab, Transform projectileContainer) { - this.playerService = playerService; projectileView = Object.Instantiate(projectilePrefab, projectileContainer); projectileView.SetController(this); } @@ -63,7 +61,7 @@ public void ResetProjectile() { target = null; projectileView.gameObject.SetActive(false); - playerService.ReturnProjectileToPool(this); + PlayerService.Instance.ReturnProjectileToPool(this); } private void SetState(ProjectileState newState) => currentState = newState; diff --git a/Assets/Scripts/Player/Projectile/ProjectilePool.cs b/Assets/Scripts/Player/Projectile/ProjectilePool.cs index 066b4bd4..2192dbe1 100644 --- a/Assets/Scripts/Player/Projectile/ProjectilePool.cs +++ b/Assets/Scripts/Player/Projectile/ProjectilePool.cs @@ -12,14 +12,12 @@ namespace ServiceLocator.Player.Projectile { public class ProjectilePool : GenericObjectPool { - private PlayerService playerService; private ProjectileView projectilePrefab; private List projectileScriptableObjects; private Transform projectileContainer; - public ProjectilePool(PlayerService playerService, ProjectileView projectilePrefab, List projectileScriptableObjects) + public ProjectilePool( ProjectileView projectilePrefab, List projectileScriptableObjects) { - this.playerService = playerService; this.projectilePrefab = projectilePrefab; this.projectileScriptableObjects = projectileScriptableObjects; this.projectileContainer = new GameObject("Projectile Container").transform; @@ -33,6 +31,6 @@ public ProjectileController GetProjectile(ProjectileType projectileType) return projectile; } - protected override ProjectileController CreateItem() => new ProjectileController(playerService, projectilePrefab, projectileContainer); + protected override ProjectileController CreateItem() => new ProjectileController( projectilePrefab, projectileContainer); } } \ No newline at end of file diff --git a/Assets/Scripts/Sound/SoundService.cs b/Assets/Scripts/Sound/SoundService.cs index f77a34d0..5f2eaffc 100644 --- a/Assets/Scripts/Sound/SoundService.cs +++ b/Assets/Scripts/Sound/SoundService.cs @@ -3,12 +3,14 @@ namespace ServiceLocator.Sound { - public class SoundService : MonoBehaviour + public class SoundService : GenericMonoSingleton { [SerializeField] private SoundScriptableObject soundScriptableObject; [SerializeField] private AudioSource audioEffects; [SerializeField] private AudioSource backgroundMusic; + + private void Start() { PlaybackgroundMusic(SoundType.BackgroundMusic, true); diff --git a/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyCellController.cs b/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyCellController.cs index 9ccf5073..9f23a094 100644 --- a/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyCellController.cs +++ b/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyCellController.cs @@ -5,13 +5,11 @@ namespace ServiceLocator.UI { public class MonkeyCellController { - private PlayerService playerService; private MonkeyCellView monkeyCellView; private MonkeyCellScriptableObject monkeyCellSO; - public MonkeyCellController(PlayerService playerService, Transform cellContainer, MonkeyCellView monkeyCellPrefab, MonkeyCellScriptableObject monkeyCellScriptableObject) + public MonkeyCellController( Transform cellContainer, MonkeyCellView monkeyCellPrefab, MonkeyCellScriptableObject monkeyCellScriptableObject) { - this.playerService = playerService; this.monkeyCellSO = monkeyCellScriptableObject; monkeyCellView = Object.Instantiate(monkeyCellPrefab, cellContainer); monkeyCellView.SetController(this); @@ -20,12 +18,12 @@ public MonkeyCellController(PlayerService playerService, Transform cellContainer public void MonkeyDraggedAt(Vector3 dragPosition) { - playerService.ValidateSpawnPosition(monkeyCellSO.Cost, dragPosition); + PlayerService.Instance.ValidateSpawnPosition(monkeyCellSO.Cost, dragPosition); } public void MonkeyDroppedAt(Vector3 dropPosition) { - playerService.TrySpawningMonkey(monkeyCellSO.Type, monkeyCellSO.Cost, dropPosition); + PlayerService.Instance.TrySpawningMonkey(monkeyCellSO.Type, monkeyCellSO.Cost, dropPosition); } } } \ No newline at end of file diff --git a/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyImageHandler.cs b/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyImageHandler.cs index f4f543aa..20284381 100644 --- a/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyImageHandler.cs +++ b/Assets/Scripts/UI/MonkeySelectionPanel/MonkeyImageHandler.cs @@ -6,22 +6,66 @@ namespace ServiceLocator.UI { - public class MonkeyImageHandler : MonoBehaviour + public class MonkeyImageHandler : MonoBehaviour, IDragHandler, IEndDragHandler, IPointerDownHandler { private Image monkeyImage; private MonkeyCellController owner; private Sprite spriteToSet; + private RectTransform rectTransform; + private Vector3 originalPosition; + private Vector3 originalAnchorPosition; public void ConfigureImageHandler(Sprite spriteToSet, MonkeyCellController owner) { this.spriteToSet = spriteToSet; this.owner = owner; - } + } private void Awake() { monkeyImage = GetComponent(); monkeyImage.sprite = spriteToSet; + rectTransform = GetComponent(); + originalAnchorPosition = rectTransform.anchoredPosition; + originalPosition = rectTransform.position; + + + } + + + public void OnEndDrag(PointerEventData eventData) + { + ResetMokey(); + owner.MonkeyDroppedAt(eventData.position); + } + + void ResetMokey() + { + rectTransform.anchoredPosition = originalAnchorPosition; + rectTransform.position = originalPosition; + GetComponent().enabled = false; + GetComponent().enabled = true; + monkeyImage.color = new Color(1, 1, 1, 1); + + } + + public void OnPointerDown(PointerEventData eventData) + { + monkeyImage.color = new Color(1, 1, 1, 0.5f); + } + + public void OnDrag(PointerEventData eventData) + { + Vector2 localPoint; + RectTransformUtility.ScreenPointToLocalPointInRectangle( + rectTransform.parent as RectTransform, // Reference to the parent UI element + eventData.position, // Mouse position + eventData.pressEventCamera, // Camera that rendered the UI + out localPoint // Converted local position + ); + + rectTransform.anchoredPosition = localPoint; + owner.MonkeyDraggedAt(rectTransform.position); } } } \ No newline at end of file diff --git a/Assets/Scripts/UI/MonkeySelectionPanel/MonkeySelectionUIController.cs b/Assets/Scripts/UI/MonkeySelectionPanel/MonkeySelectionUIController.cs index 69ca0bad..18e11234 100644 --- a/Assets/Scripts/UI/MonkeySelectionPanel/MonkeySelectionUIController.cs +++ b/Assets/Scripts/UI/MonkeySelectionPanel/MonkeySelectionUIController.cs @@ -9,14 +9,14 @@ public class MonkeySelectionUIController private Transform cellContainer; private List monkeyCellControllers; - public MonkeySelectionUIController(PlayerService playerService, Transform cellContainer, MonkeyCellView monkeyCellPrefab, List monkeyCellScriptableObjects) + public MonkeySelectionUIController( Transform cellContainer, MonkeyCellView monkeyCellPrefab, List monkeyCellScriptableObjects) { this.cellContainer = cellContainer; monkeyCellControllers = new List(); foreach (MonkeyCellScriptableObject monkeySO in monkeyCellScriptableObjects) { - MonkeyCellController monkeyCell = new MonkeyCellController(playerService, cellContainer, monkeyCellPrefab, monkeySO); + MonkeyCellController monkeyCell = new MonkeyCellController( cellContainer, monkeyCellPrefab, monkeySO); monkeyCellControllers.Add(monkeyCell); } } diff --git a/Assets/Scripts/UI/UIService.cs b/Assets/Scripts/UI/UIService.cs index 41da46cf..c8f012d2 100644 --- a/Assets/Scripts/UI/UIService.cs +++ b/Assets/Scripts/UI/UIService.cs @@ -9,11 +9,9 @@ namespace ServiceLocator.UI { - public class UIService : MonoBehaviour + public class UIService : GenericMonoSingleton { [SerializeField] private EventService eventService; - [SerializeField] private WaveService waveService; - [SerializeField] private PlayerService playerService; [Header("Gameplay Panel")] [SerializeField] private GameObject gameplayPanel; @@ -41,9 +39,11 @@ public class UIService : MonoBehaviour [SerializeField] private Button quitButton; + + private void Start() { - monkeySelectionController = new MonkeySelectionUIController(playerService, cellContainer, monkeyCellPrefab, monkeyCellScriptableObjects); + monkeySelectionController = new MonkeySelectionUIController( cellContainer, monkeyCellPrefab, monkeyCellScriptableObjects); MonkeySelectionPanel.SetActive(false); monkeySelectionController.SetActive(false); @@ -71,7 +71,7 @@ public void OnMapSelected(int mapID) private void OnNextWaveButton() { - waveService.StarNextWave(); + WaveService.Instance.StarNextWave(); SetNextWaveButton(false); } diff --git a/Assets/Scripts/Utilities/GenericMonoSingleton.cs b/Assets/Scripts/Utilities/GenericMonoSingleton.cs new file mode 100644 index 00000000..c0b59dd9 --- /dev/null +++ b/Assets/Scripts/Utilities/GenericMonoSingleton.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class GenericMonoSingleton : MonoBehaviour where T: GenericMonoSingleton +{ + public static T Instance { get { return instance; } } + + private static T instance; + + private void Awake() + { + if (!instance) + { + instance = (T)this; + } + else if(instance) + { + Destroy(this.gameObject); + } + } + + +} diff --git a/Assets/Scripts/Utilities/GenericMonoSingleton.cs.meta b/Assets/Scripts/Utilities/GenericMonoSingleton.cs.meta new file mode 100644 index 00000000..d6dbef71 --- /dev/null +++ b/Assets/Scripts/Utilities/GenericMonoSingleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c105b7e885f4ba4c9c841b1a9334dea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Wave/Bloons/BloonController.cs b/Assets/Scripts/Wave/Bloons/BloonController.cs index 3109106c..baae9293 100644 --- a/Assets/Scripts/Wave/Bloons/BloonController.cs +++ b/Assets/Scripts/Wave/Bloons/BloonController.cs @@ -7,8 +7,6 @@ namespace ServiceLocator.Wave.Bloon { public class BloonController { - private PlayerService playerService; - private WaveService waveService; private SoundService soundService; private BloonView bloonView; @@ -22,10 +20,8 @@ public class BloonController public Vector3 Position => bloonView.transform.position; - public BloonController(PlayerService playerService, WaveService waveService, SoundService soundService, BloonView bloonPrefab, Transform bloonContainer) + public BloonController( SoundService soundService, BloonView bloonPrefab, Transform bloonContainer) { - this.playerService = playerService; - this.waveService = waveService; this.soundService = soundService; bloonView = Object.Instantiate(bloonPrefab, bloonContainer); bloonView.Controller = this; @@ -92,8 +88,8 @@ public void FollowWayPoints() private void ResetBloon() { - waveService.RemoveBloon(this); - playerService.TakeDamage(bloonScriptableObject.Damage); + WaveService.Instance.RemoveBloon(this); + PlayerService.Instance.TakeDamage(bloonScriptableObject.Damage); bloonView.gameObject.SetActive(false); } @@ -112,13 +108,13 @@ public void OnPopAnimationPlayed() if (HasLayeredBloons()) SpawnLayeredBloons(); - playerService.GetReward(bloonScriptableObject.Reward); - waveService.RemoveBloon(this); + PlayerService.Instance.GetReward(bloonScriptableObject.Reward); + WaveService.Instance.RemoveBloon(this); } private bool HasLayeredBloons() => bloonScriptableObject.LayeredBloons.Count > 0; - private void SpawnLayeredBloons() => waveService.SpawnBloons(bloonScriptableObject.LayeredBloons, + private void SpawnLayeredBloons() => WaveService.Instance.SpawnBloons(bloonScriptableObject.LayeredBloons, bloonView.transform.position, currentWaypointIndex, bloonScriptableObject.LayerBloonSpawnRate); diff --git a/Assets/Scripts/Wave/Bloons/BloonPool.cs b/Assets/Scripts/Wave/Bloons/BloonPool.cs index f63db1e5..fd681871 100644 --- a/Assets/Scripts/Wave/Bloons/BloonPool.cs +++ b/Assets/Scripts/Wave/Bloons/BloonPool.cs @@ -14,18 +14,14 @@ namespace ServiceLocator.Wave.Bloon { public class BloonPool : GenericObjectPool { - private PlayerService playerService; - private WaveService waveService; private SoundService soundService; private BloonView bloonPrefab; private List bloonScriptableObjects; private Transform bloonContainer; - public BloonPool(PlayerService playerService, WaveService waveService, SoundService soundService, WaveScriptableObject waveScriptableObject) + public BloonPool( SoundService soundService, WaveScriptableObject waveScriptableObject) { - this.playerService = playerService; - this.waveService = waveService; this.soundService = soundService; this.bloonPrefab = waveScriptableObject.BloonPrefab; this.bloonScriptableObjects = waveScriptableObject.BloonScriptableObjects; @@ -40,6 +36,6 @@ public BloonController GetBloon(BloonType bloonType) return bloon; } - protected override BloonController CreateItem() => new BloonController(playerService, waveService, soundService, bloonPrefab, bloonContainer); + protected override BloonController CreateItem() => new BloonController( soundService, bloonPrefab, bloonContainer); } } \ No newline at end of file diff --git a/Assets/Scripts/Wave/WaveService.cs b/Assets/Scripts/Wave/WaveService.cs index bf59a7b1..729547be 100644 --- a/Assets/Scripts/Wave/WaveService.cs +++ b/Assets/Scripts/Wave/WaveService.cs @@ -13,10 +13,7 @@ namespace ServiceLocator.Wave public class WaveService : MonoBehaviour { [SerializeField] private EventService eventService; - [SerializeField] private UIService uiService; - [SerializeField] private MapService mapService; [SerializeField] private SoundService soundService; - [SerializeField] private PlayerService playerService; [SerializeField] private WaveScriptableObject waveScriptableObject; private BloonPool bloonPool; @@ -25,6 +22,21 @@ public class WaveService : MonoBehaviour private List waveDatas; private List activeBloons; + public static WaveService Instance { get { return instance; } } + private static WaveService instance; + + private void Awake() + { + if (!instance) + { + instance = this; + } + else if (instance) + { + Destroy(this.gameObject); + } + } + private void Start() { InitializeBloons(); @@ -33,7 +45,7 @@ private void Start() private void InitializeBloons() { - bloonPool = new BloonPool(playerService, this, soundService, waveScriptableObject); + bloonPool = new BloonPool(soundService, waveScriptableObject); activeBloons = new List(); } @@ -43,14 +55,14 @@ private void LoadWaveDataForMap(int mapId) { currentWaveId = 0; waveDatas = waveScriptableObject.WaveConfigurations.Find(config => config.MapID == mapId).WaveDatas; - uiService.UpdateWaveProgressUI(currentWaveId, waveDatas.Count); + UIService.Instance.UpdateWaveProgressUI(currentWaveId, waveDatas.Count); } public void StarNextWave() { currentWaveId++; var bloonsToSpawn = GetBloonsForCurrentWave(); - var spawnPosition = mapService.GetBloonSpawnPositionForCurrentMap(); + var spawnPosition = MapService.Instance.GetBloonSpawnPositionForCurrentMap(); SpawnBloons(bloonsToSpawn, spawnPosition, 0, waveScriptableObject.SpawnRate); } @@ -60,7 +72,7 @@ public async void SpawnBloons(List bloonsToSpawn, Vector3 spawnPositi { BloonController bloon = bloonPool.GetBloon(bloonType); bloon.SetPosition(spawnPosition); - bloon.SetWayPoints(mapService.GetWayPointsForCurrentMap(), startingWaypointIndex); + bloon.SetWayPoints(MapService.Instance.GetWayPointsForCurrentMap(), startingWaypointIndex); AddBloon(bloon); await Task.Delay(Mathf.RoundToInt(spawnRate * 1000)); @@ -80,12 +92,12 @@ public void RemoveBloon(BloonController bloon) if (HasCurrentWaveEnded()) { soundService.PlaySoundEffects(Sound.SoundType.WaveComplete); - uiService.UpdateWaveProgressUI(currentWaveId, waveDatas.Count); + UIService.Instance.UpdateWaveProgressUI(currentWaveId, waveDatas.Count); if(IsLevelWon()) - uiService.UpdateGameEndUI(true); + UIService.Instance.UpdateGameEndUI(true); else - uiService.SetNextWaveButton(true); + UIService.Instance.SetNextWaveButton(true); } } diff --git a/Packages/manifest.json b/Packages/manifest.json index 861a650e..6002c126 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,15 +1,15 @@ { "dependencies": { - "com.unity.collab-proxy": "2.0.1", - "com.unity.feature.2d": "1.0.0", - "com.unity.ide.rider": "3.0.18", - "com.unity.ide.visualstudio": "2.0.17", + "com.unity.collab-proxy": "2.5.2", + "com.unity.feature.2d": "2.0.1", + "com.unity.ide.rider": "3.0.31", + "com.unity.ide.visualstudio": "2.0.22", "com.unity.ide.vscode": "1.2.5", - "com.unity.test-framework": "1.1.31", + "com.unity.test-framework": "1.1.33", "com.unity.textmeshpro": "3.0.6", - "com.unity.timeline": "1.6.4", + "com.unity.timeline": "1.6.5", "com.unity.ugui": "1.0.0", - "com.unity.visualscripting": "1.8.0", + "com.unity.visualscripting": "1.9.4", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 6aaf454c..4b6fdcab 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,26 +1,38 @@ { "dependencies": { "com.unity.2d.animation": { - "version": "7.0.9", + "version": "7.1.1", "depth": 1, "source": "registry", "dependencies": { - "com.unity.2d.common": "6.0.6", + "com.unity.2d.common": "6.0.7", "com.unity.2d.sprite": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.uielements": "1.0.0" }, "url": "https://packages.unity.com" }, + "com.unity.2d.aseprite": { + "version": "1.1.6", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "6.0.6", + "com.unity.2d.sprite": "1.0.0", + "com.unity.mathematics": "1.2.6", + "com.unity.modules.animation": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.2d.common": { - "version": "6.0.6", + "version": "6.0.7", "depth": 2, "source": "registry", "dependencies": { + "com.unity.burst": "1.5.1", "com.unity.2d.sprite": "1.0.0", "com.unity.mathematics": "1.1.0", - "com.unity.modules.uielements": "1.0.0", - "com.unity.burst": "1.5.1" + "com.unity.modules.uielements": "1.0.0" }, "url": "https://packages.unity.com" }, @@ -39,13 +51,13 @@ "url": "https://packages.unity.com" }, "com.unity.2d.psdimporter": { - "version": "6.0.7", + "version": "6.0.9", "depth": 1, "source": "registry", "dependencies": { - "com.unity.2d.animation": "7.0.9", - "com.unity.2d.common": "6.0.6", - "com.unity.2d.sprite": "1.0.0" + "com.unity.2d.common": "6.0.7", + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.animation": "7.1.0" }, "url": "https://packages.unity.com" }, @@ -56,13 +68,13 @@ "dependencies": {} }, "com.unity.2d.spriteshape": { - "version": "7.0.6", + "version": "7.0.7", "depth": 1, "source": "registry", "dependencies": { - "com.unity.mathematics": "1.1.0", - "com.unity.2d.common": "6.0.4", "com.unity.2d.path": "5.0.2", + "com.unity.2d.common": "6.0.6", + "com.unity.mathematics": "1.1.0", "com.unity.modules.physics2d": "1.0.0" }, "url": "https://packages.unity.com" @@ -74,28 +86,29 @@ "dependencies": {} }, "com.unity.2d.tilemap.extras": { - "version": "2.2.4", + "version": "2.2.7", "depth": 1, "source": "registry", "dependencies": { - "com.unity.modules.tilemap": "1.0.0", - "com.unity.2d.tilemap": "1.0.0", "com.unity.ugui": "1.0.0", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0" }, "url": "https://packages.unity.com" }, "com.unity.burst": { - "version": "1.6.6", + "version": "1.8.18", "depth": 3, "source": "registry", "dependencies": { - "com.unity.mathematics": "1.2.1" + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" }, "url": "https://packages.unity.com" }, "com.unity.collab-proxy": { - "version": "2.0.1", + "version": "2.5.2", "depth": 0, "source": "registry", "dependencies": {}, @@ -109,21 +122,22 @@ "url": "https://packages.unity.com" }, "com.unity.feature.2d": { - "version": "1.0.0", + "version": "2.0.1", "depth": 0, "source": "builtin", "dependencies": { - "com.unity.2d.animation": "7.0.9", + "com.unity.2d.animation": "7.1.1", "com.unity.2d.pixel-perfect": "5.0.3", - "com.unity.2d.psdimporter": "6.0.7", + "com.unity.2d.psdimporter": "6.0.9", "com.unity.2d.sprite": "1.0.0", - "com.unity.2d.spriteshape": "7.0.6", + "com.unity.2d.spriteshape": "7.0.7", "com.unity.2d.tilemap": "1.0.0", - "com.unity.2d.tilemap.extras": "2.2.4" + "com.unity.2d.tilemap.extras": "2.2.7", + "com.unity.2d.aseprite": "1.1.6" } }, "com.unity.ide.rider": { - "version": "3.0.18", + "version": "3.0.31", "depth": 0, "source": "registry", "dependencies": { @@ -132,7 +146,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.17", + "version": "2.0.22", "depth": 0, "source": "registry", "dependencies": { @@ -155,7 +169,7 @@ "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.31", + "version": "1.1.33", "depth": 0, "source": "registry", "dependencies": { @@ -175,13 +189,13 @@ "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.6.4", + "version": "1.6.5", "depth": 0, "source": "registry", "dependencies": { + "com.unity.modules.audio": "1.0.0", "com.unity.modules.director": "1.0.0", "com.unity.modules.animation": "1.0.0", - "com.unity.modules.audio": "1.0.0", "com.unity.modules.particlesystem": "1.0.0" }, "url": "https://packages.unity.com" @@ -196,7 +210,7 @@ } }, "com.unity.visualscripting": { - "version": "1.8.0", + "version": "1.9.4", "depth": 0, "source": "registry", "dependencies": { diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index bca3d022..8386a052 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2021.3.21f1 -m_EditorVersionWithRevision: 2021.3.21f1 (1b156197d683) +m_EditorVersion: 2021.3.45f1 +m_EditorVersionWithRevision: 2021.3.45f1 (0da89fac8e79)