Browse Source

- Перероблений звук

- Правка покупок
master
Seraph 3 years ago
parent
commit
075ce2d80d
  1. 98
      Assets_DLL/Core/Ads/AdsManager.cs
  2. 9
      Assets_DLL/Core/Ads/Bridges/DemoAds/DemoBannerAds.cs
  3. 7
      Assets_DLL/Core/Ads/RewardedButton.cs
  4. 343
      Assets_DLL/Core/Audio/AudioController.cs
  5. 202
      Assets_DLL/Core/Audio/AudioController2D.cs
  6. 154
      Assets_DLL/Core/Audio/AudioController3D.cs
  7. 190
      Assets_DLL/Core/Audio/AudioPlayer.cs
  8. 124
      Assets_DLL/Core/Audio/PlayAudioFile.cs
  9. 128
      Assets_DLL/Core/Core.csproj
  10. 224
      Assets_DLL/Core/Core.csproj.bak
  11. 10
      Assets_DLL/Core/IAP/PurchaseButton.cs
  12. 13
      Assets_DLL/Core/IAP/PurchaseManager.cs
  13. 145
      Assets_DLL/Core/IAP/PurchaseManagerBase.cs
  14. 4
      Assets_DLL/Core/Settings/CoreSettingsData.cs
  15. 18
      Assets_DLL/Core/Tools/Pool/Particles/Particle.cs
  16. 3
      Assets_DLL/Core/Tools/Pool/Particles/ParticlesPool.cs
  17. 50
      Assets_DLL/Core/Tools/Saves/SaveManager.cs
  18. 53
      Assets_DLL/Core/Tools/Saves/Utils/Encrypter.cs
  19. 2
      Assets_DLL/Core/obj/Core.csproj.nuget.dgspec.json
  20. 5
      Assets_DLL/Core/obj/Core.csproj.nuget.g.props
  21. 3
      Assets_DLL/Core/obj/Core.csproj.nuget.g.targets
  22. BIN
      Assets_DLL/Core/obj/Debug/netstandard2.0/Core.assets.cache
  23. BIN
      Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.AssemblyReference.cache
  24. 2
      Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.CoreCompileInputs.cache
  25. BIN
      Assets_DLL/Core/obj/Debug/netstandard2.0/Core.dll
  26. 2
      Assets_DLL/Core/obj/project.assets.json
  27. 2
      Assets_DLL/Core/obj/project.nuget.cache
  28. 130
      Assets_DLL/CoreEditor/CoreEditor.csproj
  29. 227
      Assets_DLL/CoreEditor/CoreEditor.csproj.bak
  30. 24
      Assets_DLL/CoreEditor/Settings/CoreSettingsWindow.cs
  31. 4
      Assets_DLL/CoreEditor/Tools/SaveManagerEditor.cs
  32. 4
      Assets_DLL/CoreEditor/obj/CoreEditor.csproj.nuget.dgspec.json
  33. 5
      Assets_DLL/CoreEditor/obj/CoreEditor.csproj.nuget.g.props
  34. 3
      Assets_DLL/CoreEditor/obj/CoreEditor.csproj.nuget.g.targets
  35. BIN
      Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.assets.cache
  36. BIN
      Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.AssemblyReference.cache
  37. 2
      Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.CoreCompileInputs.cache
  38. BIN
      Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.dll
  39. 2
      Assets_DLL/CoreEditor/obj/project.assets.json
  40. 2
      Assets_DLL/CoreEditor/obj/project.nuget.cache

98
Assets_DLL/Core/Ads/AdsManager.cs

@ -64,10 +64,10 @@ namespace Core.Ads
PurchaseManager.OnPurchaseSuccess += (productId) =>
{
if (CoreSettings.data.IsProductConsumable(productId))
if (CoreSettings.data.IsProductConsumable(productId.definition.id))
return;
if (CoreSettings.data.IsOnAdsProduct(productId))
if (CoreSettings.data.IsOnAdsProduct(productId.definition.id))
HideBanner();
};
}
@ -101,23 +101,35 @@ namespace Core.Ads
return false;
if (_interstitial == null)
throw new NullReferenceException("Ads bridge object does not implement IInterstitialBridge");
{
Debug.LogError("Ads bridge object does not implement IInterstitialBridge");
return false;
}
if (CoreSettings.data.needInterstitial)
return _interstitial.IsReady();
else
throw new InvalidOperationException("Interstitial ads is disabled");
{
Debug.LogError("Interstitial ads is disabled");
return false;
}
}
public static bool IsInterstitialVisible()
{
if (_interstitial == null)
throw new NullReferenceException("Ads bridge object does not implement IInterstitialBridge");
{
Debug.LogError("Ads bridge object does not implement IInterstitialBridge");
return false;
}
if (CoreSettings.data.needInterstitial)
return _interstitial.IsVisible();
else
throw new InvalidOperationException("Interstitial ads is disabled");
{
Debug.LogError("Interstitial ads is disabled");
return false;
}
}
public static void ShowInterstitial()
@ -128,12 +140,23 @@ namespace Core.Ads
return;
if (_interstitial == null)
throw new NullReferenceException("Ads bridge object does not implement IInterstitialBridge");
{
Debug.LogError("Ads bridge object does not implement IInterstitialBridge");
return;
}
if (CoreSettings.data.needInterstitial)
_interstitial.Show();
{
if (_interstitial.IsReady())
_interstitial.Show();
else
Debug.LogError("Interstitial ads is not ready");
}
else
throw new InvalidOperationException("Interstitial ads is disabled");
{
Debug.LogError("Interstitial ads is disabled");
return;
}
}
public static bool IsRewardedReady()
@ -142,12 +165,18 @@ namespace Core.Ads
return false;
if (_rewarded == null)
throw new NullReferenceException("Ads bridge object does not implement IRewardedBridge");
{
Debug.LogError("Ads bridge object does not implement IRewardedBridge");
return false;
}
if (CoreSettings.data.needRewarded)
return _rewarded.IsReady();
else
throw new InvalidOperationException("Rewarded ads is disabled");
{
Debug.LogError("Rewarded ads is disabled");
return false;
}
}
public static void ShowRewarded(Action onSucces, Action onFailed)
@ -158,23 +187,40 @@ namespace Core.Ads
return;
if (_rewarded == null)
throw new NullReferenceException("Ads bridge object does not implement IRewardedBridge");
{
Debug.LogError("Ads bridge object does not implement IRewardedBridge");
return;
}
if (CoreSettings.data.needRewarded)
_rewarded.Show(onSucces, onFailed);
{
if (_rewarded.IsReady())
_rewarded.Show(onSucces, onFailed);
else
Debug.LogError("Rewarded ads is not ready");
}
else
throw new InvalidOperationException("Rewarded ads is disabled");
{
Debug.LogError("Rewarded ads is disabled");
return;
}
}
public static bool IsBannerVisible()
{
if (_banner == null)
throw new NullReferenceException("Ads bridge object does not implement IBannerBridge");
{
Debug.LogError("Ads bridge object does not implement IBannerBridge");
return false;
}
if (CoreSettings.data.needBanner)
_banner.IsVisible();
else
throw new InvalidOperationException("Banner ads is disabled");
{
Debug.LogError("Banner ads is disabled");
return false;
}
return false;
}
@ -187,12 +233,18 @@ namespace Core.Ads
return;
if (_banner == null)
throw new NullReferenceException("Ads bridge object does not implement IBannerBridge");
{
Debug.LogError("Ads bridge object does not implement IBannerBridge");
return;
}
if (CoreSettings.data.needBanner)
_banner.Show(position);
else
throw new InvalidOperationException("Banner ads is disabled");
{
Debug.LogError("Banner ads is disabled");
return;
}
}
public static void HideBanner()
@ -200,12 +252,18 @@ namespace Core.Ads
Debug.Log("Called hide banner");
if (_banner == null)
throw new NullReferenceException("Ads bridge object does not implement IBannerBridge");
{
Debug.LogError("Ads bridge object does not implement IBannerBridge");
return;
}
if (CoreSettings.data.needBanner)
_banner.Hide();
else
throw new InvalidOperationException("Banner ads is disabled");
{
Debug.LogError("Banner ads is disabled");
return;
}
}
}
}

9
Assets_DLL/Core/Ads/Bridges/DemoAds/DemoBannerAds.cs

