PlantList

This commit is contained in:
ThomasCharester committed 2026-03-05 11:27:10 +03:00
1 parent ba49ef5015
commit 7c207ef5b9
44 files changed
+2795 -1147

No files matched your search

@@ -26,6 +26,12 @@ MonoBehaviour:
m_ReadOnly: 0 m_ReadOnly: 0
m_SerializedLabels: [] m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1f30771e18fce2b1bb507c138c3d936b
m_Address: Assets/Resources_moved/Configs/UI/PlantList.asset
m_ReadOnly: 0
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2471ee3760db4ecfe8c313bb2c00daf0 - m_GUID: 2471ee3760db4ecfe8c313bb2c00daf0
m_Address: Assets/Resources_moved/Configs/Audio/Audio Source.prefab m_Address: Assets/Resources_moved/Configs/Audio/Audio Source.prefab
m_ReadOnly: 0 m_ReadOnly: 0
@@ -36,11 +42,22 @@ MonoBehaviour:
m_ReadOnly: 0 m_ReadOnly: 0
m_SerializedLabels: [] m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 30bf0707d8c0ac32fb6e6de15f878f21
m_Address: Assets/Resources_moved/Configs/ConstantImage/NoPhoto.png
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 34c615d91f8c753d1af79f0bc394d317 - m_GUID: 34c615d91f8c753d1af79f0bc394d317
m_Address: Assets/Resources_moved/UI/PlantAdd.prefab m_Address: Assets/Resources_moved/UI/PlantAdd.prefab
m_ReadOnly: 0 m_ReadOnly: 0
m_SerializedLabels: [] m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 49ac2df00a7ca9225ba64cd2c5904160
m_Address: Assets/Resources_moved/Configs/UI/AddTask.asset
m_ReadOnly: 0
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4a6908602eab38258aeb79ae3c499a8a - m_GUID: 4a6908602eab38258aeb79ae3c499a8a
m_Address: Assets/Resources_moved/UI/Loading.prefab m_Address: Assets/Resources_moved/UI/Loading.prefab
m_ReadOnly: 0 m_ReadOnly: 0
@@ -52,11 +69,22 @@ MonoBehaviour:
m_SerializedLabels: m_SerializedLabels:
- AudioSettingsConfig - AudioSettingsConfig
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6ca0414a95c28fc28bf00f7ba16f7051
m_Address: Assets/Resources_moved/UI/PlantAsListElement.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 782c95a3b9a7e71eebcf593e1fdc9c30 - m_GUID: 782c95a3b9a7e71eebcf593e1fdc9c30
m_Address: Assets/Resources_moved/UI/Logo.prefab m_Address: Assets/Resources_moved/UI/Logo.prefab
m_ReadOnly: 0 m_ReadOnly: 0
m_SerializedLabels: [] m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: be2931739151b6d3e9504aadddfea8fd
m_Address: Assets/Resources_moved/Configs/UI/PlantAsListElement.asset
m_ReadOnly: 0
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d3cf10166e7fbeb3586d613033c78618 - m_GUID: d3cf10166e7fbeb3586d613033c78618
m_Address: Assets/Resources_moved/Configs/UI/AddPlant.asset m_Address: Assets/Resources_moved/Configs/UI/AddPlant.asset
m_ReadOnly: 0 m_ReadOnly: 0
@@ -79,6 +107,16 @@ MonoBehaviour:
m_ReadOnly: 0 m_ReadOnly: 0
m_SerializedLabels: [] m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e223be9e03027411aba40739e290d1a4
m_Address: Assets/Resources_moved/UI/TaskAdd.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e26a7ea0754df9bdebf402c9df4f55d3
m_Address: Assets/Resources_moved/UI/PlantList.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: eab71c0cf90c4b94294e497d3734cfe1 - m_GUID: eab71c0cf90c4b94294e497d3734cfe1
m_Address: Assets/Resources_moved/Configs/InputServiceConfig.asset m_Address: Assets/Resources_moved/Configs/InputServiceConfig.asset
m_ReadOnly: 0 m_ReadOnly: 0
@@ -90,6 +128,12 @@ MonoBehaviour:
m_SerializedLabels: m_SerializedLabels:
- AudioSettingsConfig - AudioSettingsConfig
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fcb3bfddf2f19cf8caaf94e320064535
m_Address: Assets/Resources_moved/Configs/ConstantImage/NoPhotoImage.asset
m_ReadOnly: 0
m_SerializedLabels:
- ConstantImageConfig
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0 m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 98a60ee5f4a8add4b85833d6a400e8b9, type: 2} m_Settings: {fileID: 11400000, guid: 98a60ee5f4a8add4b85833d6a400e8b9, type: 2}
m_SchemaSet: m_SchemaSet:
@@ -1,18 +1,27 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Code.Infrastructure.Configs; using Code.Infrastructure.Configs;
using Code.Infrastructure.EventBus; using Code.Infrastructure.EventBus;
using Cysharp.Threading.Tasks; using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.AddressableAssets; using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
namespace Code.Calendar.Constants namespace Code.Calendar.Constants
{ {
// Написать кодрайтер, который будет находить конфиги и добавлять их сюда пока написано само // Написать кодрайтер, который будет находить конфиги и добавлять их сюда пока написано само
public class ConstantImagesService public interface IConstantImagesService
{
UniTaskVoid LoadImage(ConstantImageType imageType, Action<Sprite> callback);
void ReleaseImage(ConstantImageType imageType);
}
public class ConstantImagesService : IConstantImagesService
{ {
private readonly EventBus _eventBus; private readonly EventBus _eventBus;
public List<ConstantImageConfig> Configs { get; private set; } public Dictionary<ConstantImageType, ConstantImageConfig> Configs { get; private set; }
public ConstantImagesService(EventBus eventBus, IConfigLocator configLocator) public ConstantImagesService(EventBus eventBus, IConfigLocator configLocator)
{ {
@@ -20,10 +29,10 @@ namespace Code.Calendar.Constants
var label = configLocator.TryGetManyConfigAssetReferences<ConstantImageConfig>(); var label = configLocator.TryGetManyConfigAssetReferences<ConstantImageConfig>();
LoadImage(label).Forget(); LoadImages(label).Forget();
} }
private async UniTaskVoid LoadImage(string imagesLabel) private async UniTaskVoid LoadImages(string imagesLabel)
{ {
if ((await Addressables.LoadResourceLocationsAsync(imagesLabel).Task).Count != 0) if ((await Addressables.LoadResourceLocationsAsync(imagesLabel).Task).Count != 0)
{ {
@@ -32,13 +41,29 @@ namespace Code.Calendar.Constants
await images.ToUniTask(); await images.ToUniTask();
Configs = images.Result.ToList(); Configs = images.Result.ToDictionary(x=> x.imageType);
} }
_eventBus.RaiseEvent<IConstantImagesServiceHandle>(x=> x.ImagesLoaded()); _eventBus.RaiseEvent<IConstantImagesServiceHandle>(x=> x.ImagesLoaded());
} }
}
Dictionary<ConstantImageType, AsyncOperationHandle<Sprite>> _spritesHandles = new();
public async UniTaskVoid LoadImage(ConstantImageType imageType, Action<Sprite> callback)
{
if(!_spritesHandles.ContainsKey(imageType))
_spritesHandles.Add(imageType, Addressables.LoadAssetAsync<Sprite>(Configs[imageType].image));
await _spritesHandles[imageType].ToUniTask();
callback?.Invoke(_spritesHandles[imageType].Result);
}
public void ReleaseImage(ConstantImageType imageType)
{
_spritesHandles[imageType].Release();
_spritesHandles.Remove(imageType);
}
}
public interface IConstantImagesServiceHandle : IGlobalSubscriber public interface IConstantImagesServiceHandle : IGlobalSubscriber
{ {
void ImagesLoaded(); void ImagesLoaded();
@@ -22,7 +22,7 @@ namespace Code.Calendar.DataStructures
public bool Active; public bool Active;
public string Description; public string Description;
public DateTime Date; public DateTime Date; // Если периодичная, то дата первого мероприятия
public bool IsPeriodic; public bool IsPeriodic;
public int PeriodicInterval; public int PeriodicInterval;
@@ -28,11 +28,18 @@ namespace Code.Calendar.DataStructures
{ {
_eventBus = eventBus; _eventBus = eventBus;
LoadJsonTasks().Forget(); LoadJsonPlants().Forget();
} }
private async UniTaskVoid LoadJsonTasks() private async UniTaskVoid LoadJsonPlants()
{ {
if (_inAction)
{
_reUseLoadRequest = true;
return;
}
_inAction = true;
var path = Path.Combine(Application.persistentDataPath, "Plants.json"); var path = Path.Combine(Application.persistentDataPath, "Plants.json");
if (File.Exists(path)) if (File.Exists(path))
@@ -46,16 +53,19 @@ namespace Code.Calendar.DataStructures
await using (File.Create(path)) { } await using (File.Create(path)) { }
} }
_eventBus.RaiseEvent<IPlantsServiceInitHandle>(x=> x.PlantsLoaded()); _inAction = false;
if(!_reUseLoadRequest) _eventBus.RaiseEvent<IPlantsServiceInitHandle>(x=> x.PlantsLoaded());
else LoadJsonPlants().Forget();
} }
private bool _inAction, _reUseRequest; private bool _inAction, _reUseSaveRequest, _reUseLoadRequest;
private async UniTaskVoid SaveJsonTasks() private async UniTaskVoid SaveJsonPlants()
{ {
if (_inAction) if (_inAction)
{ {
_reUseRequest = true; _reUseSaveRequest = true;
return; return;
} }
@@ -69,8 +79,8 @@ namespace Code.Calendar.DataStructures
_inAction = false; _inAction = false;
if(!_reUseRequest) _eventBus.RaiseEvent<IPlantsServiceInitHandle>(x=> x.PlantsSaved()); if(!_reUseSaveRequest) _eventBus.RaiseEvent<IPlantsServiceInitHandle>(x=> x.PlantsSaved());
else SaveJsonTasks().Forget(); else SaveJsonPlants().Forget();
} }
public void AddPlant(Plant plant) public void AddPlant(Plant plant)
@@ -79,20 +89,20 @@ namespace Code.Calendar.DataStructures
_plants.Add(plant); _plants.Add(plant);
SaveJsonTasks().Forget(); SaveJsonPlants().Forget();
} }
public void EditPlant(Guid guid, Plant newPlant) public void EditPlant(Guid guid, Plant newPlant)
{ {
_plants[_plants.FindIndex(x => x.Id == guid)] = newPlant; _plants[_plants.FindIndex(x => x.Id == guid)] = newPlant;
SaveJsonTasks().Forget(); SaveJsonPlants().Forget();
} }
public void DeletePlant(Plant plant) public void DeletePlant(Plant plant)
{ {
_plants.Remove(plant); _plants.Remove(plant);
SaveJsonTasks().Forget(); SaveJsonPlants().Forget();
} }
public Plant GetPlant(Guid plantId) => _plants.FirstOrDefault(x => x.Id == plantId); public Plant GetPlant(Guid plantId) => _plants.FirstOrDefault(x => x.Id == plantId);
@@ -100,7 +110,7 @@ namespace Code.Calendar.DataStructures
public void Dispose() public void Dispose()
{ {
SaveJsonTasks().Forget(); SaveJsonPlants().Forget();
} }
} }
@@ -76,9 +76,9 @@ namespace Code.Calendar.DataStructures
public void AddTask(Task task) public void AddTask(Task task)
{ {
_tasks.Add(task);
task.Id = Guid.NewGuid(); task.Id = Guid.NewGuid();
_tasks.Add(task);
SaveJsonTasks().Forget(); SaveJsonTasks().Forget();
} }
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a8d3a5935f1c497bb56de2d94ef01cdd
timeCreated: 1772468475
@@ -0,0 +1,31 @@
using UnityEngine;
using System.Collections;
public class SelectedDate {
public static System.DateTime date = System.DateTime.Now;
}
public class DateCallback : AndroidJavaProxy
{
public DateCallback() : base("android.app.DatePickerDialog$OnDateSetListener") { }
public void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth) {
SelectedDate.date = new System.DateTime(year, monthOfYear + 1, dayOfMonth);
}
}
public class ExampleClass : MonoBehaviour
{
private AndroidJavaObject activity;
void PickDate(){
new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), SelectedDate.date.Year, SelectedDate.date.Month - 1, SelectedDate.date.Day).Call("show");
}
void OnGUI()
{
if (GUI.Button(new Rect(10, 10, 450, 100), System.String.Format("{0:yyyy-MM-dd}", SelectedDate.date)))
{
activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
activity.Call("runOnUiThread", new AndroidJavaRunnable(PickDate));
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: dcb51e6febb24b66870aad7e44df62e0
timeCreated: 1772468482
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e8cc1a025b3f422bb7187c11271c961f
timeCreated: 1772560436
@@ -0,0 +1,12 @@
using UnityEngine;
namespace Code.Calendar.OtherUIElements
{
public class AddPlantButton : MonoBehaviour
{
public void OpenAddPlant()
{
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 67f6127a30aa48ea8157228ad37df8a6
timeCreated: 1772560454
@@ -0,0 +1,36 @@
using System;
using Code.Calendar.Constants;
using Code.Calendar.DataStructures;
using Code.Infrastructure.UI;
using Reflex.Attributes;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace Code.Calendar.Panels
{
public class PlantAsListElement : UIPanel
{
[Inject] private IConstantImagesService _constantImagesService;
[SerializeField] private Image image;
[SerializeField] private TMP_Text plantName;
public Guid PlantId { get; private set; }
public void SetPlant(Plant plant)
{
PlantId = plant.Id;
plantName.text = plant.Name;
_constantImagesService.LoadImage(ConstantImageType.NoPhoto,SetImage);
}
private void SetImage(Sprite sprite) => image.sprite = sprite;
public override void Open(Action callback = null)
{
callback?.Invoke();
}
public override void Close(Action callback = null)
{
callback?.Invoke();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 65c40e2bdcb14b3ea164b84b80809b25
timeCreated: 1772547821
@@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using Code.Calendar.DataStructures;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.Loadings;
using Code.Infrastructure.UI;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Calendar.Panels
{
public class PlantsListPanel : UIPanel, IUIPanelLoaded
{
[SerializeField] private Transform contentParent;
private IPlantService _plantService;
private IUIService _uiService;
private EventBus _eventBus;
private List<PlantAsListElement> _plantsPanels = new();
private Stack<Plant> _plantsToCreate;
[Inject]
private void Construct(EventBus eventBus, IPlantService plantService, IUIService uiService)
{
_eventBus = eventBus;
_plantService = plantService;
_uiService = uiService;
eventBus.Subscribe(this);
}
public override void Open(Action callback = null)
{
_plantsToCreate = new(_plantService.GetPlants());
for (var i = _plantsToCreate.Count; i > 0 ; i--) _uiService.TryLoadCreatePanel(UIPanelType.PlantAsList, contentParent);
callback?.Invoke();
}
public override void Close(Action callback = null)
{
ClearPlants(callback);
}
private Loading _panelClosureLoading;
private void ClearPlants(Action callback = null)
{
if(_panelClosureLoading != null)
_panelClosureLoading = new(_plantsPanels.Count + _panelClosureLoading.CurrentProgress, callback);
else
_panelClosureLoading = new(_plantsPanels.Count, callback);
foreach (var plantPanel in _plantsPanels) _uiService.TryRemovePanel(plantPanel);
}
public void UISinglePanelLoaded(UIPanelType uiPanelType)
{
}
public void UIMultiplePanelLoaded(UIPanelType uiPanelType, UIPanel panel)
{
if (uiPanelType != UIPanelType.PlantAsList) return;
_plantsPanels.Add((PlantAsListElement)panel);
((PlantAsListElement)panel).SetPlant(_plantsToCreate.Pop());
if(_plantsToCreate.Count == 0) PlantPanelsLoaded();
}
private void PlantPanelsLoaded()
{
foreach (var panel in _plantsPanels)
{
panel.Open();
}
Debug.LogWarning("PlantPanelsLoaded");
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ddc4b25ae5854a83ae0a1ba7f8dffb7d
timeCreated: 1772547586
@@ -0,0 +1,41 @@
using System;
using Code.Calendar.DataStructures;
using Code.Infrastructure.UI;
using PrimeTween;
using Reflex.Attributes;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace Code.Calendar.Panels
{
public class TaskAddPanel : UIPanel
{
[Inject] private ITaskService _taskService;
[SerializeField] private TMP_InputField taskName;
[SerializeField] private Toggle isPeriodic;
public void TryAddPlant()
{
Task newTask = new()
{
Active = true,
IsPeriodic = isPeriodic.isOn,
PeriodicInterval = 0,
};
_taskService.AddTask(newTask);
}
public override void Open(Action callback = null)
{
callback?.Invoke();
// Tween.Alpha(image, 1f, 1f).OnComplete(target: this, _ => callback?.Invoke());
}
public override void Close(Action callback = null)
{
callback?.Invoke();
// Tween.Alpha(image, 0f, 1f).OnComplete(target: this, _ => callback?.Invoke());
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fd466bce2a8b41bbab38fd3ede5b7c35
timeCreated: 1772467428
@@ -60,7 +60,7 @@ namespace Code.Infrastructure.App
containerBuilder.RegisterType(typeof(PlantService), new[] { typeof(IPlantService) }, Lifetime.Singleton, containerBuilder.RegisterType(typeof(PlantService), new[] { typeof(IPlantService) }, Lifetime.Singleton,
Resolution.Eager); Resolution.Eager);
containerBuilder.RegisterType(typeof(ConstantImagesService), Lifetime.Singleton, containerBuilder.RegisterType(typeof(ConstantImagesService), new []{typeof(IConstantImagesService)}, Lifetime.Singleton,
Resolution.Eager); Resolution.Eager);
} }
@@ -114,12 +114,13 @@ namespace Code.Infrastructure.App
{ {
_initialLoading.DoProgress(); _initialLoading.DoProgress();
_thatRightContainer.Resolve<IUIService>().TryLoadPanel(UIPanelType.Logo); _thatRightContainer.Resolve<IUIService>().TryLoadCreatePanel(UIPanelType.Logo);
_thatRightContainer.Resolve<IUIService>().TryLoadPanel(UIPanelType.Loading); _thatRightContainer.Resolve<IUIService>().TryLoadCreatePanel(UIPanelType.Loading);
} }
public void UILoaded(UIPanelType uiPanelType) public void UISinglePanelLoaded(UIPanelType uiPanelType)
{ {
Debug.LogWarning($@"Loaded {uiPanelType.ToString()}");
switch (uiPanelType) switch (uiPanelType)
{ {
case UIPanelType.Logo: case UIPanelType.Logo:
@@ -136,6 +137,11 @@ namespace Code.Infrastructure.App
} }
} }
public void UIMultiplePanelLoaded(UIPanelType uiPanelType, UIPanel panel)
{
}
public void AudioSourcePoolInitialized() public void AudioSourcePoolInitialized()
{ {
_initialLoading.DoProgress(); _initialLoading.DoProgress();
@@ -161,6 +167,7 @@ namespace Code.Infrastructure.App
public void PlantsLoaded() public void PlantsLoaded()
{ {
Debug.LogWarning("PlantsLoaded");
_initialLoading.DoProgress(); _initialLoading.DoProgress();
} }
@@ -1,4 +1,3 @@
using System.Threading;
using Code.Infrastructure.Audio; using Code.Infrastructure.Audio;
using Code.Infrastructure.Generators; using Code.Infrastructure.Generators;
using Code.Infrastructure.UI; using Code.Infrastructure.UI;
@@ -22,7 +21,7 @@ namespace Code.Infrastructure.App.States
Context.UIService.TryRemovePanel(UIPanelType.Logo); Context.UIService.TryRemovePanel(UIPanelType.Logo);
Context.UIService.TryRemovePanel(UIPanelType.Loading); Context.UIService.TryRemovePanel(UIPanelType.Loading);
Context.UIService.TryLoadPanel(UIPanelType.PlantAdd); Context.UIService.TryLoadCreatePanel(UIPanelType.PlantList);
// Context.AudioFactory.LoadAudioClips(AudioNames.UISounds); // Context.AudioFactory.LoadAudioClips(AudioNames.UISounds);
} }
@@ -32,12 +31,18 @@ namespace Code.Infrastructure.App.States
_eventBus.Unsubscribe(this); _eventBus.Unsubscribe(this);
} }
public void UILoaded(UIPanelType uiPanelType) public void UISinglePanelLoaded(UIPanelType uiPanelType)
{ {
if (uiPanelType != UIPanelType.PlantAdd) return; if (uiPanelType != UIPanelType.PlantList) return;
Context.UIService.OpenPanel(uiPanelType); Context.UIService.OpenPanel(uiPanelType);
} }
public void UIMultiplePanelLoaded(UIPanelType uiPanelType, UIPanel panel)
{
}
public void OnReadyToPlay(AudioNames groupName) public void OnReadyToPlay(AudioNames groupName)
{ {
// Context.AudioService.PlayRepeatedly(AudioNames.UISounds,0); // Context.AudioService.PlayRepeatedly(AudioNames.UISounds,0);
+7 -4
View File
@@ -12,14 +12,16 @@ namespace Code.Infrastructure.UI
{ {
public interface IUIFactory public interface IUIFactory
{ {
UniTaskVoid LoadPanel(UIPanelType panelType); UniTaskVoid LoadPanel(UIPanelType panelType, Transform parent = null);
void ReleasePanel(UIPanel panel); void ReleasePanel(UIPanel panel);
Canvas Canvas { get; } Canvas Canvas { get; }
bool CheckIsMultiple(UIPanelType panelType);
} }
public class UIFactory : IDisposable, IUIFactory public class UIFactory : IDisposable, IUIFactory
{ {
private Dictionary<UIPanelType, UIPanelSettingsConfig> _configs; private Dictionary<UIPanelType, UIPanelSettingsConfig> _configs;
public bool CheckIsMultiple(UIPanelType panelType) => _configs[panelType].Multiple;
private AssetReference _canvasConfigReference; private AssetReference _canvasConfigReference;
private string _configsLabel; private string _configsLabel;
private EventBus.EventBus _eventBus; private EventBus.EventBus _eventBus;
@@ -41,9 +43,9 @@ namespace Code.Infrastructure.UI
LoadConfigs().Forget(); LoadConfigs().Forget();
} }
public async UniTaskVoid LoadPanel(UIPanelType panelType) public async UniTaskVoid LoadPanel(UIPanelType panelType, Transform parent = null)
{ {
var panel = (await Addressables.InstantiateAsync(_configs[panelType].Prefab, _canvas.transform).ToUniTask()) var panel = (await Addressables.InstantiateAsync(_configs[panelType].Prefab, parent ?? _canvas.transform).ToUniTask())
.GetComponent<UIPanel>(); .GetComponent<UIPanel>();
UnityEngine.Debug.LogWarning($"Panel loaded {panelType}"); UnityEngine.Debug.LogWarning($"Panel loaded {panelType}");
@@ -52,7 +54,7 @@ namespace Code.Infrastructure.UI
public void ReleasePanel(UIPanel panel) public void ReleasePanel(UIPanel panel)
{ {
UnityEngine.Debug.LogWarning($"Panel released {panel.gameObject.name}"); Debug.LogWarning($"Panel released {panel.gameObject.name}");
Addressables.ReleaseInstance(panel.gameObject); Addressables.ReleaseInstance(panel.gameObject);
} }
@@ -90,5 +92,6 @@ namespace Code.Infrastructure.UI
public interface IUIPanelLoadedHandle : IGlobalSubscriber public interface IUIPanelLoadedHandle : IGlobalSubscriber
{ {
void UIPanelLoaded(UIPanel panel, UIPanelType panelType); void UIPanelLoaded(UIPanel panel, UIPanelType panelType);
List<UIPanel> TryGetMultiplePanels(UIPanelType panelType);
} }
} }
@@ -8,6 +8,7 @@ namespace Code.Infrastructure.UI
{ {
[ToConfig] public AssetReference Prefab; [ToConfig] public AssetReference Prefab;
[ToConfig] public UIPanelType UIPanelType; [ToConfig] public UIPanelType UIPanelType;
[ToConfig] public bool Multiple;
} }
[Config("Configs/UI/CanvasSettings")] [Config("Configs/UI/CanvasSettings")]
+4 -1
View File
@@ -7,6 +7,9 @@ namespace Code.Infrastructure.UI
Calendar, Calendar,
Tasks, Tasks,
Plants, Plants,
PlantAdd PlantAdd,
TaskAdd,
PlantList,
PlantAsList
} }
} }
+58 -16
View File
@@ -1,9 +1,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Code.Infrastructure.EventBus; using Code.Infrastructure.EventBus;
using Reflex.Core; using Reflex.Core;
using Reflex.Extensions; using Reflex.Extensions;
using Reflex.Injectors; using Reflex.Injectors;
using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
namespace Code.Infrastructure.UI namespace Code.Infrastructure.UI
@@ -12,15 +14,17 @@ namespace Code.Infrastructure.UI
{ {
void OpenPanel(UIPanelType uiPanelType); void OpenPanel(UIPanelType uiPanelType);
void ClosePanel(UIPanelType uiPanelType); void ClosePanel(UIPanelType uiPanelType);
void TryLoadPanel(UIPanelType uiPanelType); void TryLoadCreatePanel(UIPanelType uiPanelType, Transform parent = null);
void TryRemovePanel(UIPanelType uiPanelType); void TryRemovePanel(UIPanelType uiPanelType);
void SetCanvasCamera(UnityEngine.Camera camera); void SetCanvasCamera(UnityEngine.Camera camera);
UIPanel TryGetPanel(UIPanelType panelType); UIPanel TryGetSinglePanel(UIPanelType panelType);
void TryRemovePanel(UIPanel panel, Action callback = null);
} }
public class UIService : IUIPanelLoadedHandle, IUIService public class UIService : IUIPanelLoadedHandle, IUIService
{ {
private Dictionary<UIPanelType, UIPanel> _loadedPanels = new(); private Dictionary<UIPanelType, UIPanel> _loadedSinglePanels = new();
private Dictionary<UIPanelType, List<UIPanel>> _loadedMultiplePanels = new();
private EventBus.EventBus _eventBus; private EventBus.EventBus _eventBus;
private IUIFactory _factory; private IUIFactory _factory;
@@ -32,7 +36,7 @@ namespace Code.Infrastructure.UI
eventBus.Subscribe(this); eventBus.Subscribe(this);
} }
public void SetCanvasCamera(UnityEngine.Camera camera) public void SetCanvasCamera(Camera camera)
{ {
_factory.Canvas.worldCamera = camera; _factory.Canvas.worldCamera = camera;
_factory.Canvas.planeDistance = 0.3f; _factory.Canvas.planeDistance = 0.3f;
@@ -40,49 +44,87 @@ namespace Code.Infrastructure.UI
public void OpenPanel(UIPanelType uiPanelType) public void OpenPanel(UIPanelType uiPanelType)
{ {
_loadedPanels[uiPanelType].gameObject.SetActive(true); _loadedSinglePanels[uiPanelType].gameObject.SetActive(true);
_loadedPanels[uiPanelType].Open(); _loadedSinglePanels[uiPanelType].Open();
} }
// TODO Close event // TODO Close event
public void ClosePanel(UIPanelType uiPanelType) public void ClosePanel(UIPanelType uiPanelType)
{ {
_loadedPanels[uiPanelType].Close(() => { _loadedPanels[uiPanelType].gameObject.SetActive(false); }); _loadedSinglePanels[uiPanelType].Close(() =>
{
_loadedSinglePanels[uiPanelType].gameObject.SetActive(false);
});
} }
public void TryLoadPanel(UIPanelType uiPanelType) => _factory.LoadPanel(uiPanelType); public void TryLoadCreatePanel(UIPanelType uiPanelType, Transform parent = null) => _factory.LoadPanel(uiPanelType, parent);
public void UIPanelLoaded(UIPanel panel, UIPanelType panelType) public void UIPanelLoaded(UIPanel panel, UIPanelType panelType)
{ {
_loadedPanels.Add(panelType, panel); if (!_factory.CheckIsMultiple(panelType))
_loadedSinglePanels.Add(panelType, panel);
else
{
if (!_loadedMultiplePanels.ContainsKey(panelType))
_loadedMultiplePanels.Add(panelType, new List<UIPanel>());
_loadedMultiplePanels[panelType].Add(panel);
}
if (panel.InjectMeSenpai) if (panel.InjectMeSenpai)
GameObjectInjector.InjectRecursive(panel.gameObject, Container.RootContainer); GameObjectInjector.InjectRecursive(panel.gameObject, Container.RootContainer);
// GameObjectInjector.InjectRecursive(panel.gameObject, SceneManager.GetActiveScene().GetSceneContainer()); // Скорее всего будут нужны компоненты текущей сцены // GameObjectInjector.InjectRecursive(panel.gameObject, SceneManager.GetActiveScene().GetSceneContainer()); // Скорее всего будут нужны компоненты текущей сцены
_eventBus.RaiseEvent<IUIPanelLoaded>(ui => ui.UILoaded(panelType)); if (!_factory.CheckIsMultiple(panelType)) _eventBus.RaiseEvent<IUIPanelLoaded>(ui => ui.UISinglePanelLoaded(panelType));
else _eventBus.RaiseEvent<IUIPanelLoaded>(ui => ui.UIMultiplePanelLoaded(panelType, panel));
} }
public void TryRemovePanel(UIPanelType uiPanelType) public void TryRemovePanel(UIPanelType uiPanelType)
{ {
_loadedPanels[uiPanelType].Close(() => _loadedSinglePanels[uiPanelType].Close(() =>
{ {
_loadedPanels[uiPanelType].gameObject.SetActive(false); _loadedSinglePanels[uiPanelType].gameObject.SetActive(false);
RemovePanel(uiPanelType); RemovePanel(uiPanelType);
}); });
} }
public void TryRemovePanel(UIPanel panel, Action callback = null)
{
panel.Close(() =>
{
panel.gameObject.SetActive(false);
RemovePanel(panel);
callback?.Invoke();
});
}
private void RemovePanel(UIPanelType panelType) private void RemovePanel(UIPanelType panelType)
{ {
_factory.ReleasePanel(_loadedPanels[panelType]); if (!_factory.CheckIsMultiple(panelType))
_loadedPanels.Remove(panelType); {
_factory.ReleasePanel(_loadedSinglePanels[panelType]);
_loadedSinglePanels.Remove(panelType);
}
else
{
foreach (var panel in _loadedMultiplePanels[panelType])
_factory.ReleasePanel(panel);
_loadedMultiplePanels.Remove(panelType);
}
} }
public UIPanel TryGetPanel(UIPanelType panelType) => _loadedPanels.GetValueOrDefault(panelType); private void RemovePanel(UIPanel panel)
{
_factory.ReleasePanel(panel);
}
public UIPanel TryGetSinglePanel(UIPanelType panelType) => _loadedSinglePanels.GetValueOrDefault(panelType);
public List<UIPanel> TryGetMultiplePanels(UIPanelType panelType) => _loadedMultiplePanels.GetValueOrDefault(panelType);
} }
public interface IUIPanelLoaded : IGlobalSubscriber public interface IUIPanelLoaded : IGlobalSubscriber
{ {
void UILoaded(UIPanelType uiPanelType); void UISinglePanelLoaded(UIPanelType uiPanelType);
void UIMultiplePanelLoaded(UIPanelType uiPanelType, UIPanel panel);
} }
} }
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8d5c87fffb3ff5ee8abab7e37bc5c4f9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 30bf0707d8c0ac32fb6e6de15f878f21
TextureImporter:
internalIDToNameTable:
- first:
213: 7010646154456760207
second: Screenshot_20260303_195046_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Screenshot_20260303_195046_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 144
height: 144
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: f8f7a529881da4160800000000000000
internalID: 7010646154456760207
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Screenshot_20260303_195046_0: 7010646154456760207
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0a66569b5e85d6dcaa6f20304c8bd1e6, type: 3}
m_Name: NoPhotoImage
m_EditorClassIdentifier: Assembly-CSharp::Code.Calendar.Constants.ConstantImageConfig
image:
m_AssetGUID: 30bf0707d8c0ac32fb6e6de15f878f21
m_SubObjectName: NoPhoto
m_SubObjectType: UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_SubObjectGUID:
m_EditorAssetChanged: 0
imageType: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fcb3bfddf2f19cf8caaf94e320064535
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 17bdede85b436f44e992b27d170ccbc2, type: 3}
m_Name: AddTask
m_EditorClassIdentifier: Assembly-CSharp::Code.Infrastructure.UI.UIPanelSettingsConfig
Prefab:
m_AssetGUID: e223be9e03027411aba40739e290d1a4
m_SubObjectName:
m_SubObjectType:
m_SubObjectGUID:
m_EditorAssetChanged: 0
UIPanelType: 6
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 49ac2df00a7ca9225ba64cd2c5904160
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 17bdede85b436f44e992b27d170ccbc2, type: 3}
m_Name: PlantAsListElement
m_EditorClassIdentifier: Assembly-CSharp::Code.Infrastructure.UI.UIPanelSettingsConfig
Prefab:
m_AssetGUID: 6ca0414a95c28fc28bf00f7ba16f7051
m_SubObjectName:
m_SubObjectType:
m_SubObjectGUID:
m_EditorAssetChanged: 0
UIPanelType: 8
Multiple: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: be2931739151b6d3e9504aadddfea8fd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 17bdede85b436f44e992b27d170ccbc2, type: 3}
m_Name: PlantList
m_EditorClassIdentifier: Assembly-CSharp::Code.Infrastructure.UI.UIPanelSettingsConfig
Prefab:
m_AssetGUID: e26a7ea0754df9bdebf402c9df4f55d3
m_SubObjectName:
m_SubObjectType:
m_SubObjectGUID:
m_EditorAssetChanged: 0
UIPanelType: 7
Multiple: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1f30771e18fce2b1bb507c138c3d936b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,307 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &154932937749111045
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8462157687868353066}
- component: {fileID: 765122307979237593}
- component: {fileID: 7496551685525395122}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8462157687868353066
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154932937749111045}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4354118259126933439}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 50, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &765122307979237593
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154932937749111045}
m_CullTransparentMesh: 1
--- !u!114 &7496551685525395122
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154932937749111045}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4972349555072173146
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4354118259126933439}
- component: {fileID: 5894915357005990084}
- component: {fileID: 330452400929543065}
- component: {fileID: 4660938743921643316}
m_Layer: 5
m_Name: PlantAsListElement
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4354118259126933439
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4972349555072173146}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8462157687868353066}
- {fileID: 5343831333656768327}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 680, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5894915357005990084
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4972349555072173146}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 65c40e2bdcb14b3ea164b84b80809b25, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.Calendar.Panels.PlantAsListElement
injectMeSenpai: 1
image: {fileID: 7496551685525395122}
plantName: {fileID: 6372853690545057117}
--- !u!222 &330452400929543065
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4972349555072173146}
m_CullTransparentMesh: 1
--- !u!114 &4660938743921643316
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4972349555072173146}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0.94618046, b: 0.7877358, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5220154405363254825
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5343831333656768327}
- component: {fileID: 3094845590279732410}
- component: {fileID: 6372853690545057117}
m_Layer: 5
m_Name: PlantName
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5343831333656768327
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5220154405363254825}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4354118259126933439}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 200, y: 0}
m_SizeDelta: {x: 455, y: 100}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &3094845590279732410
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5220154405363254825}
m_CullTransparentMesh: 1
--- !u!114 &6372853690545057117
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5220154405363254825}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: New Text
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281224544
m_fontColor: {r: 0.3773585, g: 0.30175966, b: 0.17977929, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6ca0414a95c28fc28bf00f7ba16f7051
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+529
View File
@@ -0,0 +1,529 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1148698367672981844
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7295930792719187309}
- component: {fileID: 6896537711917098999}
- component: {fileID: 5186676416653338449}
m_Layer: 5
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7295930792719187309
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1148698367672981844}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6630580403839132108}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: -540.313}
m_SizeDelta: {x: 20, y: -1060.626}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6896537711917098999
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1148698367672981844}
m_CullTransparentMesh: 1
--- !u!114 &5186676416653338449
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1148698367672981844}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2283155296266908137
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6630580403839132108}
m_Layer: 5
m_Name: Sliding Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6630580403839132108
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2283155296266908137}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7295930792719187309}
m_Father: {fileID: 8148069543047132007}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2440739717810620506
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8148069543047132007}
- component: {fileID: 3751503955937106326}
- component: {fileID: 477304165686719117}
- component: {fileID: 8897023914919473058}
m_Layer: 5
m_Name: Scrollbar Vertical
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8148069543047132007
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2440739717810620506}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6630580403839132108}
m_Father: {fileID: 8700805016424741159}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: -17}
m_Pivot: {x: 1, y: 1}
--- !u!222 &3751503955937106326
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2440739717810620506}
m_CullTransparentMesh: 1
--- !u!114 &477304165686719117
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2440739717810620506}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8897023914919473058
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2440739717810620506}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Scrollbar
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 5186676416653338449}
m_HandleRect: {fileID: 7295930792719187309}
m_Direction: 2
m_Value: 0
m_Size: 1
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &4363717525966729067
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3319234048805898693}
- component: {fileID: 1375944544260388820}
- component: {fileID: 2404339331790846019}
- component: {fileID: 3311904650110295784}
m_Layer: 5
m_Name: Viewport
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3319234048805898693
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4363717525966729067}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2062694804924977523}
m_Father: {fileID: 8700805016424741159}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!222 &1375944544260388820
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4363717525966729067}
m_CullTransparentMesh: 1
--- !u!114 &2404339331790846019
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4363717525966729067}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3311904650110295784
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4363717525966729067}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Mask
m_ShowMaskGraphic: 0
--- !u!1 &8869344590937229531
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8700805016424741159}
- component: {fileID: 6860155795190068570}
- component: {fileID: 950803956245287687}
- component: {fileID: 3706615615028248060}
- component: {fileID: 7967620632285958197}
m_Layer: 5
m_Name: PlantList
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8700805016424741159
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8869344590937229531}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3319234048805898693}
- {fileID: 8148069543047132007}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6860155795190068570
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8869344590937229531}
m_CullTransparentMesh: 1
--- !u!114 &950803956245287687
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8869344590937229531}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3706615615028248060
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8869344590937229531}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ScrollRect
m_Content: {fileID: 2062694804924977523}
m_Horizontal: 0
m_Vertical: 1
m_MovementType: 1
m_Elasticity: 0.1
m_Inertia: 1
m_DecelerationRate: 0.135
m_ScrollSensitivity: 1
m_Viewport: {fileID: 3319234048805898693}
m_HorizontalScrollbar: {fileID: 0}
m_VerticalScrollbar: {fileID: 8897023914919473058}
m_HorizontalScrollbarVisibility: 2
m_VerticalScrollbarVisibility: 2
m_HorizontalScrollbarSpacing: -3
m_VerticalScrollbarSpacing: -3
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!114 &7967620632285958197
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8869344590937229531}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ddc4b25ae5854a83ae0a1ba7f8dffb7d, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Code.Calendar.Panels.PlantsListPanel
injectMeSenpai: 1
contentParent: {fileID: 2062694804924977523}
--- !u!1 &8889062304438454775
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2062694804924977523}
- component: {fileID: 881480074486955345}
- component: {fileID: 1665463989035863636}
m_Layer: 5
m_Name: Content
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2062694804924977523
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8889062304438454775}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3319234048805898693}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &881480074486955345
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8889062304438454775}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 30
m_Bottom: 0
m_ChildAlignment: 1
m_Spacing: 30
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &1665463989035863636
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8889062304438454775}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter
m_HorizontalFit: 1
m_VerticalFit: 2
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e26a7ea0754df9bdebf402c9df4f55d3
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e223be9e03027411aba40739e290d1a4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,14 +1,14 @@
#pragma warning disable CS0105 #pragma warning disable CS0105
using Code.Infrastructure.UI; using Code.Calendar.Constants;
using Code.Infrastructure.Configs;
using Code.Infrastructure.Audio; using Code.Infrastructure.Audio;
using Code.Infrastructure.UI; using Code.Infrastructure.UI;
using Code.Infrastructure.Audio; using Code.Infrastructure.UI;
using Code.Infrastructure.Audio;
using Code.Infrastructure.SceneLoader; using Code.Infrastructure.SceneLoader;
using Code.Infrastructure.Audio;
using Code.Infrastructure.Input; using Code.Infrastructure.Input;
using Code.Calendar.Constants; using Code.Infrastructure.Audio;
using Code.Infrastructure.Configs;
using UnityEngine; using UnityEngine;
#pragma warning restore CS0105 #pragma warning restore CS0105
@@ -22,23 +22,23 @@ using Code.Calendar.Constants;
{ {
SystemConfigsReferences systemConfigsReferences = Resources.Load<SystemConfigsReferences>("SystemConfigsReferences"); SystemConfigsReferences systemConfigsReferences = Resources.Load<SystemConfigsReferences>("SystemConfigsReferences");
_singleConfigReferences.Add(typeof(Code.Infrastructure.UI.CanvasSettingsConfig), systemConfigsReferences.CanvasSettings); _multipleConfigReferences.Add(typeof(Code.Calendar.Constants.ConstantImageConfig), systemConfigsReferences.ConstantImage);
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Configs.LayerMasksConfigConfig), systemConfigsReferences.LayerMasksConfig);
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioInfoConfig), systemConfigsReferences.AudioInfo); _multipleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioInfoConfig), systemConfigsReferences.AudioInfo);
_singleConfigReferences.Add(typeof(Code.Infrastructure.UI.CanvasSettingsConfig), systemConfigsReferences.CanvasSettings);
_multipleConfigReferences.Add(typeof(Code.Infrastructure.UI.UIPanelSettingsConfig), systemConfigsReferences.UIPanelSettings); _multipleConfigReferences.Add(typeof(Code.Infrastructure.UI.UIPanelSettingsConfig), systemConfigsReferences.UIPanelSettings);
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioSourceSettingsConfig), systemConfigsReferences.AudioSourceSettings);
_singleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioSourcePrefabConfig), systemConfigsReferences.AudioSourcePrefab);
_multipleConfigReferences.Add(typeof(Code.Infrastructure.SceneLoader.SceneInfoConfig), systemConfigsReferences.SceneInfo); _multipleConfigReferences.Add(typeof(Code.Infrastructure.SceneLoader.SceneInfoConfig), systemConfigsReferences.SceneInfo);
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioSourceSettingsConfig), systemConfigsReferences.AudioSourceSettings);
_singleConfigReferences.Add(typeof(Code.Infrastructure.Input.InputServiceConfig), systemConfigsReferences.InputService); _singleConfigReferences.Add(typeof(Code.Infrastructure.Input.InputServiceConfig), systemConfigsReferences.InputService);
_multipleConfigReferences.Add(typeof(Code.Calendar.Constants.ConstantImageConfig), systemConfigsReferences.ConstantImage); _singleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioSourcePrefabConfig), systemConfigsReferences.AudioSourcePrefab);
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Configs.LayerMasksConfigConfig), systemConfigsReferences.LayerMasksConfig);
//_singleConfigReferences.Add(typeof(ScenesAssetReferences), systemConfigsReferences.scenesAssetReferences); //_singleConfigReferences.Add(typeof(ScenesAssetReferences), systemConfigsReferences.scenesAssetReferences);
} }
@@ -1,14 +1,14 @@
#pragma warning disable CS0105 #pragma warning disable CS0105
using Code.Infrastructure.UI; using Code.Calendar.Constants;
using Code.Infrastructure.Configs;
using Code.Infrastructure.Audio; using Code.Infrastructure.Audio;
using Code.Infrastructure.UI; using Code.Infrastructure.UI;
using Code.Infrastructure.Audio; using Code.Infrastructure.UI;
using Code.Infrastructure.Audio;
using Code.Infrastructure.SceneLoader; using Code.Infrastructure.SceneLoader;
using Code.Infrastructure.Audio;
using Code.Infrastructure.Input; using Code.Infrastructure.Input;
using Code.Calendar.Constants; using Code.Infrastructure.Audio;
using Code.Infrastructure.Configs;
using UnityEngine.AddressableAssets; using UnityEngine.AddressableAssets;
#pragma warning restore CS0105 #pragma warning restore CS0105
@@ -16,15 +16,15 @@ using Code.Calendar.Constants;
namespace Code.Infrastructure.Configs{ namespace Code.Infrastructure.Configs{
public partial class SystemConfigsReferences public partial class SystemConfigsReferences
{ {
public AssetReference CanvasSettings; public string ConstantImage;
public string LayerMasksConfig;
public string AudioInfo; public string AudioInfo;
public AssetReference CanvasSettings;
public string UIPanelSettings; public string UIPanelSettings;
public string AudioSourceSettings;
public AssetReference AudioSourcePrefab;
public string SceneInfo; public string SceneInfo;
public string AudioSourceSettings;
public AssetReference InputService; public AssetReference InputService;
public string ConstantImage; public AssetReference AudioSourcePrefab;
public string LayerMasksConfig;
} }
} }
@@ -2,6 +2,7 @@
#pragma warning disable CS0105 #pragma warning disable CS0105
using UnityEngine.AddressableAssets; using UnityEngine.AddressableAssets;
using Code.Infrastructure.UI; using Code.Infrastructure.UI;
using System;
using UnityEngine; using UnityEngine;
using UnityEngine.AddressableAssets; using UnityEngine.AddressableAssets;
@@ -13,6 +14,7 @@ public class UIPanelSettingsConfig : ScriptableObject
{ {
public UnityEngine.AddressableAssets.AssetReference Prefab; public UnityEngine.AddressableAssets.AssetReference Prefab;
public Code.Infrastructure.UI.UIPanelType UIPanelType; public Code.Infrastructure.UI.UIPanelType UIPanelType;
public System.Boolean Multiple;
} }
} }