@ -42,11 +42,12 @@ namespace Core.Ads.Bridges.DemoAds
private Vector2 CalculateBannerSize()
{
float bannerSizePixels = Screen.height <= 400 ? 32 : Screen.height < 720 ? 50 : 90;
var percent = (100f / Screen.height) * bannerSizePixels;
var bannerSize = Screen.height * (percent / 100f);
int screenWidth = Screen.width;
int screenHeight = Screen.height;
return new Vector2(bannerSize * 6.4f, bannerSize);
float scale = Mathf.Max(screenWidth, screenHeight) / 640;
return new Vector2(320.0f * scale, 50.0f * scale);
}
private Vector2 CalculateBannerPosition(Vector2 bannerSize)
{

7
Assets_DLL/Core/Ads/RewardedButton.cs

@ -3,6 +3,7 @@ using Core.IAP;
using Core.Settings;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Purchasing;
using UnityEngine.UI;
namespace Core.Ads
@ -47,12 +48,12 @@ namespace Core.Ads
PurchaseManager.OnPurchaseSuccess -= CheckAdsEnablingAfterPurchasing;
}
private void CheckAdsEnablingAfterPurchasing(string productId)
private void CheckAdsEnablingAfterPurchasing(Product productId)
{
if (CoreSettings.data.IsProductConsumable(productId))
if (CoreSettings.data.IsProductConsumable(productId.definition.id))
return;
if (CoreSettings.data.IsOnAdsProduct(productId))
if (CoreSettings.data.IsOnAdsProduct(productId.definition.id))
gameObject.SetActive(false);
}
}

343
Assets_DLL/Core/Audio/AudioController.cs

@ -1,38 +1,31 @@
using Core.Localization;
using Core.Settings;
using Core.Tools.Saves;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Core.Settings;
using Core.Tools.Saves;
namespace Core.Audio
{
public class AudioController : MonoBehaviour
public static class AudioController
{
private static AudioController _controller = null;
private static List<AudioPlayer> _audioPlayers = new List<AudioPlayer>();
private static AudioController2D _audio2D = null;
private static AudioController3D _audio3D = null;
private static Dictionary<string, AudioClip> _nonLocalizedSoundsDictionary = new Dictionary<string, AudioClip>();
private static Dictionary<SystemLanguage, Dictionary<string, AudioClip>> _localizedSoundDictionary = new Dictionary<SystemLanguage, Dictionary<string, AudioClip>>();
private static GameObject _parent = null;
internal static void Init()
{
GameObject audioParent = new GameObject("[AudioController]");
_controller = audioParent.AddComponent<AudioController>();
GameObject.DontDestroyOnLoad(audioParent);
Dictionary<string, AudioClip> musicAnsSoundsDictionary = new Dictionary<string, AudioClip>();
Dictionary<SystemLanguage, Dictionary<string, AudioClip>> languageVoicesDictionary = new Dictionary<SystemLanguage, Dictionary<string, AudioClip>>();
_parent = new GameObject("[AudioController]");
AudioClip[] music = Resources.LoadAll<AudioClip>("Audio/Musics");
AudioClip[] sounds = Resources.LoadAll<AudioClip>("Audio/Sounds");
GameObject.DontDestroyOnLoad(_parent);
for (int i = 0; i < music.Length; i++)
musicAnsSoundsDictionary.Add(music[i].name, music[i]);
AudioClip[] nonLocalizedSounds = Resources.LoadAll<AudioClip>("Audio/NonLocalizedSounds");
for (int i = 0; i < sounds.Length; i++)
musicAnsSoundsDictionary.Add(sounds[i].name, sounds[i]);
for (int i = 0; i < nonLocalizedSounds.Length; i++)
_nonLocalizedSoundsDictionary.Add(nonLocalizedSounds[i].name, nonLocalizedSounds[i]);
for (int l = 0; l < CoreSettings.data.availableLanguages.Count; l++)
{
@ -40,94 +33,304 @@ namespace Core.Audio
Dictionary<string, AudioClip> voicesDictionary = new Dictionary<string, AudioClip>();
AudioClip[] voices = Resources.LoadAll<AudioClip>("CoreAudio/Voices/" + language.ToString());
AudioClip[] voices = Resources.LoadAll<AudioClip>("CoreAudio/LocalizedSounds/" + language.ToString());
for (int i = 0; i < voices.Length; i++)
voicesDictionary.Add(voices[i].name, voices[i]);
languageVoicesDictionary.Add(language, voicesDictionary);
_localizedSoundDictionary.Add(language, voicesDictionary);
}
}
_audio2D = new AudioController2D();
_audio2D.Init(audioParent.transform, musicAnsSoundsDictionary, languageVoicesDictionary);
public static AudioPlayer CreatePlayer(string clipName) =>
CreatePlayer(FindAudioClip(clipName));
_audio3D = new AudioController3D();
_audio3D.Init(audioParent.transform, musicAnsSoundsDictionary, languageVoicesDictionary);
}
#region AudioPlayer manager
public static float MusicVolume
public static AudioPlayer CreatePlayer(AudioClip clip)
{
get => SaveManager.GetFloat("MusicVolume", 1f);
set
if (clip == null)
return null;
AudioPlayer player = _audioPlayers.Where(p => p.AudioClip == null).FirstOrDefault();
if (player == null)
{
SaveManager.SetFloat("MusicVolume", value);
_audio2D.MusicVolume = value;
GameObject newPlayer = new GameObject("AudioPlayer");
newPlayer.transform.SetParent(_parent.transform);
newPlayer.AddComponent<AudioSource>();
player = newPlayer.AddComponent<AudioPlayer>();
player.OnNeedDestroy += DestroyPlayer;
_audioPlayers.Add(player);
}
player.Init(clip);
return player;
}
public static float SoundsVolume
private static void DestroyPlayer(AudioPlayer player)
{
get => SaveManager.GetFloat("MusicVolume", 1f);
set
{
SaveManager.SetFloat("MusicVolume", value);
_audio2D.SoundsVolume = value;
}
_audioPlayers.Remove(player);
GameObject gameObject = player.gameObject;
GameObject.Destroy(player);
player = gameObject.AddComponent<AudioPlayer>();
player.OnNeedDestroy += DestroyPlayer;
_audioPlayers.Add(player);
}
public static float VoicesVolume
#endregion
#region Volume
public static void SetVolume(AudioGroup group, float volume)
{
get => SaveManager.GetFloat("MusicVolume", 1f);
set
SaveManager.SetFloat(group.ToString() + "_volume", volume);
for (int i = 0; i < _audioPlayers.Count; i++)
{
SaveManager.SetFloat("MusicVolume", value);
_audio2D.VoicesVolume = value;
if (_audioPlayers[i].AudioClip != null && _audioPlayers[i].AudioGroup == group)
_audioPlayers[i].UpdateVolume();
}
}
public static void PlayMusic(string name) =>
_controller.StartCoroutine(_audio2D.PlayMusic(name));
public static float GetVolume(AudioGroup group) =>
SaveManager.GetFloat(group.ToString() + "_volume", 1f);
#endregion
#region Find player with parametres
public static AudioPlayer FindPlayer(string clipName)
{
AudioClip clip = FindAudioClip(clipName);
if (clip == null)
return null;
return FindPlayer(clip, -1, -1);
}
public static AudioPlayer FindPlayer(string clipName, AudioGroup group)
{
AudioClip clip = FindAudioClip(clipName);
if (clip == null)
return null;
return FindPlayer(clip, (int)group, -1);
}
public static AudioPlayer FindPlayer(string clipName, SourceType type)
{
AudioClip clip = FindAudioClip(clipName);
if (clip == null)
return null;
return FindPlayer(clip, -1, (int)type);
}
public static AudioPlayer FindPlayer(string clipName, AudioGroup group, SourceType type)
{
AudioClip clip = FindAudioClip(clipName);
if (clip == null)
return null;
return FindPlayer(clip, (int)group, (int)type);
}
public static AudioPlayer FindPlayer(AudioClip clip) =>
FindPlayer(clip, -1, -1);
public static AudioPlayer FindPlayer(AudioClip clip, AudioGroup group) =>
FindPlayer(clip, (int)group, -1);
public static AudioPlayer FindPlayer(AudioClip clip, SourceType type) =>
FindPlayer(clip, -1, (int)type);
public static AudioPlayer FindPlayer(AudioClip clip, AudioGroup group, SourceType type) =>
FindPlayer(clip, (int)group, (int)type);
public static AudioPlayer FindPlayer(AudioGroup group) =>
FindPlayer(null, (int)group, -1);
public static AudioPlayer FindPlayer(SourceType type) =>
FindPlayer(null, -1, (int)type);
public static AudioPlayer FindPlayer(AudioGroup group, SourceType type) =>
FindPlayer(null, (int)group, (int)type);
private static AudioPlayer FindPlayer(AudioClip clip, int group = -1, int type = -1)
{
AudioPlayer[] players = FindPlayers(clip, group, type);
if (players != null && players.Length > 0)
return players[0];
else
return null;
}
#endregion
#region Find players with parametres
public static AudioPlayer[] FindPlayers(string clipName)
{
AudioClip clip = FindAudioClip(clipName);
public static void StopMusic() =>
_controller.StartCoroutine(_audio2D.StopMusic());
if (clip == null)
return null;
public static float PlaySound(string name, bool isLoop = false) =>
_audio2D.PlaySound(name, isLoop);
return FindPlayers(clip, -1, -1);
}
public static void StopSound(string name)
public static AudioPlayer[] FindPlayers(string clipName, AudioGroup group)
{
_audio2D.StopSound(name);
_audio3D.StopSound(name);
AudioClip clip = FindAudioClip(clipName);
if (clip == null)
return null;
return FindPlayers(clip, (int)group, -1);
}
public static float PlayVoice(string name) =>
_audio2D.PlayVoice(name);
public static AudioPlayer[] FindPlayers(string clipName, SourceType type)
{
AudioClip clip = FindAudioClip(clipName);
if (clip == null)
return null;
return FindPlayers(clip, -1, (int)type);
}
public static void StopVoice(string name)
public static AudioPlayer[] FindPlayers(string clipName, AudioGroup group, SourceType type)
{
_audio2D.StopVoice(name);
_audio3D.StopVoice(name);
AudioClip clip = FindAudioClip(clipName);
if (clip == null)
return null;
return FindPlayers(clip, (int)group, (int)type);
}
public static float PlaySound(string name, Transform target, float minDistance, float maxDistance, bool isLoop = false) =>
_audio3D.PlaySound(name, target, minDistance, maxDistance, isLoop);
public static AudioPlayer[] FindPlayers(AudioClip clip) =>
FindPlayers(clip, -1, -1);
public static AudioPlayer[] FindPlayers(AudioClip clip, AudioGroup group) =>
FindPlayers(clip, (int)group, -1);
public static AudioPlayer[] FindPlayers(AudioClip clip, SourceType type) =>
FindPlayers(clip, -1, (int)type);
public static float PlayVoice(string name, Transform target, float minDistance, float maxDistance) =>
_audio3D.PlayVoice(name, target, minDistance, maxDistance);
public static AudioPlayer[] FindPlayers(AudioClip clip, AudioGroup group, SourceType type) =>
FindPlayers(clip, (int)group, (int)type);
private Transform _currentTarget = null;
public static AudioPlayer[] FindPlayers(AudioGroup group) =>
FindPlayers(null, (int)group, -1);
private void Update()
public static AudioPlayer[] FindPlayers(SourceType type) =>
FindPlayers(null, -1, (int)type);
public static AudioPlayer[] FindPlayers(AudioGroup group, SourceType type) =>
FindPlayers(null, (int)group, (int)type);
private static AudioPlayer[] FindPlayers(AudioClip clip, int group = -1, int type = -1)
{
if (_currentTarget == null)
AudioPlayer[] audioPlayers = new AudioPlayer[0];
if (clip != null && group != -1 && type != -1)
{
AudioListener listener = FindObjectOfType<AudioListener>();
AudioGroup audioGroup = (AudioGroup)group;
SourceType sourceType = (SourceType)type;
audioPlayers = _audioPlayers.Where(p => p.AudioClip == clip && p.AudioGroup == audioGroup && p.SourceType == sourceType).ToArray();
if (listener != null)
_currentTarget = listener.transform;
return audioPlayers;
}
else
transform.position = _currentTarget.position;
if (clip != null && group != -1 && type == -1)
{
AudioGroup audioGroup = (AudioGroup)group;
audioPlayers = _audioPlayers.Where(p => p.AudioClip == clip && p.AudioGroup == audioGroup).ToArray();
return audioPlayers;
}
if (clip != null && group == -1 && type != -1)
{
SourceType sourceType = (SourceType)type;
audioPlayers = _audioPlayers.Where(p => p.AudioClip == clip && p.SourceType == sourceType).ToArray();
return audioPlayers;
}
if (clip != null && group == -1 && type == -1)
{
SourceType sourceType = (SourceType)type;
audioPlayers = _audioPlayers.Where(p => p.AudioClip == clip).ToArray();
return audioPlayers;
}
if (clip == null && group != -1 && type != -1)
{
AudioGroup audioGroup = (AudioGroup)group;
SourceType sourceType = (SourceType)type;
audioPlayers = _audioPlayers.Where(p => p.AudioGroup == audioGroup && p.SourceType == sourceType).ToArray();
return audioPlayers;
}
if (clip == null && group != -1 && type == -1)
{
AudioGroup audioGroup = (AudioGroup)group;
audioPlayers = _audioPlayers.Where(p => p.AudioGroup == audioGroup).ToArray();
return audioPlayers;
}
if (clip == null && group == -1 && type != -1)
{
SourceType sourceType = (SourceType)type;
audioPlayers = _audioPlayers.Where(p => p.SourceType == sourceType).ToArray();
return audioPlayers;
}
return audioPlayers;
}
#endregion
public static AudioClip FindAudioClip(string clipName)
{
SystemLanguage language = LocalizationManager.CurrentLanguage;
AudioClip clip = _localizedSoundDictionary[language].Where(d => d.Key == clipName).FirstOrDefault().Value;
if (clip == null)
clip = _nonLocalizedSoundsDictionary.Where(d => d.Key == clipName).FirstOrDefault().Value;
if (clip == null)
Debug.LogError($"AudioController: clip \"{clipName}\" not found");
return clip;
}
}
}

202
Assets_DLL/Core/Audio/AudioController2D.cs

@ -1,202 +0,0 @@
using Core.Localization;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Core.Settings;
using Core.Tools.Saves;
using System;
using System.Collections;
namespace Core.Audio
{
internal class AudioController2D
{
internal void Init(Transform parent, Dictionary<string, AudioClip> musicAnsSounds, Dictionary<SystemLanguage, Dictionary<string, AudioClip>> voicesDictionary)
{
GameObject audioParent = new GameObject("[2D]");
audioParent.transform.SetParent(parent);
_musicParent = new GameObject("[Music]");
_musicParent.transform.SetParent(audioParent.transform);
_soundsParent = new GameObject("[Sounds]");
_soundsParent.transform.SetParent(audioParent.transform);
_voicesParent = new GameObject("[Voices]");
_voicesParent.transform.SetParent(audioParent.transform);
_musicAndSounds = musicAnsSounds;
_voicesDictionary = voicesDictionary;
}
private GameObject _musicParent = null;
private GameObject _soundsParent = null;
private GameObject _voicesParent = null;
private AudioSource _musicSource = null;
private List<AudioSource> _soundsSources = new List<AudioSource>();
private List<AudioSource> _voicesSources = new List<AudioSource>();
private Dictionary<string, AudioClip> _musicAndSounds = new Dictionary<string, AudioClip>();
private Dictionary<SystemLanguage, Dictionary<string, AudioClip>> _voicesDictionary = new Dictionary<SystemLanguage, Dictionary<string, AudioClip>>();
internal float MusicVolume
{
get => SaveManager.GetFloat("MusicVolume", 1f);
set => _musicSource.volume = CoreSettings.data.musicVolume * value;
}
internal float SoundsVolume
{
get => SaveManager.GetFloat("MusicVolume", 1f);
set
{
for (int i = 0; i < _soundsSources.Count; i++)
_soundsSources[i].volume = CoreSettings.data.soundsVolume * value;
}
}
internal float VoicesVolume
{
get => PlayerPrefs.GetFloat("MusicVolume", 1f);
set
{
for (int i = 0; i < _voicesSources.Count; i++)
_voicesSources[i].volume = CoreSettings.data.voicesVolume * value;
}
}
internal IEnumerator PlayMusic(string name)
{
if (_musicSource == null)
{
_musicSource = _musicParent.AddComponent<AudioSource>();
_musicSource.playOnAwake = false;
_musicSource.volume = CoreSettings.data.musicVolume * MusicVolume;
}
while (_musicSource.volume > 0f)
{
yield return null;
_musicSource.volume -= Time.deltaTime / 2f;
}
_musicSource.volume = 0;
if (_musicAndSounds.ContainsKey(name))
{
_musicSource.clip = _musicAndSounds[name];
_musicSource.loop = true;
_musicSource.gameObject.SetActive(true);
_musicSource.enabled = true;
_musicSource.Play();
while (_musicSource.volume < MusicVolume)
{
yield return null;
_musicSource.volume += Time.deltaTime / 2f;
}
_musicSource.volume = MusicVolume;
}
else
throw new ArgumentNullException($"music \"{name}\" not found");
}
internal IEnumerator StopMusic()
{
while (_musicSource.volume > 0f)
{
yield return null;
_musicSource.volume -= Time.deltaTime / 2f;
}
_musicSource.volume = 0;
_musicSource.Stop();
_musicSource.volume = MusicVolume;
}
internal float PlaySound(string name, bool isLoop = false)
{
AudioSource playSource = _soundsSources.Where(s => !s.isPlaying).FirstOrDefault();
if (playSource == null)
{
playSource = _soundsParent.AddComponent<AudioSource>();
playSource.playOnAwake = false;
playSource.volume = CoreSettings.data.soundsVolume * SoundsVolume;
_soundsSources.Add(playSource);
}
if (_musicAndSounds.ContainsKey(name))
{
playSource.clip = _musicAndSounds[name];
playSource.loop = isLoop;
playSource.gameObject.SetActive(true);
playSource.enabled = true;
playSource.Play();
return _musicAndSounds[name].length;
}
else
throw new ArgumentNullException($"sound \"{name}\" not found");
}
internal void StopSound(string name)
{
AudioSource playSource = _soundsSources.Where(s => s.clip.name == name).FirstOrDefault();
if (playSource != null)
playSource.Stop();
}
internal float PlayVoice(string name)
{
AudioSource playSource = _voicesSources.Where(s => !s.isPlaying).FirstOrDefault();
if (playSource == null)
{
playSource = _voicesParent.AddComponent<AudioSource>();
playSource.loop = false;
playSource.playOnAwake = false;
playSource.volume = CoreSettings.data.voicesVolume * VoicesVolume;
_voicesSources.Add(playSource);
}
if (_voicesDictionary.ContainsKey(LocalizationManager.CurrentLanguage))
{
if (_voicesDictionary[LocalizationManager.CurrentLanguage].ContainsKey(name))
{
playSource.clip = _voicesDictionary[LocalizationManager.CurrentLanguage][name];
playSource.gameObject.SetActive(true);
playSource.enabled = true;
playSource.Play();
return _voicesDictionary[LocalizationManager.CurrentLanguage][name].length;
}
else
throw new ArgumentNullException($"voice \"{name}\" not found");
}
else
throw new ArgumentNullException($"Avoice \"{name}\" not found");
}
internal void StopVoice(string name)
{
AudioSource playSource = _voicesSources.Where(s => s.clip.name == name).FirstOrDefault();
if (playSource != null)
playSource.Stop();
}
}
}

154
Assets_DLL/Core/Audio/AudioController3D.cs

@ -1,154 +0,0 @@
using Core.Localization;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Core.Settings;
using Core.Tools.Saves;
using System;
namespace Core.Audio
{
internal class AudioController3D
{
internal void Init(Transform parent, Dictionary<string, AudioClip> musicAnsSounds, Dictionary<SystemLanguage, Dictionary<string, AudioClip>> voicesDictionary)
{
_musicAndSounds = musicAnsSounds;
_voicesDictionary = voicesDictionary;
}
private List<AudioSource> _soundsSources = new List<AudioSource>();
private List<AudioSource> _voicesSources = new List<AudioSource>();
private Dictionary<string, AudioClip> _musicAndSounds = new Dictionary<string, AudioClip>();
private Dictionary<SystemLanguage, Dictionary<string, AudioClip>> _voicesDictionary = new Dictionary<SystemLanguage, Dictionary<string, AudioClip>>();
internal float SoundsVolume
{
get => SaveManager.GetFloat("MusicVolume", 1f);
set
{
for (int i = 0; i < _soundsSources.Count; i++)
{
if (_soundsSources[i] != null)
_soundsSources[i].volume = CoreSettings.data.soundsVolume * value;
}
}
}
internal float VoicesVolume
{
get => PlayerPrefs.GetFloat("MusicVolume", 1f);
set
{
for (int i = 0; i < _voicesSources.Count; i++)
{
if (_voicesSources[i] != null)
_voicesSources[i].volume = CoreSettings.data.voicesVolume * value;
}
}
}
internal float PlaySound(string name, Transform target, float minDistance, float maxDistance, bool isLoop = false)
{
AudioSource playSource = _soundsSources.Where(s => s != null && !s.isPlaying).FirstOrDefault();
Debug.LogError($"enable: {playSource.enabled}, active: {playSource.gameObject.activeSelf}");
if (playSource == null)
{
GameObject sound = new GameObject("Sound");
playSource = sound.AddComponent<AudioSource>();
playSource.playOnAwake = false;
playSource.volume = CoreSettings.data.soundsVolume * SoundsVolume;
playSource.spatialBlend = 1f;
playSource.rolloffMode = AudioRolloffMode.Custom;
playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f));
_soundsSources.Add(playSource);
}
if (_musicAndSounds.ContainsKey(name))
{
playSource.clip = _musicAndSounds[name];
playSource.loop = isLoop;
playSource.minDistance = minDistance;
playSource.maxDistance = maxDistance;
playSource.transform.SetParent(target);
playSource.transform.localPosition = Vector3.zero;
playSource.spatialBlend = 1f;
playSource.rolloffMode = AudioRolloffMode.Custom;
playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f));
playSource.gameObject.SetActive(true);
playSource.enabled = true;
playSource.Play();
return _musicAndSounds[name].length;
}
else
throw new ArgumentNullException($"sound \"{name}\" not found");
}
internal void StopSound(string name)
{
AudioSource playSource = _soundsSources.Where(s => s != null && s.clip.name == name).FirstOrDefault();
if (playSource != null)
playSource.Stop();
}
internal float PlayVoice(string name, Transform target, float minDistance, float maxDistance)
{
AudioSource playSource = _voicesSources.Where(s => s != null && !s.isPlaying).FirstOrDefault();
if (playSource == null)
{
GameObject voice = new GameObject("Voice");
playSource = voice.AddComponent<AudioSource>();
playSource.loop = false;
playSource.playOnAwake = false;
playSource.volume = CoreSettings.data.voicesVolume * VoicesVolume;
playSource.spatialBlend = 1f;
playSource.rolloffMode = AudioRolloffMode.Custom;
playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f));
_voicesSources.Add(playSource);
}
if (_voicesDictionary.ContainsKey(LocalizationManager.CurrentLanguage))
{
if (_voicesDictionary[LocalizationManager.CurrentLanguage].ContainsKey(name))
{
playSource.clip = _voicesDictionary[LocalizationManager.CurrentLanguage][name];
playSource.minDistance = minDistance;
playSource.maxDistance = maxDistance;
playSource.transform.SetParent(target);
playSource.transform.localPosition = Vector3.zero;
playSource.spatialBlend = 1f;
playSource.rolloffMode = AudioRolloffMode.Custom;
playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f));
playSource.gameObject.SetActive(true);
playSource.enabled = true;
playSource.Play();
return _voicesDictionary[LocalizationManager.CurrentLanguage][name].length;
}
else
throw new ArgumentNullException($"voice \"{name}\" not found");
}
else
throw new ArgumentNullException($"voice \"{name}\" not found");
}
internal void StopVoice(string name)
{
AudioSource playSource = _voicesSources.Where(s => s != null && s.clip.name == name).FirstOrDefault();
if (playSource != null)
playSource.Stop();
}
}
}

190
Assets_DLL/Core/Audio/AudioPlayer.cs

@ -0,0 +1,190 @@
using Core.Settings;
using System;
using System.Collections;
using UnityEngine;
namespace Core.Audio
{
public enum SourceType
{
Type2D = 0,
Type3D = 1,
}
public enum AudioGroup
{
Music = 0,
Sound = 1,
Voice = 2,
}
[RequireComponent(typeof(AudioSource))]
public sealed class AudioPlayer : MonoBehaviour
{
internal event Action<AudioPlayer> OnNeedDestroy = null;
private event Action _onComplete = null;
private AudioSource _audioSource = null;
private SourceType _sourceType = SourceType.Type2D;
private AudioGroup _group = AudioGroup.Sound;
private float _customVolume = 1f;
private bool _isLoop = false;
private Transform _target = null;
private Coroutine _playCoroutine = null;
public AudioClip AudioClip => (_audioSource != null) ? _audioSource.clip : null;
public SourceType SourceType => _sourceType;
public AudioGroup AudioGroup => _group;
public float CustomVolume => _customVolume;
public bool IsPlaying => _audioSource != null && _audioSource.clip != null && _audioSource.isPlaying;
public bool IsLoop => _isLoop;
public Transform Target => _target;
internal void Init(AudioClip clip)
{
_audioSource = GetComponent<AudioSource>();
_onComplete = null;
_audioSource.playOnAwake = false;
_audioSource.Stop();
SetGroup(AudioGroup.Sound);
SetLoop(false);
SetCustomVolume(1f);
SetSource(SourceType.Type2D);
SetTarget(null);
SetMinDistance(0f);
SetMaxDistance(0f);
UpdateVolume();
_audioSource.clip = clip;
}
internal void UpdateVolume() =>
_audioSource.volume = _customVolume * AudioController.GetVolume(_group) * CoreSettings.data.volume[(int)_group];
public void Stop()
{
_audioSource.Stop();
_audioSource.clip = null;
if (_playCoroutine != null)
StopCoroutine(_playCoroutine);
OnNeedDestroy?.Invoke(this);
}
private void Update()
{
if (_sourceType == SourceType.Type3D && _target != null)
transform.position = _target.position;
else
transform.localPosition = Vector3.zero;
}
public AudioPlayer SetSource(SourceType type)
{
_sourceType = type;
if (_sourceType == SourceType.Type2D)
{
_audioSource.spatialBlend = 0f;
_audioSource.rolloffMode = AudioRolloffMode.Linear;
}
else
{
_audioSource.spatialBlend = 1f;
_audioSource.rolloffMode = AudioRolloffMode.Custom;
_audioSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f));
}
return this;
}
public AudioPlayer SetTarget(Transform target)
{
_target = target;
return this;
}
public AudioPlayer SetMinDistance(float minDistance)
{
_audioSource.minDistance = minDistance;
return this;
}
public AudioPlayer SetMaxDistance(float maxDistance)
{
_audioSource.maxDistance = maxDistance;
return this;
}
public AudioPlayer SetCustomVolume(float volume)
{
_customVolume = volume;
UpdateVolume();
return this;
}
public AudioPlayer SetGroup(AudioGroup group)
{
_group = group;
UpdateVolume();
return this;
}
public AudioPlayer SetLoop(bool loop)
{
_isLoop = loop;
_audioSource.loop = _isLoop;
return this;
}
public AudioPlayer OnComplete(Action onComplete)
{
_onComplete += onComplete;
return this;
}
public AudioPlayer Play() =>
Play(0f);
public AudioPlayer Play(float delay)
{
_playCoroutine = StartCoroutine(PlayCoroutine(delay));
return this;
}
private IEnumerator PlayCoroutine(float delay)
{
if (_audioSource.isPlaying)
yield break;
if (delay > 0f)
yield return new WaitForSeconds(delay);
_audioSource.Play();
if (_isLoop)
yield break;
while (_audioSource.isPlaying)
yield return null;
_onComplete?.Invoke();
Stop();
}
}
}

124
Assets_DLL/Core/Audio/PlayAudioFile.cs

@ -1,4 +1,5 @@
using System.Collections;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
@ -6,18 +7,6 @@ namespace Core.Audio
{
public sealed class PlayAudioFile : MonoBehaviour
{
public enum SourceType
{
Flat = 0,
Surround = 1,
}
public enum AudioFileType
{
Music = 0,
Sound = 1,
Voice = 2,
}
public enum PlayType
{
@ -27,10 +16,11 @@ namespace Core.Audio
OnPlayParticle = 3,
}
[SerializeField] private SourceType _sourceType = SourceType.Flat;
[SerializeField] private AudioFileType _audioFileType = AudioFileType.Music;
[SerializeField] private SourceType _sourceType = SourceType.Type2D;
[SerializeField] private AudioGroup _audioFileType = AudioGroup.Music;
[SerializeField] private PlayType _playType = PlayType.OnActivate;
[SerializeField] private float _startDelay = 0f;
[SerializeField] private float _customVolume = 1f;
[SerializeField] private bool _loop = false;
[SerializeField] private float _minDistance = 0f;
[SerializeField] private float _maxDistance = 100f;
@ -41,61 +31,65 @@ namespace Core.Audio
private bool _isPlaying = false;
private AudioPlayer _currentPlayer = null;
private void Awake()
{
_button = GetComponent<Button>();
switch (_playType)
{
case PlayType.OnClickButton:
_particleSystem = GetComponent<ParticleSystem>();
_button = GetComponent<Button>();
_button.onClick.AddListener(() =>
{
Play();
});
if (_particleSystem == null)
_particleSystem = GetComponentInChildren<ParticleSystem>();
break;
}
}
private void OnEnable()
{
_particleSystem = GetComponent<ParticleSystem>();
if (_particleSystem == null)
_particleSystem = GetComponentInChildren<ParticleSystem>();
switch (_playType)
{
case PlayType.OnActivate:
StartCoroutine(CallPlay());
return;
Play();
break;
}
}
private void OnDisable()
{
if (_loop && _currentPlayer != null)
_currentPlayer.Stop();
}
private IEnumerator Start()
{
while (true)
{
switch (_playType)
{
case PlayType.OnActivate:
StartCoroutine(CallPlay());
yield break;
case PlayType.OnPlayParticle:
while (!_particleSystem.isPlaying)
yield return null;
yield return StartCoroutine(CallPlay());
Play();
while (_particleSystem.isPlaying)
while (_particleSystem.isPlaying || _isPlaying)
yield return null;
break;
case PlayType.OnClickButton:
_button.onClick.AddListener(() =>
{
StartCoroutine(CallPlay());
});
yield break;
case PlayType.OnClickCollider:
yield break;
}
yield return null;
}
}
@ -104,46 +98,34 @@ namespace Core.Audio
if (_isPlaying || _playType != PlayType.OnClickCollider)
return;
StartCoroutine(CallPlay());
Play();
}
private IEnumerator CallPlay()
private void Play()
{
float time = 0f;
if (_startDelay != 0f)
yield return new WaitForSeconds(_startDelay);
_isPlaying = true;
switch (_audioFileType)
if (_audioFileType == AudioGroup.Music)
{
case AudioFileType.Music:
AudioController.PlayMusic(_audioFileNames[Random.Range(0, _audioFileNames.Length)]);
yield break;
case AudioFileType.Sound:
if (_sourceType == SourceType.Flat)
time = AudioController.PlaySound(_audioFileNames[Random.Range(0, _audioFileNames.Length)], _loop);
else
time = AudioController.PlaySound(_audioFileNames[Random.Range(0, _audioFileNames.Length)], transform, _minDistance, _maxDistance, _loop);
break;
case AudioFileType.Voice:
if (_sourceType == SourceType.Flat)
time = AudioController.PlayVoice(_audioFileNames[Random.Range(0, _audioFileNames.Length)]);
else
time = AudioController.PlayVoice(_audioFileNames[Random.Range(0, _audioFileNames.Length)], transform, _minDistance, _maxDistance);
break;
AudioPlayer[] player = AudioController.FindPlayers(AudioGroup.Music);
for(int i = 0; i < player.Length; i++)
player[i].Stop();
}
_isPlaying = true;
yield return new WaitForSeconds(time);
_isPlaying = false;
if (_sourceType == SourceType.Type2D)
_maxDistance = 0;
AudioController.CreatePlayer(_audioFileNames[Random.Range(0, _audioFileNames.Length)])
.SetSource(_sourceType)
.SetGroup(_audioFileType)
.SetCustomVolume(_customVolume)
.SetLoop(_loop)
.SetTarget(transform)
.SetMinDistance(_minDistance)
.SetMaxDistance(_maxDistance)
.OnComplete(() => _isPlaying = false)
.Play(_startDelay);
}
}
}

128
Assets_DLL/Core/Core.csproj

@ -15,103 +15,103 @@
<ItemGroup>
<Reference Include="Unity.Cecil">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Mdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Mdb.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Pdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Pdb.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Legacy.NRefactory">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Legacy.NRefactory.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Legacy.NRefactory.dll</HintPath>
</Reference>
<Reference Include="UnityEngine">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AccessibilityModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AndroidJNIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AnimationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ARModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClothModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterInputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterRendererModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CrashReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DirectorModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DSPGraphModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GameCenterModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GridModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.HotReloadModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.JSONSerializeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.LocalizationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PerformanceReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Physics2DModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ProfilerModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Purchasing">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.dll</HintPath>
@ -120,100 +120,100 @@
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.Stores.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ScreenCaptureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SharedInternalsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteMaskModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteShapeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.StreamingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubstanceModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubsystemsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainPhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextCoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TilemapModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIElementsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UmbraModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UNETModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityAnalyticsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityConnectModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityTestProtocolModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestTextureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestWWWModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VehiclesModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VFXModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VideoModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.WindModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.XRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll</HintPath>
</Reference>
</ItemGroup>

224
Assets_DLL/Core/Core.csproj.bak

@ -0,0 +1,224 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>C:\Users\Seraph\Desktop\Prototype\Assets_DLL\Build\</OutputPath>
<GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
<DocumentationFile></DocumentationFile>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="Unity.Cecil">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Mdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Pdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Legacy.NRefactory">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Legacy.NRefactory.dll</HintPath>
</Reference>
<Reference Include="UnityEngine">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AccessibilityModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AndroidJNIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AnimationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ARModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClothModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterInputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterRendererModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CrashReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DirectorModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DSPGraphModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GameCenterModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GridModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.HotReloadModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.JSONSerializeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.LocalizationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PerformanceReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Physics2DModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ProfilerModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Purchasing">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Purchasing.Stores">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.Stores.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ScreenCaptureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SharedInternalsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteMaskModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteShapeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.StreamingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubstanceModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubsystemsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainPhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextCoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TilemapModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIElementsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UmbraModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UNETModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityAnalyticsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityConnectModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityTestProtocolModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestTextureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestWWWModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VehiclesModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VFXModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VideoModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.WindModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.XRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Folder Include="Tools\UI\" />
</ItemGroup>
</Project>

10
Assets_DLL/Core/IAP/PurchaseButton.cs

@ -43,20 +43,20 @@ namespace Core.Ads
PurchaseManager.OnPurchaseFailed -= PurchaseManager_OnPurchaseFailed;
}
private void CheckAdsEnablingAfterPurchasing(string productId)
private void CheckAdsEnablingAfterPurchasing(Product productId)
{
if (_productId == productId)
if (_productId == productId.definition.id)
{
_onSucces?.Invoke();
if (!CoreSettings.data.IsProductConsumable(productId))
if (!CoreSettings.data.IsProductConsumable(productId.definition.id))
gameObject.SetActive(false);
}
}
private void PurchaseManager_OnPurchaseFailed(string productId, PurchaseFailureReason error)
private void PurchaseManager_OnPurchaseFailed(Product productId, PurchaseFailureReason error)
{
if (_productId == productId)
if (_productId == productId.definition.id)
_onFailed?.Invoke();
}
}

13
Assets_DLL/Core/IAP/PurchaseManager.cs

@ -9,8 +9,8 @@ namespace Core.IAP
private static PurchaseManager _current = null;
private static PurchaseManagerBase _purchaseManager = null;
public static event Action<string> OnPurchaseSuccess = null;
public static event Action<string, PurchaseFailureReason> OnPurchaseFailed = null;
public static event Action<Product> OnPurchaseSuccess = null;
public static event Action<Product, PurchaseFailureReason> OnPurchaseFailed = null;
internal static void Init()
{
@ -22,8 +22,8 @@ namespace Core.IAP
_purchaseManager = new PurchaseManagerBase();
_purchaseManager.InitializePurchasing();
_purchaseManager.OnPurchaseSuccess += (productId) => OnPurchaseSuccess(productId);
_purchaseManager.OnPurchaseFaile += (productId, error) => OnPurchaseFailed(productId, error);
_purchaseManager.OnPurchaseSuccess += (product) => OnPurchaseSuccess(product);
_purchaseManager.OnPurchaseFaile += (product, error) => OnPurchaseFailed(product, error);
}
public static bool IsProductPurchased(string productId) =>
@ -40,6 +40,9 @@ namespace Core.IAP
_purchaseManager.BuyProduct(productId);
}
public static void RestorePurchase() =>
_purchaseManager.RestorePurchase();
private bool _isVisible = false;
private string _productId = "";
@ -56,7 +59,7 @@ namespace Core.IAP
if (GUI.Button(new Rect(0f, Screen.height / 2f, Screen.width, Screen.height / 2f), "Cancel purchasing"))
{
OnPurchaseFailed?.Invoke(_productId, PurchaseFailureReason.UserCancelled);
OnPurchaseFailed?.Invoke(_purchaseManager.GetProductByID(_productId), PurchaseFailureReason.UserCancelled);
_productId = "";
_isVisible = false;
}

145
Assets_DLL/Core/IAP/PurchaseManagerBase.cs

@ -1,85 +1,98 @@
using Core.Settings;
using System;
using Core.Settings;
using Core.Tools.Saves;
using System;
using UnityEngine;
using UnityEngine.Purchasing;
namespace Core.IAP
namespace Core.IAP
{
internal sealed class PurchaseManagerBase : IStoreListener
{
public event Action<string> OnPurchaseSuccess;
public event Action<string, PurchaseFailureReason> OnPurchaseFaile;
private IStoreController _storeController;
private IExtensionProvider _storeExtensionProvider;
private bool IsInitialized =>
_storeController != null && _storeExtensionProvider != null;
private bool IsInitialized => _storeController != null && _storeExtensionProvider != null;
public event Action<Product> OnPurchaseSuccess;
public event Action<Product, PurchaseFailureReason> OnPurchaseFaile;
internal Product GetProductByID(string id)
{
if (IsInitialized)
return _storeController.products.WithID(id);
else
return null;
}
public bool IsProductPurchased(string productID) =>
SaveManager.GetString(productID.ToString() + "_purchased", "false") == "true";
public void InitializePurchasing()
{
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
ConfigurationBuilder configurationBuilder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
foreach (string product in CoreSettings.data.consumableProducts)
builder.AddProduct(product, ProductType.Consumable);
foreach (string consumableProduct in CoreSettings.data.consumableProducts)
configurationBuilder.AddProduct(consumableProduct, ProductType.Consumable);
foreach (string product in CoreSettings.data.nonConsumableProducts)
builder.AddProduct(product, ProductType.NonConsumable);
foreach (string nonConsumableProduct in CoreSettings.data.nonConsumableProducts)
configurationBuilder.AddProduct(nonConsumableProduct, ProductType.NonConsumable);
UnityPurchasing.Initialize(this, builder);
UnityPurchasing.Initialize(this, configurationBuilder);
}
public void BuyProduct(string productId)
{
if (Application.isEditor)
{
if (!CoreSettings.data.IsProductConsumable(productId))
SaveManager.SetString(productId + "_purchased", "true");
if (OnPurchaseSuccess != null)
OnPurchaseSuccess(productId);
Debug.Log(productId + " Buyed!");
return;
}
if (IsInitialized)
{
Product product = _storeController.products.WithID(productId);
if (product != null && product.availableToPurchase)
if (Application.isEditor)
{
Debug.Log(string.Format("Purchasing product asychronously: '{0}'", product.definition.id));
_storeController.InitiatePurchase(product);
if (!CoreSettings.data.IsProductConsumable(productId))
{
SaveManager.SetString(productId + "_purchased", "true");
SaveManager.Save();
}
OnPurchaseSuccess?.Invoke(_storeController.products.WithID(productId));
Debug.Log(productId + " Buyed!");
}
else
{
Debug.Log("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase");
OnPurchaseFailed(product, PurchaseFailureReason.ProductUnavailable);
Product product = _storeController.products.WithID(productId);
if (product?.availableToPurchase ?? false)
{
Debug.Log($"Purchasing product asychronously: '{product.definition.id}'");
_storeController.InitiatePurchase(product);
}
else
{
Debug.Log("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase");
OnPurchaseFailed(product, PurchaseFailureReason.ProductUnavailable);
}
}
}
else
{
Debug.LogError("IAP not initialized");
}
}
public string GetLocalizedPrice(string productID)
{
if (Application.isEditor)
return "0.99$";
if (IsInitialized)
{
string price = _storeController.products.WithID(productID).metadata.localizedPriceString;
string localizedPriceString = _storeController.products.WithID(productID).metadata.localizedPriceString;
SaveManager.SetString(productID + "_last_price", price);
SaveManager.SetString(productID + "_last_price", localizedPriceString);
SaveManager.Save();
return price;
return localizedPriceString;
}
else
return SaveManager.GetString(productID + "_last_price", "0.99$");
return SaveManager.GetString(productID + "_last_price", "0.99$");
}
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
@ -89,37 +102,59 @@ namespace Core.IAP
_storeController = controller;
_storeExtensionProvider = extensions;
foreach (string product in CoreSettings.data.consumableProducts)
GetLocalizedPrice(product);
foreach (string consumableProduct in CoreSettings.data.consumableProducts)
GetLocalizedPrice(consumableProduct);
foreach (string product in CoreSettings.data.nonConsumableProducts)
GetLocalizedPrice(product);
foreach (string nonConsumableProduct in CoreSettings.data.nonConsumableProducts)
GetLocalizedPrice(nonConsumableProduct);
}
public void OnInitializeFailed(InitializationFailureReason error) =>
Debug.Log("OnInitializeFailed InitializationFailureReason:" + error);
Debug.LogError("OnInitializeFailed InitializationFailureReason:" + error);
public void RestorePurchase()
{
if (!IsInitialized)
return;
if (Application.isEditor)
Debug.Log("RestorePurchase RestoreTransactions: true");
else
{
_storeExtensionProvider.GetExtension<IAppleExtensions>().RestoreTransactions(delegate (bool result)
{
if (result)
Debug.Log("RestorePurchase RestoreTransactions:" + result);
else
Debug.LogError("RestorePurchase RestoreTransactions:" + result);
});
}
}
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs purchaseEvent)
{
string productId = purchaseEvent.purchasedProduct.definition.id;
string id = purchaseEvent.purchasedProduct.definition.id;
if (!CoreSettings.data.IsProductConsumable(productId))
SaveManager.SetString(productId + "_purchased", "true");
if (!CoreSettings.data.IsProductConsumable(id))
{
SaveManager.SetString(id + "_purchased", "true");
SaveManager.Save();
}
OnPurchaseSuccess?.Invoke(productId);
this.OnPurchaseSuccess?.Invoke(_storeController.products.WithID(id));
Debug.Log(productId + " Buyed!");
Debug.Log(id + " Buyed!");
return PurchaseProcessingResult.Complete;
}
public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
{
string productId = product.definition.storeSpecificId;
string productId = product.definition.id;
OnPurchaseFaile?.Invoke(productId, failureReason);
this.OnPurchaseFaile?.Invoke(_storeController.products.WithID(productId), failureReason);
Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", productId, failureReason));
Debug.Log($"OnPurchaseFailed: FAIL. Product: '{productId}', PurchaseFailureReason: {failureReason}");
}
}
}

4
Assets_DLL/Core/Settings/CoreSettingsData.cs

@ -73,9 +73,7 @@ namespace Core.Settings
#region Audio
public float musicVolume = 0.5f;
public float soundsVolume = 0.75f;
public float voicesVolume = 1f;
public float[] volume = null;
#endregion
}

18
Assets_DLL/Core/Tools/Pool/Particles/Particle.cs

@ -12,7 +12,7 @@ namespace Core.Tools.Pool.Particles
[SerializeField] private ParticleSystem _prefab = null;
[SerializeField] private int _startCount = 1;
private List<ParticleSystem> _pool = new List<ParticleSystem>();
private ParticleSystem[] _pool = new ParticleSystem[0];
private Transform _summonParent = null;
@ -22,20 +22,32 @@ namespace Core.Tools.Pool.Particles
{
_summonParent = summonParent;
_pool = new ParticleSystem[_startCount];
for (int i = 0; i < _startCount; i++)
_pool.Add(GameObject.Instantiate(_prefab, _summonParent));
_pool[i] = GameObject.Instantiate(_prefab, _summonParent);
}
public ParticleSystem GetParticleFromPool()
{
ParticleSystem particle = _pool.Where(p => p != null && !p.isPlaying).FirstOrDefault();
/*ParticleSystem[] newArray = new ParticleSystem[_pool.Length + 1];
for (int i = 0; i < _pool.Length; i++)
newArray[i] = _pool[i];
if (particle == null)
{
particle = GameObject.Instantiate(_prefab, _summonParent);
_pool.Add(particle);
newArray[_pool.Length] = particle;
}
_pool = newArray;*/
if (particle == null)
particle = _pool.Aggregate((curMax, p) => (curMax == null || p.time > curMax.time ? p : curMax));
return particle;
}
}

3
Assets_DLL/Core/Tools/Pool/Particles/ParticlesPool.cs

@ -30,6 +30,9 @@ namespace Core.Tools.Pool.Particles
ParticleSystem particleSystem = particle.GetParticleFromPool();
if (particleSystem == null)
return null;
particleSystem.transform.SetParent(parent);
particleSystem.transform.position = position;
particleSystem.transform.rotation = rotation;

50
Assets_DLL/Core/Tools/Saves/SaveManager.cs

@ -1,6 +1,4 @@
using Core.Tools.Saves.Utils;
using System.IO;
using UnityEngine;
using UnityEngine;
namespace Core.Tools.Saves
{
@ -12,65 +10,37 @@ namespace Core.Tools.Saves
internal static void Init()
{
Application.quitting += OnQuit;
Application.focusChanged += OnFocusChanged;
Application.quitting += Save;
Load();
}
private static void OnQuit() =>
private static void OnFocusChanged(bool focus) =>
Save();
public static string GetPathToSave()
{
if (Application.isEditor || Application.isMobilePlatform)
return Application.persistentDataPath + "/save.dat";
else
return Application.dataPath + "/save.dat";
}
public static void Load()
{
string path = GetPathToSave();
if (!File.Exists(path))
if (PlayerPrefs.HasKey(SAVE_KEY))
{
_save = new SaveData();
Save();
_save = JsonUtility.FromJson<SaveData>(PlayerPrefs.GetString(SAVE_KEY));
}
else
{
StreamReader stream = new StreamReader(path);
string json = Encrypter.Decrypt(stream.ReadToEnd(), SAVE_KEY);
stream.Close();
_save = JsonUtility.FromJson<SaveData>(json);
_save = new SaveData();
Save();
}
}
public static void Save()
{
string path = GetPathToSave();
string json = JsonUtility.ToJson(_save);
StreamWriter stream;
if (!File.Exists(path))
stream = File.CreateText(path);
else
stream = new StreamWriter(path);
stream.Write(Encrypter.Encrypt(json, SAVE_KEY));
stream.Close();
PlayerPrefs.SetString(SAVE_KEY, json);
}
public static void Clear()
{
string path = GetPathToSave();
if (File.Exists(path))
File.Delete(path);
PlayerPrefs.DeleteKey(SAVE_KEY);
}
public static bool HasIntKey(string key) =>

53
Assets_DLL/Core/Tools/Saves/Utils/Encrypter.cs

@ -1,53 +0,0 @@
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace Core.Tools.Saves.Utils
{
public static class Encrypter
{
public static string Encrypt(string text, string key)
{
byte[] clearBytes = Encoding.Unicode.GetBytes(text);
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(key, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(clearBytes, 0, clearBytes.Length);
cs.Close();
}
text = Convert.ToBase64String(ms.ToArray());
}
}
return text;
}
public static string Decrypt(string text, string key)
{
text = text.Replace(" ", "+");
byte[] cipherBytes = Convert.FromBase64String(text);
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(key, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(cipherBytes, 0, cipherBytes.Length);
cs.Close();
}
text = Encoding.Unicode.GetString(ms.ToArray());
}
}
return text;
}
}
}

2
Assets_DLL/Core/obj/Core.csproj.nuget.dgspec.json

@ -57,7 +57,7 @@
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\5.0.404\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\6.0.302\\RuntimeIdentifierGraph.json"
}
}
}

5
Assets_DLL/Core/obj/Core.csproj.nuget.g.props

@ -7,12 +7,9 @@
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Seraph\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.11.1</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.2.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Seraph\.nuget\packages\" />
</ItemGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>

3
Assets_DLL/Core/obj/Core.csproj.nuget.g.targets

@ -1,8 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
</ImportGroup>

BIN
Assets_DLL/Core/obj/Debug/netstandard2.0/Core.assets.cache

Binary file not shown.

BIN
Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.AssemblyReference.cache

Binary file not shown.

2
Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.CoreCompileInputs.cache

@ -1 +1 @@
9862dcf43a2537ba94419b6dd7bcafa73d8c1851
e79d925b831775a6b5acbedb7a2f92dcde277ce4

BIN
Assets_DLL/Core/obj/Debug/netstandard2.0/Core.dll

Binary file not shown.

2
Assets_DLL/Core/obj/project.assets.json

@ -235,7 +235,7 @@
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\5.0.404\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\6.0.302\\RuntimeIdentifierGraph.json"
}
}
}

2
Assets_DLL/Core/obj/project.nuget.cache

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "Sv+BKB44UNzAL54E3BYFTXsCC3b6O1LOuaSU+waDjBh1anhM5CMs4E9lcRIGq/sIjxG0OXaTISPR4Maz7FlM0w==",
"dgSpecHash": "dRTQ0/v/QuBtIq8MfQA+r4fbfv8Hwnn8YcYMcAnS6LI5XA9+H99Z53I8bjM/WdUKRiOsSZ61oWySXMHRz2/DJg==",
"success": true,
"projectFilePath": "C:\\Users\\Seraph\\Desktop\\Prototype\\Assets_DLL\\Core\\Core.csproj",
"expectedPackageFiles": [

130
Assets_DLL/CoreEditor/CoreEditor.csproj

@ -19,106 +19,106 @@
<ItemGroup>
<Reference Include="Unity.Cecil">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Mdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Mdb.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Pdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Pdb.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Legacy.NRefactory">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Legacy.NRefactory.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\Unity.Legacy.NRefactory.dll</HintPath>
</Reference>
<Reference Include="UnityEditor">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEditor.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEditor.dll</HintPath>
</Reference>
<Reference Include="UnityEngine">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AccessibilityModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AndroidJNIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AnimationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ARModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClothModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterInputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterRendererModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CrashReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DirectorModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DSPGraphModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GameCenterModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GridModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.HotReloadModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.JSONSerializeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.LocalizationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PerformanceReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Physics2DModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ProfilerModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Purchasing">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.dll</HintPath>
@ -127,100 +127,100 @@
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.Stores.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ScreenCaptureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SharedInternalsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteMaskModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteShapeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.StreamingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubstanceModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubsystemsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainPhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextCoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TilemapModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIElementsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UmbraModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UNETModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityAnalyticsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityConnectModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityTestProtocolModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestTextureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestWWWModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VehiclesModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VFXModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VideoModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.WindModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.XRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll</HintPath>
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2020.3.38f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll</HintPath>
</Reference>
</ItemGroup>

227
Assets_DLL/CoreEditor/CoreEditor.csproj.bak

@ -0,0 +1,227 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>C:\Users\Seraph\Desktop\Prototype\Assets_DLL\Build\</OutputPath>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
<DebugType>full</DebugType>
<DebugSymbols>true</DebugSymbols>
<DocumentationFile></DocumentationFile>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="Unity.Cecil">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Mdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Cecil.Pdb">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Unity.Legacy.NRefactory">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\Unity.Legacy.NRefactory.dll</HintPath>
</Reference>
<Reference Include="UnityEditor">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEditor.dll</HintPath>
</Reference>
<Reference Include="UnityEngine">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AccessibilityModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AndroidJNIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AnimationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ARModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClothModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterInputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterRendererModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CrashReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DirectorModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DSPGraphModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GameCenterModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GridModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.HotReloadModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.JSONSerializeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.LocalizationModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PerformanceReportingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Physics2DModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ProfilerModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Purchasing">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Purchasing.Stores">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.Purchasing.Stores.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ScreenCaptureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SharedInternalsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteMaskModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteShapeModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.StreamingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubstanceModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubsystemsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainPhysicsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextCoreModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TilemapModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>..\..\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIElementsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UmbraModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UNETModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityAnalyticsModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityConnectModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityTestProtocolModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAudioModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestTextureModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestWWWModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VehiclesModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VFXModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VideoModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.WindModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.XRModule">
<HintPath>..\..\..\..\..\..\Program Files\Unity\Hub\Editor\2019.4.30f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

24
Assets_DLL/CoreEditor/Settings/CoreSettingsWindow.cs

@ -457,19 +457,22 @@ namespace CoreEditor.Settings
if (_propertiesList[6] == true)
{
if (_coreSettings.volume == null || _coreSettings.volume.Length != 3)
_coreSettings.volume = new float[] { 1f, 1f, 1f };
EditorGUILayout.BeginVertical("BOX");
GUILayout.Space(5);
_coreSettings.musicVolume = EditorGUILayout.Slider("Music volume:", _coreSettings.musicVolume, 0f, 1f);
_coreSettings.volume[0] = EditorGUILayout.Slider("Music volume:", _coreSettings.volume[0], 0f, 1f);
GUILayout.Space(3);
_coreSettings.soundsVolume = EditorGUILayout.Slider("Sounds volume:", _coreSettings.soundsVolume, 0f, 1f);
_coreSettings.volume[1] = EditorGUILayout.Slider("Sounds volume:", _coreSettings.volume[1], 0f, 1f);
GUILayout.Space(3);
_coreSettings.voicesVolume = EditorGUILayout.Slider("Voices volume:", _coreSettings.voicesVolume, 0f, 1f);
_coreSettings.volume[2] = EditorGUILayout.Slider("Voices volume:", _coreSettings.volume[2], 0f, 1f);
GUILayout.Space(5);
@ -490,19 +493,16 @@ namespace CoreEditor.Settings
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio"))
AssetDatabase.CreateFolder("Assets/Resources", "Audio");
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio/Musics"))
AssetDatabase.CreateFolder("Assets/Resources/Audio", "Musics");
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio/Sounds"))
AssetDatabase.CreateFolder("Assets/Resources/Audio", "Sounds");
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio/NonLocalizedSounds"))
AssetDatabase.CreateFolder("Assets/Resources/Audio", "NonLocalizedSounds");
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio/Voices"))
AssetDatabase.CreateFolder("Assets/Resources/Audio", "Voices");
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio/LocalizedSounds"))
AssetDatabase.CreateFolder("Assets/Resources/Audio", "LocalizedSounds");
for (int i = 0; i < _coreSettings.availableLanguages.Count; i++)
{
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio/Voices/" + _coreSettings.availableLanguages[i].ToString()))
AssetDatabase.CreateFolder("Assets/Resources/Audio/Voices", _coreSettings.availableLanguages[i].ToString());
if (!AssetDatabase.IsValidFolder("Assets/Resources/Audio/LocalizedSounds/" + _coreSettings.availableLanguages[i].ToString()))
AssetDatabase.CreateFolder("Assets/Resources/Audio/LocalizedSounds", _coreSettings.availableLanguages[i].ToString());
}
}

4
Assets_DLL/CoreEditor/Tools/SaveManagerEditor.cs

@ -6,10 +6,6 @@ namespace CoreEditor.Tools
{
internal static class SaveManagerEditor
{
[MenuItem("Prototype/Show path to save", false, 100)]
private static void ShowPathToSave() =>
Debug.Log("Path to save: " + SaveManager.GetPathToSave());
[MenuItem("Prototype/Clear Save", false, 101)]
private static void ClearSave() =>
SaveManager.Clear();

4
Assets_DLL/CoreEditor/obj/CoreEditor.csproj.nuget.dgspec.json

@ -61,7 +61,7 @@
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\5.0.404\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\6.0.302\\RuntimeIdentifierGraph.json"
}
}
},
@ -118,7 +118,7 @@
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\5.0.404\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\6.0.302\\RuntimeIdentifierGraph.json"
}
}
}

5
Assets_DLL/CoreEditor/obj/CoreEditor.csproj.nuget.g.props

@ -7,12 +7,9 @@
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Seraph\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.11.1</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.2.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Seraph\.nuget\packages\" />
</ItemGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>

3
Assets_DLL/CoreEditor/obj/CoreEditor.csproj.nuget.g.targets

@ -1,8 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
</ImportGroup>

BIN
Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.assets.cache

Binary file not shown.

BIN
Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.AssemblyReference.cache

Binary file not shown.

2
Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.CoreCompileInputs.cache

@ -1 +1 @@
c0285597973193b3af84a2311133c085240ec7ab
f2d2b287343c0aea3b8f18dbfa4e1e191225142e

BIN
Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.dll

Binary file not shown.

2
Assets_DLL/CoreEditor/obj/project.assets.json

@ -255,7 +255,7 @@
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\5.0.404\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "c:\\program files\\dotnet\\sdk\\6.0.302\\RuntimeIdentifierGraph.json"
}
}
}

2
Assets_DLL/CoreEditor/obj/project.nuget.cache

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "qkhVuOlYEkmi2DHHRuNMcqs1P4fYmJt3cqFX3P/k5v4drA4rQrEghTaCrhMF/yOC3iYsVvnOva+Ai9WkMlaKTQ==",
"dgSpecHash": "KQFClcQRrsrN1c6wY9H9cKZqrUi8tJ10sYZi9MG9Is8cFIdJ/WaGe7RPeniZLJrHYoNDapC9mGiDPv4DFnP1sQ==",
"success": true,
"projectFilePath": "C:\\Users\\Seraph\\Desktop\\Prototype\\Assets_DLL\\CoreEditor\\CoreEditor.csproj",
"expectedPackageFiles": [

Loading…
Cancel
Save