Merge remote-tracking branch 'origin/savya' into work_branch
# Conflicts: # Assets/Darkmatter/Content/Fonts/static/Fredoka-SemiBold SDF.asset
This commit is contained in:
@@ -11,4 +11,11 @@ public interface IDrawingCatalogController
|
||||
event Action ListChanged;
|
||||
UniTask InitializeAsync(CancellationToken ct);
|
||||
void OnTemplateSelected(string id);
|
||||
|
||||
/// <summary>
|
||||
/// Signalled by the view layer once the catalog has finished populating after a
|
||||
/// <see cref="ListChanged"/> refresh. Lets <see cref="InitializeAsync"/> keep the loading
|
||||
/// screen up until items are on screen, instead of revealing an empty catalog that fills in later.
|
||||
/// </summary>
|
||||
void NotifyPopulated();
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 89ff3ec1d970c4031b6e9f765b93c4e7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Darkmatter.Core.Contracts.Services.Analytics
|
||||
{
|
||||
public interface IAnalyticsService
|
||||
{
|
||||
void LogEvent(string name);
|
||||
void LogEvent(string name, string paramName, string paramValue);
|
||||
void LogEvent(string name, IReadOnlyDictionary<string, object> parameters);
|
||||
void SetUserProperty(string name, string value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a36684ef8a2124c469c6ac2c8c4fef2e
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a60852842d4a74363904d1aa6e2c8fb5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,4 @@
|
||||
namespace Darkmatter.Core.Data.Signals.Features.GameplayFlow
|
||||
{
|
||||
public record struct DrawingCompletedSignal(string TemplateId, int CompletionCount);
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4e2a47489fe7c4886993338327772aac
|
||||
@@ -151,7 +151,7 @@ namespace Darkmatter.Features.Artbook
|
||||
{
|
||||
if (!entry.HasValue || entry.Value.Thumbnail == null) return;
|
||||
var ct = _cts?.Token ?? CancellationToken.None;
|
||||
await _gallery.SaveImageAsync(entry.Value.Thumbnail, entry.Value.Id, ct);
|
||||
await _gallery.SaveImageAsync(entry.Value.Thumbnail, entry.Value.Name, ct);
|
||||
}
|
||||
|
||||
private void HandleLeftEditClicked() => OpenForEdit(GetLeftEntry());
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Darkmatter.Core.Contracts.Features.Capture;
|
||||
using Darkmatter.Core.Contracts.Features.DrawingCatalog;
|
||||
using Darkmatter.Core.Contracts.Features.GameplayFlow;
|
||||
using Darkmatter.Core.Contracts.Features.Progression;
|
||||
using Darkmatter.Core.Contracts.Services.Capture;
|
||||
using Darkmatter.Core.Contracts.Services.Gallery;
|
||||
using Darkmatter.Core.Data.Signals.Features.Capture;
|
||||
@@ -18,19 +19,25 @@ namespace Darkmatter.Features.Capture
|
||||
private readonly IGameplaySceneRefs _refs;
|
||||
private readonly IEventBus _bus;
|
||||
private readonly CaptureConfig _config;
|
||||
private readonly IProgressionSystem _progression;
|
||||
private readonly IDrawingTemplateCatalog _catalog;
|
||||
|
||||
public CaptureSystem(
|
||||
ICaptureService captureService,
|
||||
IGalleryService galleryService,
|
||||
IGameplaySceneRefs refs,
|
||||
IEventBus bus,
|
||||
CaptureConfig config)
|
||||
CaptureConfig config,
|
||||
IProgressionSystem progression,
|
||||
IDrawingTemplateCatalog catalog)
|
||||
{
|
||||
_captureService = captureService;
|
||||
_galleryService = galleryService;
|
||||
_refs = refs;
|
||||
_bus = bus;
|
||||
_config = config;
|
||||
_progression = progression;
|
||||
_catalog = catalog;
|
||||
}
|
||||
|
||||
public async UniTask<byte[]> CapturePngAsync(bool saveToGallery = false, CancellationToken ct = default)
|
||||
@@ -44,9 +51,9 @@ namespace Darkmatter.Features.Capture
|
||||
{
|
||||
if (tex.LoadImage(png))
|
||||
{
|
||||
var fileName = await BuildFileNameAsync();
|
||||
_bus.Publish(new GallerySaveStartedSignal());
|
||||
await _galleryService.SaveImageAsync(tex,
|
||||
$"colorbook_{DateTime.UtcNow:yyyyMMdd_HHmmss}.png", ct);
|
||||
await _galleryService.SaveImageAsync(tex, fileName, ct);
|
||||
success = true;
|
||||
}
|
||||
}
|
||||
@@ -57,5 +64,20 @@ namespace Darkmatter.Features.Capture
|
||||
}
|
||||
return png;
|
||||
}
|
||||
|
||||
private async UniTask<string> BuildFileNameAsync()
|
||||
{
|
||||
var id = _progression.LastOpenedTemplateId;
|
||||
if (string.IsNullOrEmpty(id)) return null;
|
||||
try
|
||||
{
|
||||
var template = await _catalog.LoadAsync(id);
|
||||
return template?.DisplayName;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,20 +55,20 @@ public class ColorbookFlowController : IAsyncStartable, IDisposable
|
||||
await _drawingCatalog.InitializeAsync(cancellation);
|
||||
if (!_navigatingToGameplay) _loadingScreen.Hide();
|
||||
|
||||
PrewarmRewardedAdAsync(_scopeCts.Token).Forget();
|
||||
PrewarmInterstitialAdAsync(_scopeCts.Token).Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid PrewarmRewardedAdAsync(CancellationToken ct)
|
||||
private async UniTaskVoid PrewarmInterstitialAdAsync(CancellationToken ct)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!_ads.IsInitialized) await _ads.InitializeAsync(ct);
|
||||
if (!_ads.IsReady(AdFormat.Rewarded)) await _ads.LoadAsync(AdFormat.Rewarded, ct);
|
||||
if (!_ads.IsReady(AdFormat.Interstitial)) await _ads.LoadAsync(AdFormat.Interstitial, ct);
|
||||
}
|
||||
catch (OperationCanceledException) { }
|
||||
catch (Exception ex)
|
||||
{
|
||||
UnityEngine.Debug.LogWarning($"[ColorbookFlow] Rewarded prewarm failed: {ex.Message}");
|
||||
UnityEngine.Debug.LogWarning($"[ColorbookFlow] Interstitial prewarm failed: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,36 +101,51 @@ public class ColorbookFlowController : IAsyncStartable, IDisposable
|
||||
_loadingScreen.Show();
|
||||
_loadingScreen.SetProgress(0f);
|
||||
|
||||
await ShowRewardedAdAsync(ct);
|
||||
// Fire the interstitial but never await it: the ad overlays the transition while the level
|
||||
// loads underneath, so a missed/dropped ad callback can't stall the flow at 0% anymore.
|
||||
ShowInterstitialAdAsync(ct).Forget();
|
||||
|
||||
var progress = new Progress<float>(p => _loadingScreen.SetProgress(p * 0.5f));
|
||||
var mappedProgress = new Progress<float>(p => _loadingScreen.SetProgress(0.5f + p * 0.25f));
|
||||
await _progression.SetLastOpenedAsync(templateId);
|
||||
await _scenes.LoadSceneAsync(nameof(GameScene.Gameplay), progress: progress, cancellationToken: default);
|
||||
await _scenes.UnloadSceneAsync(nameof(GameScene.Colorbook), progress: mappedProgress,
|
||||
cancellationToken: default);
|
||||
}
|
||||
|
||||
private async UniTask ShowRewardedAdAsync(CancellationToken ct)
|
||||
{
|
||||
const int InitTimeoutMs = 4000;
|
||||
try
|
||||
{
|
||||
if (!_ads.IsInitialized)
|
||||
var progress = new Progress<float>(p => _loadingScreen.SetProgress(p * 0.5f));
|
||||
var mappedProgress = new Progress<float>(p => _loadingScreen.SetProgress(0.5f + p * 0.25f));
|
||||
await _progression.SetLastOpenedAsync(templateId);
|
||||
await _scenes.LoadSceneAsync(nameof(GameScene.Gameplay), progress: progress, cancellationToken: default);
|
||||
await _scenes.UnloadSceneAsync(nameof(GameScene.Colorbook), progress: mappedProgress,
|
||||
cancellationToken: default);
|
||||
}
|
||||
catch (OperationCanceledException) { /* scope disposed */ }
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Navigation failed mid-flight: release the latch and drop the loading screen so the
|
||||
// user can retry instead of being stuck on a loader frozen at 0%.
|
||||
UnityEngine.Debug.LogException(ex);
|
||||
_navigatingToGameplay = false;
|
||||
_loadingScreen.Hide();
|
||||
}
|
||||
}
|
||||
|
||||
// Fire-and-forget interstitial. Shows only if one is already prewarmed; otherwise it kicks a
|
||||
// load for next time and returns immediately. Never blocks the level load — by design the
|
||||
// scene swap below does not depend on the ad's close callback, so the ad can never stall it.
|
||||
private async UniTaskVoid ShowInterstitialAdAsync(CancellationToken ct)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!_ads.IsInitialized) return;
|
||||
|
||||
if (!_ads.IsReady(AdFormat.Interstitial))
|
||||
{
|
||||
using var timeoutCts = CancellationTokenSource.CreateLinkedTokenSource(ct);
|
||||
timeoutCts.CancelAfter(InitTimeoutMs);
|
||||
await _ads.InitializeAsync(timeoutCts.Token);
|
||||
_ads.LoadAsync(AdFormat.Interstitial, ct).Forget();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_ads.IsReady(AdFormat.Rewarded)) return;
|
||||
|
||||
await _ads.ShowAsync(AdFormat.Rewarded, ct);
|
||||
await _ads.ShowAsync(AdFormat.Interstitial, ct);
|
||||
}
|
||||
catch (OperationCanceledException) { }
|
||||
catch (Exception ex)
|
||||
{
|
||||
UnityEngine.Debug.LogWarning($"[ColorbookFlow] Rewarded ad skipped: {ex.Message}");
|
||||
UnityEngine.Debug.LogWarning($"[ColorbookFlow] Interstitial skipped: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace Darkmatter.Features.Coloring.UI
|
||||
_canvasGroup.interactable = true;
|
||||
_canvasGroup.blocksRaycasts = true;
|
||||
|
||||
_activeSequence = Sequence.Create()
|
||||
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||
.Group(Tween.UIAnchoredPosition(animatedRoot, _shownAnchoredPos, showDuration, Ease.OutBack))
|
||||
.Group(Tween.Alpha(_canvasGroup, 1f, showDuration, Ease.OutQuad));
|
||||
return _activeSequence;
|
||||
@@ -62,7 +62,7 @@ namespace Darkmatter.Features.Coloring.UI
|
||||
_canvasGroup.blocksRaycasts = false;
|
||||
|
||||
var hiddenPos = _shownAnchoredPos + hiddenOffset;
|
||||
_activeSequence = Sequence.Create()
|
||||
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||
.Group(Tween.UIAnchoredPosition(animatedRoot, hiddenPos, hideDuration, Ease.InQuad))
|
||||
.Group(Tween.Alpha(_canvasGroup, 0f, hideDuration, Ease.InQuad))
|
||||
.ChainCallback(() => gameObject.SetActive(false));
|
||||
|
||||
@@ -2,12 +2,9 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Darkmatter.Core;
|
||||
using Darkmatter.Core.Contracts.Features.DrawingCatalog;
|
||||
using Darkmatter.Core.Contracts.Features.Progression;
|
||||
using Darkmatter.Core.Data.Signals.Features.Drawing;
|
||||
using Darkmatter.Libs.Observer;
|
||||
using ZLinq;
|
||||
|
||||
namespace Darkmatter.Features.DrawingCatalog.Systems;
|
||||
|
||||
@@ -15,28 +12,43 @@ public sealed class DrawingCatalogController : IDrawingCatalogController
|
||||
{
|
||||
private readonly IDrawingTemplateCatalog _catalog;
|
||||
private readonly IEventBus _bus;
|
||||
private readonly IProgressionSystem _progression;
|
||||
|
||||
private readonly List<string> _visible = new();
|
||||
public IReadOnlyList<string> VisibleIds => _visible;
|
||||
public event Action ListChanged;
|
||||
|
||||
private UniTaskCompletionSource _firstPopulate;
|
||||
|
||||
public DrawingCatalogController(
|
||||
IDrawingTemplateCatalog catalog,
|
||||
IProgressionSystem progression,
|
||||
IEventBus bus)
|
||||
{
|
||||
_catalog = catalog;
|
||||
_progression = progression;
|
||||
_bus = bus;
|
||||
}
|
||||
|
||||
public async UniTask InitializeAsync(CancellationToken ct)
|
||||
{
|
||||
await _catalog.FetchAsync();
|
||||
|
||||
// No view listening (e.g. catalog view unassigned) — nothing will populate, so don't wait.
|
||||
if (ListChanged == null)
|
||||
{
|
||||
Refresh();
|
||||
return;
|
||||
}
|
||||
|
||||
// Hold here until the presenter reports the catalog is on screen, so the caller can keep
|
||||
// the loading screen up across the (async) thumbnail load + button spawn instead of
|
||||
// revealing an empty catalog that fills in a few frames later.
|
||||
_firstPopulate = new UniTaskCompletionSource();
|
||||
Refresh();
|
||||
using (ct.Register(() => _firstPopulate.TrySetResult()))
|
||||
await _firstPopulate.Task;
|
||||
}
|
||||
|
||||
public void NotifyPopulated() => _firstPopulate?.TrySetResult();
|
||||
|
||||
public void OnTemplateSelected(string id)
|
||||
{
|
||||
_bus.Publish(new DrawingSelectedSignal(id));
|
||||
@@ -45,13 +57,8 @@ public sealed class DrawingCatalogController : IDrawingCatalogController
|
||||
private void Refresh()
|
||||
{
|
||||
_visible.Clear();
|
||||
var all = _catalog.AllTemplateIds;
|
||||
foreach (var id in all)
|
||||
if (!_progression.CompletedTemplateIds.AsValueEnumerable().Contains(id))
|
||||
_visible.Add(id);
|
||||
foreach (var id in all)
|
||||
if (_progression.CompletedTemplateIds.AsValueEnumerable().Contains(id))
|
||||
_visible.Add(id);
|
||||
_visible.AddRange(_catalog.AllTemplateIds);
|
||||
_visible.Sort(StringComparer.OrdinalIgnoreCase);
|
||||
ListChanged?.Invoke();
|
||||
}
|
||||
}
|
||||
@@ -120,6 +120,8 @@ namespace Darkmatter.Features.DrawingCatalog
|
||||
_view.SetItems(vms);
|
||||
_view.SetPagination(_currentPage, _totalPages);
|
||||
|
||||
// Unblock InitializeAsync: items are now on screen, so the loading screen can hide.
|
||||
_controller.NotifyPopulated();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
|
||||
@@ -14,6 +14,7 @@ using Darkmatter.Core.Contracts.Services.Scenes;
|
||||
using Darkmatter.Core.Data.Dynamic.Features.Progression;
|
||||
using Darkmatter.Core.Data.Signals.Features.Coloring;
|
||||
using Darkmatter.Core.Data.Signals.Features.Drawing;
|
||||
using Darkmatter.Core.Data.Signals.Features.GameplayFlow;
|
||||
using Darkmatter.Core.Data.Signals.Features.ShapeBuilder;
|
||||
using Darkmatter.Core.Enums.Features.Progression;
|
||||
using Darkmatter.Core.Enums.Services.Audio;
|
||||
@@ -78,6 +79,13 @@ namespace Darkmatter.Features.GameplayFlow.Systems
|
||||
_scopeCts = CancellationTokenSource.CreateLinkedTokenSource(cancellation);
|
||||
var ct = _scopeCts.Token;
|
||||
|
||||
// The in-editor AdMob placeholder interstitial pauses via Time.timeScale = 0 and is
|
||||
// shown fire-and-forget during the Colorbook->Gameplay swap; the Colorbook scene unload
|
||||
// destroys the placeholder before it can resume, stranding timeScale at 0 (gameplay and
|
||||
// scaled tweens frozen). Gameplay must never start frozen, so restore it on entry.
|
||||
// No-op on device, where the real ad clients don't touch timeScale.
|
||||
Time.timeScale = 1f;
|
||||
|
||||
_templateId = _progression.LastOpenedTemplateId;
|
||||
if (string.IsNullOrEmpty(_templateId))
|
||||
throw new Exception(
|
||||
@@ -134,6 +142,8 @@ namespace Darkmatter.Features.GameplayFlow.Systems
|
||||
_sfx.Play(SfxId.LevelComplete);
|
||||
await _coloring.PlayCompletionAnimationAsync(ct);
|
||||
_progression.MarkCompleted(_templateId);
|
||||
var progressAfter = _progression.GetProgress(_templateId);
|
||||
_bus.Publish(new DrawingCompletedSignal(_templateId, progressAfter?.completionCount ?? 1));
|
||||
|
||||
var nextId = _catalog.GetNextTemplate(_templateId);
|
||||
if (string.IsNullOrEmpty(nextId))
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace Darkmatter.Features.ShapeBuilder.Systems
|
||||
private GameObject _piecePrefab;
|
||||
private IDisposable _snappedSub;
|
||||
private IDisposable _unsnappedSub;
|
||||
private readonly CancellationTokenSource _lifetimeCts = new();
|
||||
|
||||
private readonly List<string> _snappedPieceIds = new();
|
||||
private readonly List<ShapePiece> _pieces = new();
|
||||
@@ -174,7 +175,32 @@ namespace Darkmatter.Features.ShapeBuilder.Systems
|
||||
private void CheckIfShapeAssembled()
|
||||
{
|
||||
if (_expected > 0 && _snapped == _expected)
|
||||
_bus.Publish(new ShapeAssembledSignal(_currentTemplateId));
|
||||
PublishAssembledWhenSettledAsync().Forget();
|
||||
}
|
||||
|
||||
private async UniTaskVoid PublishAssembledWhenSettledAsync()
|
||||
{
|
||||
var templateId = _currentTemplateId;
|
||||
try
|
||||
{
|
||||
// Hold the handoff to coloring until the final piece's snap
|
||||
// animation has finished playing.
|
||||
await UniTask.WaitWhile(AnyPieceSettling, cancellationToken: _lifetimeCts.Token);
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (templateId == _currentTemplateId)
|
||||
_bus.Publish(new ShapeAssembledSignal(templateId));
|
||||
}
|
||||
|
||||
private bool AnyPieceSettling()
|
||||
{
|
||||
foreach (var piece in _pieces)
|
||||
if (piece != null && piece.IsSnapSettling) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private async UniTask TryLoadPiecePrefabAsync(CancellationToken ct)
|
||||
@@ -241,6 +267,8 @@ namespace Darkmatter.Features.ShapeBuilder.Systems
|
||||
{
|
||||
_snappedSub?.Dispose();
|
||||
_unsnappedSub?.Dispose();
|
||||
_lifetimeCts.Cancel();
|
||||
_lifetimeCts.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
private CanvasGroup _canvasGroup;
|
||||
private Vector2 _shownAnchoredPos;
|
||||
private Sequence _activeSequence;
|
||||
private bool _initialized;
|
||||
public event Action OnArtbookClicked;
|
||||
|
||||
public RectTransform SpawnRoot => spawnRoot;
|
||||
@@ -26,10 +27,17 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
EnsureInitialized();
|
||||
}
|
||||
|
||||
private void EnsureInitialized()
|
||||
{
|
||||
if (_initialized) return;
|
||||
_canvasGroup = GetComponent<CanvasGroup>();
|
||||
if (animatedRoot == null) animatedRoot = (RectTransform)transform;
|
||||
_shownAnchoredPos = animatedRoot.anchoredPosition;
|
||||
artbookButton.onClick.AddListener(HandleArtbookClicked);
|
||||
_initialized = true;
|
||||
}
|
||||
|
||||
private void HandleArtbookClicked()
|
||||
@@ -39,12 +47,13 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
|
||||
public Sequence Show()
|
||||
{
|
||||
EnsureInitialized();
|
||||
KillActive();
|
||||
gameObject.SetActive(true);
|
||||
_canvasGroup.interactable = true;
|
||||
_canvasGroup.blocksRaycasts = true;
|
||||
|
||||
_activeSequence = Sequence.Create()
|
||||
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||
.Group(Tween.UIAnchoredPosition(animatedRoot, _shownAnchoredPos, showDuration, Ease.OutBack))
|
||||
.Group(Tween.Alpha(_canvasGroup, 1f, showDuration, Ease.OutQuad));
|
||||
return _activeSequence;
|
||||
@@ -52,12 +61,13 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
|
||||
public Sequence Hide()
|
||||
{
|
||||
EnsureInitialized();
|
||||
KillActive();
|
||||
_canvasGroup.interactable = false;
|
||||
_canvasGroup.blocksRaycasts = false;
|
||||
|
||||
var hiddenPos = _shownAnchoredPos + hiddenOffset;
|
||||
_activeSequence = Sequence.Create()
|
||||
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||
.Group(Tween.UIAnchoredPosition(animatedRoot, hiddenPos, hideDuration, Ease.InQuad))
|
||||
.Group(Tween.Alpha(_canvasGroup, 0f, hideDuration, Ease.InQuad))
|
||||
.ChainCallback(() => gameObject.SetActive(false));
|
||||
@@ -66,6 +76,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
|
||||
public void HideInstant()
|
||||
{
|
||||
EnsureInitialized();
|
||||
KillActive();
|
||||
animatedRoot.anchoredPosition = _shownAnchoredPos + hiddenOffset;
|
||||
_canvasGroup.alpha = 0f;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Darkmatter.Core.Contracts.Features.History;
|
||||
using Darkmatter.Core.Contracts.Services.Audio;
|
||||
using Darkmatter.Core.Data.Signals.Features.ShapeBuilder;
|
||||
@@ -45,6 +46,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
private Vector2 _dragSizeDelta;
|
||||
private Vector3 _dragLocalScale;
|
||||
private Sequence _previewSeq;
|
||||
private Sequence _snapSettle;
|
||||
private bool _locked;
|
||||
private bool _inPreview;
|
||||
|
||||
@@ -57,6 +59,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
public Vector2 TrayPosition => _trayPos;
|
||||
public Vector2 TraySize => _traySize;
|
||||
public SlotMarker ActiveSlot => _activeSlot;
|
||||
public bool IsSnapSettling => _snapSettle.isAlive;
|
||||
|
||||
public void ReassignActiveSlot(SlotMarker slot) => _activeSlot = slot;
|
||||
|
||||
@@ -236,12 +239,43 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
|
||||
internal void SnapInternal()
|
||||
{
|
||||
_locked = true;
|
||||
image.raycastTarget = false;
|
||||
if (_activeSlot != null) _activeSlot.SetOccupied(true);
|
||||
|
||||
_sfx.Play(SfxId.ShapeSnap);
|
||||
|
||||
// Let the in-flight settle animation play to completion before locking the
|
||||
// piece into its slot, so the final piece lands smoothly instead of being
|
||||
// cut short the instant it's dropped.
|
||||
if (_previewSeq.isAlive)
|
||||
{
|
||||
_snapSettle = _previewSeq;
|
||||
SettleThenFinalizeAsync().Forget();
|
||||
}
|
||||
else
|
||||
{
|
||||
FinalizeSnapPose();
|
||||
}
|
||||
|
||||
_bus.Publish(new PieceSnappedSignal(_shape.Id));
|
||||
}
|
||||
|
||||
private async UniTaskVoid SettleThenFinalizeAsync()
|
||||
{
|
||||
await _snapSettle; // completes when the settle finishes or is stopped
|
||||
FinalizeSnapPose();
|
||||
}
|
||||
|
||||
private void FinalizeSnapPose()
|
||||
{
|
||||
if (this == null || RectTransform == null) return;
|
||||
_snapSettle = default;
|
||||
// Bail if the piece was unsnapped (undo) or invalidated while settling.
|
||||
if (!_locked || _activeSlot == null) return;
|
||||
StopPreviewTweens();
|
||||
Lock();
|
||||
FillSlot();
|
||||
|
||||
_sfx.Play(SfxId.ShapeSnap);
|
||||
_bus.Publish(new PieceSnappedSignal(_shape.Id));
|
||||
}
|
||||
|
||||
private void FillSlot()
|
||||
@@ -267,6 +301,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
||||
_activeSlot = null;
|
||||
|
||||
Tween.StopAll(onTarget: RectTransform);
|
||||
_snapSettle = default;
|
||||
|
||||
RectTransform.SetParent(parent, worldPositionStays: false);
|
||||
if (siblingIndex >= 0) RectTransform.SetSiblingIndex(siblingIndex);
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
using System.IO;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Darkmatter.Libs.UnityUtils.Editor
|
||||
{
|
||||
public static class OpenEditorGalleryMenu
|
||||
{
|
||||
private const string MenuPath = "Tools/Colorbook/Open Editor Gallery";
|
||||
|
||||
[MenuItem(MenuPath)]
|
||||
private static void Open()
|
||||
{
|
||||
var dir = Path.Combine(Application.persistentDataPath, "Colorbook-Gallery");
|
||||
Directory.CreateDirectory(dir);
|
||||
EditorUtility.RevealInFinder(dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 55aad6d59cbf04999877c8c4b2f55836
|
||||
@@ -21,6 +21,10 @@ namespace Darkmatter.Services.Ads
|
||||
[SerializeField] private bool autoReload = true;
|
||||
[Tooltip("Seconds between auto-reload retries on failure.")]
|
||||
[SerializeField, Min(1f)] private float reloadDelaySeconds = 5f;
|
||||
[Tooltip("Max reload attempts before giving up.")]
|
||||
[SerializeField, Min(1)] private int reloadMaxAttempts = 6;
|
||||
[Tooltip("Hard fallback (seconds) to recover a full-screen show if AdMob never raises its close callback. Android focus-return recovery usually fires far sooner; this cap covers iOS/edge cases. Must exceed max plausible ad length so a real ad is never cut short.")]
|
||||
[SerializeField, Min(15f)] private float showWatchdogSeconds = 60f;
|
||||
|
||||
public bool IsInitialized => _initialized;
|
||||
public event Action<AdFormat, AdLoadState> LoadStateChanged;
|
||||
@@ -30,6 +34,13 @@ namespace Darkmatter.Services.Ads
|
||||
private bool _isChildDirected;
|
||||
private CancellationTokenSource _lifetimeCts;
|
||||
|
||||
// App interruption state, fed by the Unity lifecycle messages below. A full-screen ad
|
||||
// pushes the app into this state (Android raises focus-loss, iOS raises pause); the
|
||||
// watchdog uses the return-to-foreground transition to recover a missed close callback.
|
||||
private bool _appPaused;
|
||||
private bool _appUnfocused;
|
||||
private bool AppInterrupted => _appPaused || _appUnfocused;
|
||||
|
||||
private readonly Dictionary<AdFormat, AdLoadState> _states = new();
|
||||
|
||||
#if GOOGLE_MOBILE_ADS
|
||||
@@ -62,6 +73,11 @@ namespace Darkmatter.Services.Ads
|
||||
#endif
|
||||
}
|
||||
|
||||
// Android raises focus-loss for full-screen ads; iOS raises pause. Track both so the show
|
||||
// watchdog can detect the ad's return-to-foreground regardless of platform.
|
||||
private void OnApplicationPause(bool pauseStatus) => _appPaused = pauseStatus;
|
||||
private void OnApplicationFocus(bool hasFocus) => _appUnfocused = !hasFocus;
|
||||
|
||||
public async UniTask InitializeAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
if (_initialized) return;
|
||||
@@ -74,6 +90,13 @@ namespace Darkmatter.Services.Ads
|
||||
#if GOOGLE_MOBILE_ADS
|
||||
ApplyRequestConfiguration();
|
||||
|
||||
// AdMob raises ad callbacks (OnAdFullScreenContentClosed, etc.) on a background
|
||||
// thread by default. UniTask continuations then resume off the main thread, so the
|
||||
// scene load that runs after a rewarded ad closes calls SceneManager/Addressables
|
||||
// from a background thread and throws — leaving the loading screen stuck at 0%.
|
||||
// Force all ad events onto the Unity main thread.
|
||||
MobileAds.RaiseAdEventsOnUnityMainThread = true;
|
||||
|
||||
var tcs = new UniTaskCompletionSource<bool>();
|
||||
MobileAds.Initialize(_ => tcs.TrySetResult(true));
|
||||
|
||||
@@ -355,81 +378,116 @@ namespace Darkmatter.Services.Ads
|
||||
}
|
||||
}
|
||||
|
||||
private async UniTask<AdShowResult> ShowInterstitialAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var tcs = new UniTaskCompletionSource<AdShowResult>();
|
||||
Action onClosed = () => tcs.TrySetResult(AdShowResult.Success());
|
||||
Action<AdError> onFailed = err => tcs.TrySetResult(AdShowResult.Failure(err?.GetMessage()));
|
||||
|
||||
_interstitial.OnAdFullScreenContentClosed += onClosed;
|
||||
_interstitial.OnAdFullScreenContentFailed += onFailed;
|
||||
_interstitial.Show();
|
||||
|
||||
try
|
||||
{
|
||||
using (cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken)))
|
||||
return await tcs.Task;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (_interstitial != null)
|
||||
private UniTask<AdShowResult> ShowInterstitialAsync(CancellationToken cancellationToken) =>
|
||||
ShowFullScreenAsync(
|
||||
AdFormat.Interstitial,
|
||||
(c, f) =>
|
||||
{
|
||||
_interstitial.OnAdFullScreenContentClosed -= onClosed;
|
||||
_interstitial.OnAdFullScreenContentFailed -= onFailed;
|
||||
}
|
||||
ScheduleReload(AdFormat.Interstitial);
|
||||
}
|
||||
}
|
||||
_interstitial.OnAdFullScreenContentClosed += c;
|
||||
_interstitial.OnAdFullScreenContentFailed += f;
|
||||
},
|
||||
(c, f) =>
|
||||
{
|
||||
if (_interstitial == null) return;
|
||||
_interstitial.OnAdFullScreenContentClosed -= c;
|
||||
_interstitial.OnAdFullScreenContentFailed -= f;
|
||||
},
|
||||
() => AdShowResult.Success(),
|
||||
() => _interstitial.Show(),
|
||||
cancellationToken);
|
||||
|
||||
private async UniTask<AdShowResult> ShowRewardedAsync(CancellationToken cancellationToken)
|
||||
private UniTask<AdShowResult> ShowRewardedAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var tcs = new UniTaskCompletionSource<AdShowResult>();
|
||||
bool earned = false;
|
||||
AdReward reward = default;
|
||||
|
||||
Action onClosed = () => tcs.TrySetResult(earned ? AdShowResult.WithReward(reward) : AdShowResult.Success());
|
||||
Action<AdError> onFailed = err => tcs.TrySetResult(AdShowResult.Failure(err?.GetMessage()));
|
||||
|
||||
_rewarded.OnAdFullScreenContentClosed += onClosed;
|
||||
_rewarded.OnAdFullScreenContentFailed += onFailed;
|
||||
_rewarded.Show(r =>
|
||||
{
|
||||
earned = true;
|
||||
reward = new AdReward(r.Type, r.Amount);
|
||||
});
|
||||
|
||||
try
|
||||
{
|
||||
using (cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken)))
|
||||
return await tcs.Task;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (_rewarded != null)
|
||||
return ShowFullScreenAsync(
|
||||
AdFormat.Rewarded,
|
||||
(c, f) =>
|
||||
{
|
||||
_rewarded.OnAdFullScreenContentClosed -= onClosed;
|
||||
_rewarded.OnAdFullScreenContentFailed -= onFailed;
|
||||
}
|
||||
ScheduleReload(AdFormat.Rewarded);
|
||||
}
|
||||
_rewarded.OnAdFullScreenContentClosed += c;
|
||||
_rewarded.OnAdFullScreenContentFailed += f;
|
||||
},
|
||||
(c, f) =>
|
||||
{
|
||||
if (_rewarded == null) return;
|
||||
_rewarded.OnAdFullScreenContentClosed -= c;
|
||||
_rewarded.OnAdFullScreenContentFailed -= f;
|
||||
},
|
||||
() => earned ? AdShowResult.WithReward(reward) : AdShowResult.Success(),
|
||||
() => _rewarded.Show(r =>
|
||||
{
|
||||
earned = true;
|
||||
reward = new AdReward(r.Type, r.Amount);
|
||||
}),
|
||||
cancellationToken);
|
||||
}
|
||||
|
||||
private async UniTask<AdShowResult> ShowRewardedInterstitialAsync(CancellationToken cancellationToken)
|
||||
private UniTask<AdShowResult> ShowRewardedInterstitialAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var tcs = new UniTaskCompletionSource<AdShowResult>();
|
||||
bool earned = false;
|
||||
AdReward reward = default;
|
||||
return ShowFullScreenAsync(
|
||||
AdFormat.RewardedInterstitial,
|
||||
(c, f) =>
|
||||
{
|
||||
_rewardedInterstitial.OnAdFullScreenContentClosed += c;
|
||||
_rewardedInterstitial.OnAdFullScreenContentFailed += f;
|
||||
},
|
||||
(c, f) =>
|
||||
{
|
||||
if (_rewardedInterstitial == null) return;
|
||||
_rewardedInterstitial.OnAdFullScreenContentClosed -= c;
|
||||
_rewardedInterstitial.OnAdFullScreenContentFailed -= f;
|
||||
},
|
||||
() => earned ? AdShowResult.WithReward(reward) : AdShowResult.Success(),
|
||||
() => _rewardedInterstitial.Show(r =>
|
||||
{
|
||||
earned = true;
|
||||
reward = new AdReward(r.Type, r.Amount);
|
||||
}),
|
||||
cancellationToken);
|
||||
}
|
||||
|
||||
Action onClosed = () => tcs.TrySetResult(earned ? AdShowResult.WithReward(reward) : AdShowResult.Success());
|
||||
Action<AdError> onFailed = err => tcs.TrySetResult(AdShowResult.Failure(err?.GetMessage()));
|
||||
private UniTask<AdShowResult> ShowAppOpenAsync(CancellationToken cancellationToken) =>
|
||||
ShowFullScreenAsync(
|
||||
AdFormat.AppOpen,
|
||||
(c, f) =>
|
||||
{
|
||||
_appOpen.OnAdFullScreenContentClosed += c;
|
||||
_appOpen.OnAdFullScreenContentFailed += f;
|
||||
},
|
||||
(c, f) =>
|
||||
{
|
||||
if (_appOpen == null) return;
|
||||
_appOpen.OnAdFullScreenContentClosed -= c;
|
||||
_appOpen.OnAdFullScreenContentFailed -= f;
|
||||
},
|
||||
() => AdShowResult.Success(),
|
||||
() => _appOpen.Show(),
|
||||
cancellationToken);
|
||||
|
||||
_rewardedInterstitial.OnAdFullScreenContentClosed += onClosed;
|
||||
_rewardedInterstitial.OnAdFullScreenContentFailed += onFailed;
|
||||
_rewardedInterstitial.Show(r =>
|
||||
{
|
||||
earned = true;
|
||||
reward = new AdReward(r.Type, r.Amount);
|
||||
});
|
||||
// Shared full-screen show flow. AdMob can drop OnAdFullScreenContentClosed for a shown ad
|
||||
// (focus loss/regain mid-ad, reloaded-ad reuse on a 2nd show, SDK edge cases); without a
|
||||
// fallback the awaiting caller hangs forever and the post-ad scene load never runs (loading
|
||||
// bar frozen at 0%). WatchShowAsync force-resolves via idempotent TrySetResult if the real
|
||||
// close event never arrives. buildResult is reused so a granted reward survives recovery.
|
||||
private async UniTask<AdShowResult> ShowFullScreenAsync(
|
||||
AdFormat format,
|
||||
Action<Action, Action<AdError>> subscribe,
|
||||
Action<Action, Action<AdError>> unsubscribe,
|
||||
Func<AdShowResult> buildResult,
|
||||
Action show,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var tcs = new UniTaskCompletionSource<AdShowResult>();
|
||||
bool resolved = false;
|
||||
|
||||
Action onClosed = () => { resolved = true; tcs.TrySetResult(buildResult()); };
|
||||
Action<AdError> onFailed = err => { resolved = true; tcs.TrySetResult(AdShowResult.Failure(err?.GetMessage())); };
|
||||
|
||||
subscribe(onClosed, onFailed);
|
||||
show();
|
||||
WatchShowAsync(tcs, () => resolved, buildResult, cancellationToken).Forget();
|
||||
|
||||
try
|
||||
{
|
||||
@@ -438,39 +496,64 @@ namespace Darkmatter.Services.Ads
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (_rewardedInterstitial != null)
|
||||
{
|
||||
_rewardedInterstitial.OnAdFullScreenContentClosed -= onClosed;
|
||||
_rewardedInterstitial.OnAdFullScreenContentFailed -= onFailed;
|
||||
}
|
||||
ScheduleReload(AdFormat.RewardedInterstitial);
|
||||
resolved = true; // stop the watchdog within one poll
|
||||
unsubscribe(onClosed, onFailed);
|
||||
// The in-editor placeholder ad pauses via Time.timeScale = 0; if its resume is
|
||||
// dropped (e.g. the host scene unloads before its close fires) the game stays
|
||||
// frozen. The ad layer owns that pause, so never leave it stranded. No-op on
|
||||
// device, where real ad clients don't touch timeScale.
|
||||
Time.timeScale = 1f;
|
||||
ScheduleReload(format);
|
||||
}
|
||||
}
|
||||
|
||||
private async UniTask<AdShowResult> ShowAppOpenAsync(CancellationToken cancellationToken)
|
||||
// Recovers a full-screen show when AdMob never raises its close callback. Primary signal:
|
||||
// the ad interrupts the app (focus-loss on Android, pause on iOS) and then the app returns
|
||||
// to the foreground — independent of OnAdFullScreenContentOpened, which can also be dropped.
|
||||
// Fallback: a hard time cap for platforms/cases where neither lifecycle event fires.
|
||||
// Realtime delays so a paused game (timeScale = 0) can't freeze the watchdog.
|
||||
private async UniTaskVoid WatchShowAsync(
|
||||
UniTaskCompletionSource<AdShowResult> tcs,
|
||||
Func<bool> isResolved,
|
||||
Func<AdShowResult> buildResult,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var tcs = new UniTaskCompletionSource<AdShowResult>();
|
||||
Action onClosed = () => tcs.TrySetResult(AdShowResult.Success());
|
||||
Action<AdError> onFailed = err => tcs.TrySetResult(AdShowResult.Failure(err?.GetMessage()));
|
||||
|
||||
_appOpen.OnAdFullScreenContentClosed += onClosed;
|
||||
_appOpen.OnAdFullScreenContentFailed += onFailed;
|
||||
_appOpen.Show();
|
||||
const int PollMs = 250;
|
||||
const int ForegroundGraceMs = 750;
|
||||
bool sawInterrupted = false;
|
||||
float elapsed = 0f;
|
||||
|
||||
try
|
||||
{
|
||||
using (cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken)))
|
||||
return await tcs.Task;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (_appOpen != null)
|
||||
while (!cancellationToken.IsCancellationRequested && !isResolved())
|
||||
{
|
||||
_appOpen.OnAdFullScreenContentClosed -= onClosed;
|
||||
_appOpen.OnAdFullScreenContentFailed -= onFailed;
|
||||
await UniTask.Delay(PollMs, DelayType.Realtime, PlayerLoopTiming.Update, cancellationToken);
|
||||
if (isResolved()) return;
|
||||
elapsed += PollMs / 1000f;
|
||||
|
||||
if (AppInterrupted)
|
||||
{
|
||||
sawInterrupted = true; // ad took the foreground
|
||||
}
|
||||
else if (sawInterrupted)
|
||||
{
|
||||
// App returned to foreground after the ad held it => ad was dismissed but
|
||||
// the close callback was dropped. Brief grace for the real event, then force.
|
||||
await UniTask.Delay(ForegroundGraceMs, DelayType.Realtime, PlayerLoopTiming.Update, cancellationToken);
|
||||
if (!isResolved() && tcs.TrySetResult(buildResult()))
|
||||
Debug.LogWarning("[AdMobAdService] Close callback missed; recovered via foreground watchdog.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (elapsed >= showWatchdogSeconds)
|
||||
{
|
||||
if (!isResolved() && tcs.TrySetResult(buildResult()))
|
||||
Debug.LogWarning($"[AdMobAdService] Close callback missed; recovered via {showWatchdogSeconds:0}s watchdog cap.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
ScheduleReload(AdFormat.AppOpen);
|
||||
}
|
||||
catch (OperationCanceledException) { }
|
||||
}
|
||||
|
||||
private void WireFullScreenEvents(InterstitialAd ad, AdFormat format) =>
|
||||
@@ -495,8 +578,14 @@ namespace Darkmatter.Services.Ads
|
||||
{
|
||||
try
|
||||
{
|
||||
await UniTask.Delay(TimeSpan.FromSeconds(reloadDelaySeconds), cancellationToken: cancellationToken);
|
||||
await LoadAsync(format, cancellationToken);
|
||||
for (int attempt = 0; attempt < reloadMaxAttempts; attempt++)
|
||||
{
|
||||
await UniTask.Delay(TimeSpan.FromSeconds(reloadDelaySeconds), cancellationToken: cancellationToken);
|
||||
if (cancellationToken.IsCancellationRequested) return;
|
||||
if (IsReady(format)) return;
|
||||
if (await LoadAsync(format, cancellationToken)) return;
|
||||
}
|
||||
Debug.LogWarning($"[AdMobAdService] {format} reload gave up after {reloadMaxAttempts} attempts.");
|
||||
}
|
||||
catch (OperationCanceledException) { }
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Darkmatter.Core.Contracts.Services.Analytics;
|
||||
using Darkmatter.Libs.Installers;
|
||||
using UnityEngine;
|
||||
using VContainer;
|
||||
@@ -9,9 +10,8 @@ namespace Darkmatter.Services.Analytics
|
||||
{
|
||||
public void Register(IContainerBuilder builder)
|
||||
{
|
||||
#if FIREBASE_ANALYTICS_PRESENT
|
||||
builder.RegisterEntryPoint<FirebaseAnalyticsSystem>();
|
||||
#endif
|
||||
builder.RegisterEntryPoint<FirebaseAnalyticsSystem>().As<IAnalyticsService>();
|
||||
builder.RegisterEntryPoint<AnalyticsTracker>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,9 @@
|
||||
"GUID:f51ebe6a0ceec4240a699833d6309b23",
|
||||
"GUID:b0214a6008ed146ff8f122a6a9c2f6cc",
|
||||
"GUID:f8c64bb88d959406689053ae3f31183d",
|
||||
"GUID:a0b1547602fc44f6da0a5e755ab3a7ef"
|
||||
"GUID:a0b1547602fc44f6da0a5e755ab3a7ef",
|
||||
"GUID:6a0a834eb41764f12ba55c3fb04a40cb",
|
||||
"GUID:b4c9f7fbf1e144933a1797dc208ece5f"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Darkmatter.Core;
|
||||
using Darkmatter.Core.Contracts.Services.Analytics;
|
||||
using Darkmatter.Core.Data.Signals.Features.AppBoot;
|
||||
using Darkmatter.Core.Data.Signals.Features.Capture;
|
||||
using Darkmatter.Core.Data.Signals.Features.Drawing;
|
||||
using Darkmatter.Core.Data.Signals.Features.GameplayFlow;
|
||||
using Darkmatter.Core.Data.Signals.Features.MainMenu;
|
||||
using Darkmatter.Core.Data.Signals.Features.ShapeBuilder;
|
||||
using Darkmatter.Libs.Observer;
|
||||
using VContainer.Unity;
|
||||
|
||||
namespace Darkmatter.Services.Analytics
|
||||
{
|
||||
public sealed class AnalyticsTracker : IStartable, IDisposable
|
||||
{
|
||||
private readonly IEventBus _bus;
|
||||
private readonly IAnalyticsService _analytics;
|
||||
private readonly List<IDisposable> _subs = new();
|
||||
|
||||
public AnalyticsTracker(IEventBus bus, IAnalyticsService analytics)
|
||||
{
|
||||
_bus = bus;
|
||||
_analytics = analytics;
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
_subs.Add(_bus.Subscribe<IntroCompletedSignal>(_ => _analytics.LogEvent("intro_completed")));
|
||||
_subs.Add(_bus.Subscribe<PlayBtnClickedSignal>(_ => _analytics.LogEvent("play_clicked")));
|
||||
_subs.Add(_bus.Subscribe<OpenColorBookSignal>(_ => _analytics.LogEvent("colorbook_opened")));
|
||||
_subs.Add(_bus.Subscribe<OpenArtBookSignal>(_ => _analytics.LogEvent("artbook_opened")));
|
||||
_subs.Add(_bus.Subscribe<ReturnToMainMenuSignal>(_ => _analytics.LogEvent("main_menu_returned")));
|
||||
|
||||
_subs.Add(_bus.Subscribe<DrawingSelectedSignal>(s =>
|
||||
_analytics.LogEvent("drawing_selected", "template_id", s.TemplateId)));
|
||||
|
||||
_subs.Add(_bus.Subscribe<ShapeBuilderStartedSignal>(s =>
|
||||
_analytics.LogEvent("shape_builder_started", "template_id", s.TemplateId)));
|
||||
|
||||
_subs.Add(_bus.Subscribe<ShapeAssembledSignal>(s =>
|
||||
_analytics.LogEvent("shape_assembled", "template_id", s.TemplateId)));
|
||||
|
||||
_subs.Add(_bus.Subscribe<DrawingCompletedSignal>(s => _analytics.LogEvent("drawing_completed",
|
||||
new Dictionary<string, object>
|
||||
{
|
||||
["template_id"] = s.TemplateId,
|
||||
["completion_count"] = s.CompletionCount,
|
||||
})));
|
||||
|
||||
_subs.Add(_bus.Subscribe<GallerySaveStartedSignal>(_ => _analytics.LogEvent("gallery_save_started")));
|
||||
_subs.Add(_bus.Subscribe<GallerySaveCompletedSignal>(s =>
|
||||
_analytics.LogEvent("gallery_save_completed", "success", s.Success ? "true" : "false")));
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (var s in _subs) s?.Dispose();
|
||||
_subs.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ad16bfd960ac4a7391ffffcc6e7bd59
|
||||
@@ -1,46 +1,100 @@
|
||||
#if FIREBASE_ANALYTICS
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Darkmatter.Core.Contracts.Services.Analytics;
|
||||
using Firebase;
|
||||
using Firebase.Analytics;
|
||||
using Firebase.Crashlytics;
|
||||
using UnityEngine;
|
||||
using VContainer.Unity;
|
||||
|
||||
namespace Darkmatter.Services.Analytics
|
||||
{
|
||||
public class FirebaseAnalyticsSystem : IAsyncStartable
|
||||
public class FirebaseAnalyticsSystem : IAnalyticsService, IAsyncStartable
|
||||
{
|
||||
public async UniTask StartAsync(CancellationToken cancellation = new CancellationToken())
|
||||
{
|
||||
#if !UNITY_EDITOR
|
||||
await Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
|
||||
{
|
||||
var dependencyStatus = task.Result;
|
||||
if (dependencyStatus == Firebase.DependencyStatus.Available)
|
||||
{
|
||||
// Create and hold a reference to your FirebaseApp,
|
||||
// where app is a Firebase.FirebaseApp property of your application class.
|
||||
// Crashlytics will use the DefaultInstance, as well;
|
||||
// this ensures that Crashlytics is initialized.
|
||||
Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
|
||||
#if DEVELOPMENT_BUILD
|
||||
Firebase.Crashlytics.Crashlytics.SetCustomKey("environment", "dev");
|
||||
#else
|
||||
Firebase.Crashlytics.Crashlytics.SetCustomKey("environment", "prod");
|
||||
#endif
|
||||
// When this property is set to true, Crashlytics will report all
|
||||
// uncaught exceptions as fatal events. This is the recommended behavior.
|
||||
Crashlytics.ReportUncaughtExceptionsAsFatal = true;
|
||||
private bool _ready;
|
||||
private bool _failed;
|
||||
private readonly Queue<Action> _pending = new();
|
||||
|
||||
// Set a flag here for indicating that your project is ready to use Firebase.
|
||||
}
|
||||
else
|
||||
{
|
||||
UnityEngine.Debug.LogError(System.String.Format(
|
||||
"Could not resolve all Firebase dependencies: {0}", dependencyStatus));
|
||||
// Firebase Unity SDK is not safe to use here.
|
||||
}
|
||||
}, cancellation);
|
||||
public async UniTask StartAsync(CancellationToken cancellation = default)
|
||||
{
|
||||
DependencyStatus status;
|
||||
try
|
||||
{
|
||||
status = await FirebaseApp.CheckAndFixDependenciesAsync().AsUniTask();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"[FirebaseAnalytics] Init failed: {e}");
|
||||
_failed = true;
|
||||
_pending.Clear();
|
||||
return;
|
||||
}
|
||||
|
||||
if (status != DependencyStatus.Available)
|
||||
{
|
||||
Debug.LogError($"[FirebaseAnalytics] Deps unavailable: {status}");
|
||||
_failed = true;
|
||||
_pending.Clear();
|
||||
return;
|
||||
}
|
||||
|
||||
_ = FirebaseApp.DefaultInstance;
|
||||
#if DEVELOPMENT_BUILD
|
||||
Crashlytics.SetCustomKey("environment", "dev");
|
||||
#else
|
||||
Crashlytics.SetCustomKey("environment", "prod");
|
||||
#endif
|
||||
Crashlytics.ReportUncaughtExceptionsAsFatal = true;
|
||||
|
||||
_ready = true;
|
||||
while (_pending.Count > 0)
|
||||
{
|
||||
try { _pending.Dequeue().Invoke(); }
|
||||
catch (Exception e) { Debug.LogError($"[FirebaseAnalytics] Queued event failed: {e}"); }
|
||||
}
|
||||
}
|
||||
|
||||
public void LogEvent(string name) =>
|
||||
Run(() => FirebaseAnalytics.LogEvent(name));
|
||||
|
||||
public void LogEvent(string name, string paramName, string paramValue) =>
|
||||
Run(() => FirebaseAnalytics.LogEvent(name, paramName, paramValue ?? string.Empty));
|
||||
|
||||
public void LogEvent(string name, IReadOnlyDictionary<string, object> parameters)
|
||||
{
|
||||
if (parameters == null || parameters.Count == 0)
|
||||
{
|
||||
LogEvent(name);
|
||||
return;
|
||||
}
|
||||
|
||||
var arr = new Parameter[parameters.Count];
|
||||
int i = 0;
|
||||
foreach (var kv in parameters) arr[i++] = ToParameter(kv.Key, kv.Value);
|
||||
Run(() => FirebaseAnalytics.LogEvent(name, arr));
|
||||
}
|
||||
|
||||
public void SetUserProperty(string name, string value) =>
|
||||
Run(() => FirebaseAnalytics.SetUserProperty(name, value ?? string.Empty));
|
||||
|
||||
private void Run(Action action)
|
||||
{
|
||||
if (_failed) return;
|
||||
if (_ready) { try { action(); } catch (Exception e) { Debug.LogError($"[FirebaseAnalytics] Event failed: {e}"); } }
|
||||
else _pending.Enqueue(action);
|
||||
}
|
||||
|
||||
private static Parameter ToParameter(string key, object value) => value switch
|
||||
{
|
||||
null => new Parameter(key, string.Empty),
|
||||
long l => new Parameter(key, l),
|
||||
int i => new Parameter(key, i),
|
||||
double d => new Parameter(key, d),
|
||||
float f => new Parameter(key, (double)f),
|
||||
bool b => new Parameter(key, b ? 1L : 0L),
|
||||
_ => new Parameter(key, value.ToString())
|
||||
};
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -26,9 +26,6 @@ namespace Darkmatter.Services.Capture
|
||||
int sw = Screen.width;
|
||||
int sh = Screen.height;
|
||||
|
||||
var disabledCanvases = DisableOtherRootCanvases(paperCanvas);
|
||||
var disabledGraphics = HideNonPaperGraphics(paperRT);
|
||||
|
||||
Rect crop = ComputeCropRect(captureObject, sw, sh);
|
||||
int cropW = Mathf.Max(1, (int)crop.width);
|
||||
int cropH = Mathf.Max(1, (int)crop.height);
|
||||
@@ -36,22 +33,31 @@ namespace Darkmatter.Services.Capture
|
||||
var prevFlags = cam.clearFlags;
|
||||
var prevBg = cam.backgroundColor;
|
||||
var prevTarget = cam.targetTexture;
|
||||
cam.clearFlags = CameraClearFlags.SolidColor;
|
||||
cam.backgroundColor = new Color(0f, 0f, 0f, 0f);
|
||||
|
||||
var rt = RenderTexture.GetTemporary(sw, sh, 24, RenderTextureFormat.ARGB32);
|
||||
cam.targetTexture = rt;
|
||||
|
||||
var prevMode = paperCanvas.renderMode;
|
||||
var prevWorldCam = paperCanvas.worldCamera;
|
||||
var prevPlaneDist = paperCanvas.planeDistance;
|
||||
paperCanvas.renderMode = RenderMode.ScreenSpaceCamera;
|
||||
paperCanvas.worldCamera = cam;
|
||||
paperCanvas.planeDistance = Mathf.Max(0.5f, (cam.nearClipPlane + cam.farClipPlane) * 0.5f);
|
||||
|
||||
List<Canvas> disabledCanvases = null;
|
||||
List<UnityEngine.UI.Graphic> disabledGraphics = null;
|
||||
|
||||
try
|
||||
{
|
||||
await UniTask.WaitForEndOfFrame(cancellationToken);
|
||||
|
||||
disabledCanvases = DisableOtherRootCanvases(paperCanvas);
|
||||
disabledGraphics = HideNonPaperGraphics(paperRT);
|
||||
HideBackdropGraphics(paperRT, disabledGraphics);
|
||||
|
||||
cam.clearFlags = CameraClearFlags.SolidColor;
|
||||
cam.backgroundColor = new Color(0f, 0f, 0f, 0f);
|
||||
cam.targetTexture = rt;
|
||||
|
||||
paperCanvas.renderMode = RenderMode.ScreenSpaceCamera;
|
||||
paperCanvas.worldCamera = cam;
|
||||
paperCanvas.planeDistance = Mathf.Max(0.5f, (cam.nearClipPlane + cam.farClipPlane) * 0.5f);
|
||||
|
||||
Canvas.ForceUpdateCanvases();
|
||||
cam.Render();
|
||||
|
||||
@@ -104,12 +110,14 @@ namespace Darkmatter.Services.Capture
|
||||
cam.clearFlags = prevFlags;
|
||||
cam.backgroundColor = prevBg;
|
||||
RenderTexture.ReleaseTemporary(rt);
|
||||
foreach (var g in disabledGraphics)
|
||||
if (g != null)
|
||||
g.enabled = true;
|
||||
foreach (var c in disabledCanvases)
|
||||
if (c != null)
|
||||
c.enabled = true;
|
||||
if (disabledGraphics != null)
|
||||
foreach (var g in disabledGraphics)
|
||||
if (g != null)
|
||||
g.enabled = true;
|
||||
if (disabledCanvases != null)
|
||||
foreach (var c in disabledCanvases)
|
||||
if (c != null)
|
||||
c.enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,6 +158,29 @@ namespace Darkmatter.Services.Capture
|
||||
return disabled;
|
||||
}
|
||||
|
||||
private static void HideBackdropGraphics(Transform paper, List<UnityEngine.UI.Graphic> disabled)
|
||||
{
|
||||
if (paper == null) return;
|
||||
|
||||
// Paper root's own graphics (the paper panel itself).
|
||||
foreach (var g in paper.GetComponents<UnityEngine.UI.Graphic>())
|
||||
{
|
||||
if (g == null || !g.enabled) continue;
|
||||
g.enabled = false;
|
||||
disabled.Add(g);
|
||||
}
|
||||
|
||||
// Solid-fill backdrops baked into the drawing: Images with no sprite render as a
|
||||
// plain colored box. Colorable regions always carry a sprite (alpha hit-testing),
|
||||
// so a null sprite means a backdrop, never art.
|
||||
foreach (var img in paper.GetComponentsInChildren<UnityEngine.UI.Image>(includeInactive: false))
|
||||
{
|
||||
if (img == null || !img.enabled || img.sprite != null) continue;
|
||||
img.enabled = false;
|
||||
disabled.Add(img);
|
||||
}
|
||||
}
|
||||
|
||||
private static Rect ComputeCropRect(GameObject target, int screenW, int screenH)
|
||||
{
|
||||
if (target == null || target.transform is not RectTransform rt)
|
||||
@@ -166,10 +197,12 @@ namespace Darkmatter.Services.Capture
|
||||
|
||||
private static Texture2D Resize(Texture2D src, int width, int height)
|
||||
{
|
||||
var rt = RenderTexture.GetTemporary(width, height);
|
||||
var rt = RenderTexture.GetTemporary(width, height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
|
||||
var prev = RenderTexture.active;
|
||||
try
|
||||
{
|
||||
RenderTexture.active = rt;
|
||||
GL.Clear(false, true, new Color(0f, 0f, 0f, 0f));
|
||||
Graphics.Blit(src, rt);
|
||||
RenderTexture.active = rt;
|
||||
var dst = new Texture2D(width, height, TextureFormat.RGBA32, mipChain: false);
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Darkmatter.Services.Gallery
|
||||
{
|
||||
[Serializable]
|
||||
public struct GalleryConfig
|
||||
{
|
||||
public Texture2D Background { get; }
|
||||
|
||||
public GalleryConfig(Texture2D background)
|
||||
{
|
||||
Background = background;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf2070de4e452444fa248a03c10928a6
|
||||
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Darkmatter.Core.Contracts.Services.Gallery;
|
||||
@@ -8,36 +10,123 @@ namespace Darkmatter.Services.Gallery
|
||||
{
|
||||
public class GalleryService : IGalleryService
|
||||
{
|
||||
private readonly GalleryConfig _config;
|
||||
|
||||
public GalleryService(GalleryConfig config) => _config = config;
|
||||
|
||||
public async UniTask SaveImageAsync(Texture2D image, string fileName, CancellationToken cancellationToken)
|
||||
{
|
||||
var permission = await NativeGallery.RequestPermissionAsync(NativeGallery.PermissionType.Write,
|
||||
NativeGallery.MediaType.Image);
|
||||
|
||||
if (permission != NativeGallery.Permission.Granted)
|
||||
Texture2D composited = null;
|
||||
Texture2D toSave = image;
|
||||
if (_config.Background != null)
|
||||
{
|
||||
return;
|
||||
composited = CompositeOverBackground(image, _config.Background);
|
||||
toSave = composited;
|
||||
}
|
||||
|
||||
var tcs = new UniTaskCompletionSource();
|
||||
var registration = cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken));
|
||||
var resolvedName = BuildUniqueFileName(fileName);
|
||||
|
||||
NativeGallery.SaveImageToGallery(image, "Colorbook",
|
||||
filename: $"colorbook_{DateTime.UtcNow:yyyyMMdd_HHmmss}.png", callback: (success, path) =>
|
||||
try
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
var bytes = toSave.EncodeToPNG();
|
||||
var dir = Path.Combine(Application.persistentDataPath, "Colorbook-Gallery");
|
||||
Directory.CreateDirectory(dir);
|
||||
var path = Path.Combine(dir, resolvedName);
|
||||
await File.WriteAllBytesAsync(path, bytes, cancellationToken);
|
||||
Debug.Log($"[GalleryService] (Editor) Image saved to: {path}");
|
||||
#else
|
||||
var permission = await NativeGallery.RequestPermissionAsync(NativeGallery.PermissionType.Write,
|
||||
NativeGallery.MediaType.Image);
|
||||
|
||||
if (permission != NativeGallery.Permission.Granted)
|
||||
{
|
||||
registration.Dispose();
|
||||
if (!success)
|
||||
{
|
||||
Debug.LogError("Failed to save image to gallery.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"Image saved to gallery at: {path}");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
tcs.TrySetResult();
|
||||
});
|
||||
var tcs = new UniTaskCompletionSource();
|
||||
var registration = cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken));
|
||||
|
||||
await tcs.Task;
|
||||
NativeGallery.SaveImageToGallery(toSave, "Colorbook",
|
||||
filename: resolvedName, callback: (success, path) =>
|
||||
{
|
||||
registration.Dispose();
|
||||
if (!success)
|
||||
{
|
||||
Debug.LogError("Failed to save image to gallery.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"Image saved to gallery at: {path}");
|
||||
}
|
||||
|
||||
tcs.TrySetResult();
|
||||
});
|
||||
|
||||
await tcs.Task;
|
||||
#endif
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (composited != null) UnityEngine.Object.Destroy(composited);
|
||||
}
|
||||
}
|
||||
|
||||
private static string BuildUniqueFileName(string baseName)
|
||||
{
|
||||
var prefix = Sanitize(baseName);
|
||||
if (string.IsNullOrEmpty(prefix)) prefix = "drawing";
|
||||
return $"{prefix}_{DateTime.UtcNow:yyyyMMdd_HHmmssfff}.png";
|
||||
}
|
||||
|
||||
private static string Sanitize(string s)
|
||||
{
|
||||
if (string.IsNullOrEmpty(s)) return null;
|
||||
var name = Path.GetFileNameWithoutExtension(s).Trim();
|
||||
var sb = new StringBuilder(name.Length);
|
||||
foreach (var c in name)
|
||||
{
|
||||
if (char.IsLetterOrDigit(c)) sb.Append(c);
|
||||
else if (c == ' ' || c == '-' || c == '_') sb.Append('_');
|
||||
}
|
||||
return sb.Length == 0 ? null : sb.ToString();
|
||||
}
|
||||
|
||||
private static Texture2D CompositeOverBackground(Texture2D captured, Texture2D background)
|
||||
{
|
||||
int bgW = background.width;
|
||||
int bgH = background.height;
|
||||
int cW = captured.width;
|
||||
int cH = captured.height;
|
||||
|
||||
float fit = Mathf.Min(1f, Mathf.Min((float)bgW / cW, (float)bgH / cH));
|
||||
int finalW = Mathf.Max(1, Mathf.RoundToInt(cW * fit));
|
||||
int finalH = Mathf.Max(1, Mathf.RoundToInt(cH * fit));
|
||||
int offsetX = (bgW - finalW) / 2;
|
||||
int offsetY = (bgH - finalH) / 2;
|
||||
|
||||
var rt = RenderTexture.GetTemporary(bgW, bgH, 0, RenderTextureFormat.ARGB32);
|
||||
var prev = RenderTexture.active;
|
||||
try
|
||||
{
|
||||
Graphics.Blit(background, rt);
|
||||
|
||||
RenderTexture.active = rt;
|
||||
GL.PushMatrix();
|
||||
GL.LoadPixelMatrix(0, bgW, bgH, 0);
|
||||
Graphics.DrawTexture(new Rect(offsetX, offsetY, finalW, finalH), captured);
|
||||
GL.PopMatrix();
|
||||
|
||||
var output = new Texture2D(bgW, bgH, TextureFormat.RGBA32, mipChain: false);
|
||||
output.ReadPixels(new Rect(0, 0, bgW, bgH), 0, 0);
|
||||
output.Apply();
|
||||
return output;
|
||||
}
|
||||
finally
|
||||
{
|
||||
RenderTexture.active = prev;
|
||||
RenderTexture.ReleaseTemporary(rt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,11 @@ namespace Darkmatter.Services.Gallery
|
||||
{
|
||||
public class GalleryModule : MonoBehaviour,IModule
|
||||
{
|
||||
[SerializeField] private Texture2D saveBackground;
|
||||
|
||||
public void Register(IContainerBuilder builder)
|
||||
{
|
||||
builder.RegisterInstance(new GalleryConfig(saveBackground));
|
||||
builder.Register<IGalleryService,GalleryService>(Lifetime.Singleton);
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Assets/Darkmatter/Content/.DS_Store
vendored
BIN
Assets/Darkmatter/Content/.DS_Store
vendored
Binary file not shown.
BIN
Assets/Darkmatter/Content/Colorbook UI/.DS_Store
vendored
BIN
Assets/Darkmatter/Content/Colorbook UI/.DS_Store
vendored
Binary file not shown.
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
@@ -132,6 +132,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
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:
|
||||
|
||||
BIN
Assets/Darkmatter/Content/Colorbook UI/MainmenuUI/.DS_Store
vendored
Normal file
BIN
Assets/Darkmatter/Content/Colorbook UI/MainmenuUI/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -1,5 +1,365 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2062124670924785838
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4283726034190383322}
|
||||
- component: {fileID: 3056456366338868420}
|
||||
- component: {fileID: 4472768584405535780}
|
||||
- component: {fileID: 1416192098695008161}
|
||||
m_Layer: 5
|
||||
m_Name: Ball 1 (4)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4283726034190383322
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2062124670924785838}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2.1480439, y: 2.1480439, z: 2.1480439}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7007843749351456914}
|
||||
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: 120, y: -63}
|
||||
m_SizeDelta: {x: 206, y: 160}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3056456366338868420
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2062124670924785838}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4472768584405535780
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2062124670924785838}
|
||||
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: 782004218, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &1416192098695008161
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2062124670924785838}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7667901d8aea645d28b5125a2ed546ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.UI.ColorRegionView
|
||||
<RegionId>k__BackingField: Ball_1__4
|
||||
alphaHitThreshold: 0.5
|
||||
--- !u!1 &2663532141933448284
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4210266305818195301}
|
||||
- component: {fileID: 7084174367121215159}
|
||||
- component: {fileID: 8358247987306301573}
|
||||
- component: {fileID: 6264073236045925559}
|
||||
m_Layer: 5
|
||||
m_Name: Ball 1 (1)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4210266305818195301
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2663532141933448284}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2.1323996, y: 2.1323996, z: 2.1323996}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7007843749351456914}
|
||||
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: -3.5, y: 230.6}
|
||||
m_SizeDelta: {x: 137, y: 172}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7084174367121215159
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2663532141933448284}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8358247987306301573
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2663532141933448284}
|
||||
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: 1412510325, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &6264073236045925559
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2663532141933448284}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7667901d8aea645d28b5125a2ed546ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.UI.ColorRegionView
|
||||
<RegionId>k__BackingField: Ball_1__1
|
||||
alphaHitThreshold: 0.5
|
||||
--- !u!1 &4186490129534872750
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1742841937534081069}
|
||||
- component: {fileID: 7747220707014727277}
|
||||
- component: {fileID: 6407676600503113451}
|
||||
- component: {fileID: 5667220506450607617}
|
||||
m_Layer: 5
|
||||
m_Name: Ball 1 (3)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1742841937534081069
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4186490129534872750}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1.6899254, y: 1.6899254, z: 1.6899254}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7007843749351456914}
|
||||
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: 132.1, y: 128.1}
|
||||
m_SizeDelta: {x: 206, y: 160}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7747220707014727277
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4186490129534872750}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6407676600503113451
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4186490129534872750}
|
||||
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: 571736697, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &5667220506450607617
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4186490129534872750}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7667901d8aea645d28b5125a2ed546ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.UI.ColorRegionView
|
||||
<RegionId>k__BackingField: Ball_1__3
|
||||
alphaHitThreshold: 0.5
|
||||
--- !u!1 &5614629943100357722
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3374156459420035152}
|
||||
- component: {fileID: 2903961533720080030}
|
||||
- component: {fileID: 4568126265006522806}
|
||||
- component: {fileID: 6761780684725240527}
|
||||
m_Layer: 5
|
||||
m_Name: Ball 1 (5)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3374156459420035152
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5614629943100357722}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2.1748946, y: 2.1748946, z: 2.1748946}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7007843749351456914}
|
||||
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: 9, y: -122}
|
||||
m_SizeDelta: {x: 206, y: 160}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2903961533720080030
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5614629943100357722}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4568126265006522806
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5614629943100357722}
|
||||
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: -1754592932, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &6761780684725240527
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5614629943100357722}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7667901d8aea645d28b5125a2ed546ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.UI.ColorRegionView
|
||||
<RegionId>k__BackingField: Ball_1__5
|
||||
alphaHitThreshold: 0.5
|
||||
--- !u!1 &5759944736263568396
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -65,9 +425,9 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: c79f0374ffc23654fa0c341985d7e249, type: 3}
|
||||
m_Sprite: {fileID: -1097588712, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
@@ -101,10 +461,16 @@ RectTransform:
|
||||
m_GameObject: {fileID: 6799536857748686187}
|
||||
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_LocalScale: {x: 2, y: 2, z: 2}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 5748400911909999140}
|
||||
- {fileID: 4210266305818195301}
|
||||
- {fileID: 6461212560377117779}
|
||||
- {fileID: 1742841937534081069}
|
||||
- {fileID: 4283726034190383322}
|
||||
- {fileID: 3374156459420035152}
|
||||
- {fileID: 1499171455522489850}
|
||||
- {fileID: 7953757931564007192}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -121,6 +487,186 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6799536857748686187}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &7016617008046089574
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6461212560377117779}
|
||||
- component: {fileID: 6210273296947215134}
|
||||
- component: {fileID: 8156181875320917282}
|
||||
- component: {fileID: 7344593257758016015}
|
||||
m_Layer: 5
|
||||
m_Name: Ball 1 (2)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6461212560377117779
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7016617008046089574}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1.2475, y: 1.2475, z: 1.2475}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7007843749351456914}
|
||||
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: -82.1, y: 103.9}
|
||||
m_SizeDelta: {x: 137, y: 172}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6210273296947215134
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7016617008046089574}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8156181875320917282
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7016617008046089574}
|
||||
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: 110110860, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &7344593257758016015
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7016617008046089574}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7667901d8aea645d28b5125a2ed546ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.UI.ColorRegionView
|
||||
<RegionId>k__BackingField: Ball_1__2
|
||||
alphaHitThreshold: 0.5
|
||||
--- !u!1 &8884255625160799694
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1499171455522489850}
|
||||
- component: {fileID: 5584541620831607999}
|
||||
- component: {fileID: 8261083789739009355}
|
||||
- component: {fileID: 4960287606903619533}
|
||||
m_Layer: 5
|
||||
m_Name: Ball 1 (6)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1499171455522489850
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8884255625160799694}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2.2325292, y: 2.2325292, z: 2.2325292}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7007843749351456914}
|
||||
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: -203, y: -78}
|
||||
m_SizeDelta: {x: 206, y: 160}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5584541620831607999
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8884255625160799694}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8261083789739009355
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8884255625160799694}
|
||||
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: -1699664395, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &4960287606903619533
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8884255625160799694}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7667901d8aea645d28b5125a2ed546ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.UI.ColorRegionView
|
||||
<RegionId>k__BackingField: Ball_1__6
|
||||
alphaHitThreshold: 0.5
|
||||
--- !u!1 &9174428872297290907
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -134,7 +680,7 @@ GameObject:
|
||||
- component: {fileID: 5858260579706649738}
|
||||
- component: {fileID: 5165066291469502868}
|
||||
m_Layer: 5
|
||||
m_Name: Ball
|
||||
m_Name: Ball 1
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@@ -149,15 +695,15 @@ RectTransform:
|
||||
m_GameObject: {fileID: 9174428872297290907}
|
||||
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_LocalScale: {x: 1.6829311, y: 1.6829311, z: 1.6829311}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7007843749351456914}
|
||||
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: 655, y: 655}
|
||||
m_AnchoredPosition: {x: -179, y: 157}
|
||||
m_SizeDelta: {x: 137, y: 172}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2532004084275676791
|
||||
CanvasRenderer:
|
||||
@@ -187,9 +733,9 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b83767bdc55064240a89bbaf542508ef, type: 3}
|
||||
m_Sprite: {fileID: 809345179, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
@@ -209,5 +755,5 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 7667901d8aea645d28b5125a2ed546ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.UI.ColorRegionView
|
||||
<RegionId>k__BackingField: Ball
|
||||
<RegionId>k__BackingField: Ball_1
|
||||
alphaHitThreshold: 0.5
|
||||
|
||||
@@ -190,7 +190,6 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 8491537762459218466}
|
||||
- component: {fileID: 1250119535610353713}
|
||||
- component: {fileID: 3115883605324534662}
|
||||
m_Layer: 5
|
||||
m_Name: DogColoring
|
||||
m_TagString: Untagged
|
||||
@@ -229,36 +228,6 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5797023492298654107}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3115883605324534662
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5797023492298654107}
|
||||
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 &8346443913795904020
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -59,7 +59,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.4433962, g: 0.4433962, b: 0.4433962, a: 1}
|
||||
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
|
||||
@@ -149,7 +149,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.4433962, g: 0.4433962, b: 0.4433962, a: 1}
|
||||
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
|
||||
|
||||
@@ -567,7 +567,7 @@ RectTransform:
|
||||
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_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 8713146880366692101}
|
||||
- {fileID: 4954180409987358819}
|
||||
|
||||
@@ -130,6 +130,18 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 3764323147721730535}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1825175764228994942, guid: ed3abc5b1c6bc43938850705ab3e4d4b, type: 3}
|
||||
propertyPath: m_Color.b
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1825175764228994942, guid: ed3abc5b1c6bc43938850705ab3e4d4b, type: 3}
|
||||
propertyPath: m_Color.g
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1825175764228994942, guid: ed3abc5b1c6bc43938850705ab3e4d4b, type: 3}
|
||||
propertyPath: m_Color.r
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3648889831887995107, guid: ed3abc5b1c6bc43938850705ab3e4d4b, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0.5
|
||||
|
||||
@@ -101,8 +101,8 @@ RectTransform:
|
||||
m_GameObject: {fileID: 3594252390097820856}
|
||||
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_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 5980705335490319841}
|
||||
- {fileID: 3827914630025194271}
|
||||
|
||||
@@ -64,7 +64,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -149,7 +149,7 @@ RectTransform:
|
||||
m_GameObject: {fileID: 586400654407708949}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2.5, y: 2.5, z: 2.5}
|
||||
m_LocalScale: {x: 2, y: 2, z: 2}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5888896414592815468}
|
||||
@@ -357,18 +357,18 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1188101388448078972}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
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: 3594603427028553980}
|
||||
- {fileID: 441124950780501771}
|
||||
m_Father: {fileID: 5547118069008423765}
|
||||
m_Father: {fileID: 6690079309091672109}
|
||||
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: -410.72348, y: -19.91121}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 326.27158, y: -98.71441}
|
||||
m_SizeDelta: {x: 484.27228, y: 727.8224}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &1291032226892030435
|
||||
@@ -432,7 +432,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -480,9 +480,9 @@ RectTransform:
|
||||
- {fileID: 6461924220467094806}
|
||||
m_Father: {fileID: 2165186206990489170}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 127.906555, y: -75.7051}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 127.906555, y: -2.705101}
|
||||
m_SizeDelta: {x: 255.8131, y: 141}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7312164041000236076
|
||||
@@ -631,7 +631,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -750,7 +750,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -791,7 +791,7 @@ RectTransform:
|
||||
m_GameObject: {fileID: 2126798923183367092}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2.5, y: 2.5, z: 2.5}
|
||||
m_LocalScale: {x: 2, y: 2, z: 2}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3594603427028553980}
|
||||
@@ -977,6 +977,96 @@ MonoBehaviour:
|
||||
rightEditBtn: {fileID: 3592641742104231533}
|
||||
leftArrowBtn: {fileID: 1926483816928593170}
|
||||
rightArrowBtn: {fileID: 5102858265158070802}
|
||||
--- !u!1 &3968165114877126688
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5866376038047348955}
|
||||
- component: {fileID: 7173409860318281275}
|
||||
- component: {fileID: 7283950262010678386}
|
||||
- component: {fileID: 6005139069806320029}
|
||||
m_Layer: 5
|
||||
m_Name: RIghtMask
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5866376038047348955
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3968165114877126688}
|
||||
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: 7587323423160720656}
|
||||
m_Father: {fileID: 5547118069008423765}
|
||||
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: 448, y: 78.80319}
|
||||
m_SizeDelta: {x: 568.41, y: 644.3936}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7173409860318281275
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3968165114877126688}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7283950262010678386
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3968165114877126688}
|
||||
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!114 &6005139069806320029
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3968165114877126688}
|
||||
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 &4322975953909672353
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1009,10 +1099,10 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2165186206990489170}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -3.6491203, y: 1.3948975}
|
||||
m_SizeDelta: {x: 1228.7139, y: 132.63}
|
||||
m_SizeDelta: {x: 1228.7139, y: 278.63}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3047844959948664926
|
||||
CanvasRenderer:
|
||||
@@ -1087,9 +1177,9 @@ RectTransform:
|
||||
- {fileID: 6248076984857705508}
|
||||
m_Father: {fileID: 2165186206990489170}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -200, y: -70.327484}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: -200, y: 2.6725159}
|
||||
m_SizeDelta: {x: 541.0875, y: 146.562}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &9089040063984992825
|
||||
@@ -1238,7 +1328,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -1432,7 +1522,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -1572,19 +1662,19 @@ RectTransform:
|
||||
m_GameObject: {fileID: 6512652973926455734}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.89153963, y: 0.89153963, z: 0.89153963}
|
||||
m_LocalScale: {x: 0.8206176, y: 0.8206176, z: 0.8206176}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2131845220052401008}
|
||||
- {fileID: 7493892606189488038}
|
||||
- {fileID: 4538829696477980000}
|
||||
- {fileID: 7587323423160720656}
|
||||
- {fileID: 6690079309091672109}
|
||||
- {fileID: 5866376038047348955}
|
||||
m_Father: {fileID: 3765577967584406493}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -5.5908203, y: -56}
|
||||
m_SizeDelta: {x: 75.2758, y: -101.33}
|
||||
m_SizeDelta: {x: 1995.2758, y: 978.67}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4100635942208554667
|
||||
CanvasRenderer:
|
||||
@@ -1616,7 +1706,7 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 4d3acfc266364ec42a59f3c9431a0476, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
@@ -1822,7 +1912,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -2033,7 +2123,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -2208,7 +2298,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -2502,18 +2592,18 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7994049389914864845}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
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: 5888896414592815468}
|
||||
- {fileID: 1919538821576412555}
|
||||
m_Father: {fileID: 5547118069008423765}
|
||||
m_Father: {fileID: 5866376038047348955}
|
||||
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: 418.505, y: -19.91121}
|
||||
m_AnchoredPosition: {x: -29.494995, y: -98.71441}
|
||||
m_SizeDelta: {x: 484.2721, y: 727.8224}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &8052453301727865824
|
||||
@@ -2653,6 +2743,96 @@ MonoBehaviour:
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &8308214188962004307
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6690079309091672109}
|
||||
- component: {fileID: 4027786157419965345}
|
||||
- component: {fileID: 7748873692972350005}
|
||||
- component: {fileID: 2131280192654768571}
|
||||
m_Layer: 5
|
||||
m_Name: LeftMask
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6690079309091672109
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8308214188962004307}
|
||||
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: 4538829696477980000}
|
||||
m_Father: {fileID: 5547118069008423765}
|
||||
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: -452.79, y: 78.80319}
|
||||
m_SizeDelta: {x: 568.41, y: 644.3936}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4027786157419965345
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8308214188962004307}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7748873692972350005
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8308214188962004307}
|
||||
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!114 &2131280192654768571
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8308214188962004307}
|
||||
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 &8568633259698255501
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2714,7 +2894,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -2789,7 +2969,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -2929,7 +3109,7 @@ MonoBehaviour:
|
||||
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_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -3019,9 +3199,9 @@ RectTransform:
|
||||
- {fileID: 1884834246100035824}
|
||||
m_Father: {fileID: 4538829696477980000}
|
||||
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.000030517578, y: -324.28992}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMax: {x: 0.5, y: 0}
|
||||
m_AnchoredPosition: {x: -0.000030517578, y: 39.621277}
|
||||
m_SizeDelta: {x: 484.27228, y: 79.242615}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &9047034408538749912
|
||||
@@ -3059,7 +3239,7 @@ RectTransform:
|
||||
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: 95.82214, y: 14.781809}
|
||||
m_AnchoredPosition: {x: 95.822266, y: 14.781809}
|
||||
m_SizeDelta: {x: 133.57019, y: 94.7358}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5792937418016701132
|
||||
|
||||
BIN
Assets/Darkmatter/Content/Colorbook UI/Save Art Background.png
Normal file
BIN
Assets/Darkmatter/Content/Colorbook UI/Save Art Background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 948 KiB |
@@ -37,8 +37,8 @@ TextureImporter:
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
@@ -52,9 +52,9 @@ TextureImporter:
|
||||
spriteBorder: {x: 869, y: 876, z: 282, w: 277}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
@@ -67,7 +67,7 @@ TextureImporter:
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
@@ -80,7 +80,7 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
@@ -93,7 +93,7 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
@@ -106,7 +106,7 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
@@ -119,10 +119,24 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
@@ -132,6 +146,8 @@ TextureImporter:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
BIN
Assets/Darkmatter/Content/Sprites/MiniGame/DrawingGame/.DS_Store
vendored
Normal file
BIN
Assets/Darkmatter/Content/Sprites/MiniGame/DrawingGame/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
Assets/Darkmatter/Content/Sprites/MiniGame/DrawingGame/Artbook UI Sprites/.DS_Store
vendored
Normal file
BIN
Assets/Darkmatter/Content/Sprites/MiniGame/DrawingGame/Artbook UI Sprites/.DS_Store
vendored
Normal file
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 459 KiB After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 49 KiB |
@@ -22,7 +22,7 @@ MonoBehaviour:
|
||||
- {r: 1, g: 1, b: 1, a: 1}
|
||||
- {r: 0.05724919, g: 1, b: 0, a: 1}
|
||||
- {r: 0, g: 0, b: 0, a: 1}
|
||||
- {r: 0, g: 0.6845894, b: 1, a: 1}
|
||||
- {r: 0, g: 0.9229766, b: 0.9622642, a: 1}
|
||||
- {r: 1, g: 0, b: 0.7162385, a: 1}
|
||||
- {r: 0.3857726, g: 0, b: 1, a: 1}
|
||||
- {r: 0.5188679, g: 0.38189316, b: 0.30593628, a: 1}
|
||||
|
||||
@@ -14,13 +14,25 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier: Core::Darkmatter.Core.Data.Static.Features.DrawingTemplate.DrawingTemplateSO
|
||||
id: Ball
|
||||
displayName: Ball
|
||||
defaultThumbnail: {fileID: 21300000, guid: c79f0374ffc23654fa0c341985d7e249, type: 3}
|
||||
defaultThumbnail: {fileID: -1097588712, guid: 6d69a607d0df04148bf50bc6ef2d6fcc, type: 3}
|
||||
drawingPrefab: {fileID: 3523649744351506124, guid: ed2c3db5a20de9643a04dca1c61ff246, type: 3}
|
||||
coloringPrefab: {fileID: 6799536857748686187, guid: e02814fe96e1cf84491b9545b5642307, type: 3}
|
||||
completionAnimationPrefab: {fileID: 6152354576180930737, guid: 4ae77336fb29049ef91d839f601fca8a, type: 3}
|
||||
pieces:
|
||||
- {fileID: 11400000, guid: a3dc108a48b1e4f2196e8d49ae8e3edd, type: 2}
|
||||
regions:
|
||||
- RegionId: Ball
|
||||
- RegionId: Ball_1
|
||||
InitialColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- RegionId: Ball_1__1
|
||||
InitialColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- RegionId: Ball_1__2
|
||||
InitialColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- RegionId: Ball_1__3
|
||||
InitialColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- RegionId: Ball_1__4
|
||||
InitialColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- RegionId: Ball_1__5
|
||||
InitialColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- RegionId: Ball_1__6
|
||||
InitialColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
colorPaletteId: defaultPalette
|
||||
|
||||
@@ -12,10 +12,11 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 52d6fdba64cc3491880636e34ed593d0, type: 3}
|
||||
m_Name: ShapeBuilderConfig
|
||||
m_EditorClassIdentifier: Core::Darkmatter.Core.Data.Static.Features.ShapeBuilder.ShapeBuilderConfig
|
||||
snapRadius: 100
|
||||
previewRadius: 200
|
||||
snapRadius: 200
|
||||
previewRadius: 300
|
||||
snapDuration: 0.25
|
||||
returnDuration: 0.25
|
||||
dragScale: 1.15
|
||||
previewCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
|
||||
@@ -151,9 +151,9 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1424266587}
|
||||
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: -31.709412, y: -501}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMax: {x: 0.5, y: 0}
|
||||
m_AnchoredPosition: {x: -39, y: 37}
|
||||
m_SizeDelta: {x: 1124.7546, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &17632382
|
||||
@@ -679,6 +679,50 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: e14e6746c7bb4b57808b4d3020dc7bbb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Services.Capture::Darkmatter.Services.Capture.Installers.CaptureServiceModule
|
||||
--- !u!1 &164240469
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 164240470}
|
||||
- component: {fileID: 164240471}
|
||||
m_Layer: 0
|
||||
m_Name: AnalyticsServiceModule
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &164240470
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 164240469}
|
||||
serializedVersion: 2
|
||||
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: 1050564725}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &164240471
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 164240469}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e89fdd4696924b7facccda23a94a978, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Services.Analytics::Darkmatter.Services.Analytics.AnalyticsModule
|
||||
--- !u!1 &196669901
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1342,6 +1386,113 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: aa578cd62ad074dbf91b5228c3ac667e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.DrawingTemplates::Darkmatter.Features.DrawingTemplates.DrawingTemplateFeatureModule
|
||||
--- !u!1001 &673724413
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4405976200006927252, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: devKey
|
||||
value: DwvwaVs4yYqfPWfWjFcAL3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 1021.8063
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 101.14081
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7315102894599890749, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: AppsFlyerObject
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||
--- !u!1 &680382927
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 680382929}
|
||||
- component: {fileID: 680382928}
|
||||
m_Layer: 0
|
||||
m_Name: Smartlook Initializer
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &680382928
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 680382927}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8f8ef78bee04409481341d4213ba58aa, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: SmartlookAnalytics::SmartlookUnity.SmartlookInitializer
|
||||
ResetSession: 0
|
||||
ResetUser: 0
|
||||
--- !u!4 &680382929
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 680382927}
|
||||
serializedVersion: 2
|
||||
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: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &752713006
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1583,6 +1734,7 @@ Transform:
|
||||
- {fileID: 978572232}
|
||||
- {fileID: 361052051}
|
||||
- {fileID: 1707278033}
|
||||
- {fileID: 164240470}
|
||||
m_Father: {fileID: 1798580248}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1156238479
|
||||
@@ -1632,6 +1784,8 @@ MonoBehaviour:
|
||||
catalog: {fileID: 11400000, guid: 6e2d0c78aa02e4411948adcca14299a5, type: 2}
|
||||
autoReload: 1
|
||||
reloadDelaySeconds: 5
|
||||
reloadMaxAttempts: 6
|
||||
showWatchdogSeconds: 60
|
||||
--- !u!1 &1239449674
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1676,6 +1830,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f03c84255756e497f96c3baa7f6abe16, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Services.Gallery::Darkmatter.Services.Gallery.GalleryServiceModule
|
||||
saveBackground: {fileID: 2800000, guid: 0c8e208e83531f84cb2b842025cdd232, type: 3}
|
||||
--- !u!1 &1315655361
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1889,12 +2044,12 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||
m_UiScaleMode: 0
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_MatchWidthOrHeight: 0.5
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
@@ -1919,7 +2074,7 @@ Canvas:
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_VertexColorAlwaysGammaSpace: 1
|
||||
m_UseReflectionProbes: 0
|
||||
m_AdditionalShaderChannelsFlag: 1
|
||||
m_AdditionalShaderChannelsFlag: 25
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 800
|
||||
@@ -2163,6 +2318,7 @@ MonoBehaviour:
|
||||
- {fileID: 978572233}
|
||||
- {fileID: 361052052}
|
||||
- {fileID: 1707278034}
|
||||
- {fileID: 164240471}
|
||||
--- !u!1 &1890425864
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2394,4 +2550,6 @@ SceneRoots:
|
||||
- {fileID: 109717503}
|
||||
- {fileID: 1424266587}
|
||||
- {fileID: 196669903}
|
||||
- {fileID: 673724413}
|
||||
- {fileID: 1156238481}
|
||||
- {fileID: 680382929}
|
||||
|
||||
@@ -269,12 +269,12 @@ RectTransform:
|
||||
- {fileID: 669480396}
|
||||
- {fileID: 897161407}
|
||||
- {fileID: 2123251731}
|
||||
m_Father: {fileID: 1095289319}
|
||||
m_Father: {fileID: 2009173633}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 16.531006, y: -357.9118}
|
||||
m_SizeDelta: {x: -18.767784, y: 364.1703}
|
||||
m_AnchoredPosition: {x: 17.662354, y: -79.90527}
|
||||
m_SizeDelta: {x: -77.1025, y: -159.81653}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &526134096
|
||||
MonoBehaviour:
|
||||
@@ -296,8 +296,8 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 12870d045817b6342986f3e7eff126c1, type: 3}
|
||||
m_Type: 2
|
||||
m_Sprite: {fileID: 21300000, guid: 72335f5fd77658d449f36a91bf2abfe2, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
@@ -337,19 +337,16 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 532693813}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
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: 1139509439}
|
||||
- {fileID: 1604482366}
|
||||
- {fileID: 2040975075}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1095289319}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -83.00659}
|
||||
m_AnchoredPosition: {x: 1.1312256, y: -66.99341}
|
||||
m_SizeDelta: {x: 1861.6653, y: 148}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &669480395
|
||||
@@ -388,7 +385,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0.014404297, y: 0.0016479492}
|
||||
m_AnchoredPosition: {x: 0.014404297, y: 0.0017089844}
|
||||
m_SizeDelta: {x: 0.9000244, y: 0.19000244}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &669480397
|
||||
@@ -837,13 +834,16 @@ RectTransform:
|
||||
m_Children:
|
||||
- {fileID: 1855107934}
|
||||
- {fileID: 532693814}
|
||||
- {fileID: 526134095}
|
||||
- {fileID: 1139509439}
|
||||
- {fileID: 1604482366}
|
||||
- {fileID: 2040975075}
|
||||
- {fileID: 2009173633}
|
||||
m_Father: {fileID: 2069155641}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 1.1312256, y: 278.0066}
|
||||
m_SizeDelta: {x: -58.334717, y: -523.9868}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1095289320
|
||||
MonoBehaviour:
|
||||
@@ -896,12 +896,12 @@ RectTransform:
|
||||
m_LocalScale: {x: 0.51398, y: 0.51398, z: 0.51398}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 532693814}
|
||||
m_Father: {fileID: 1095289319}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchoredPosition: {x: -2.0579257, y: 5.796509}
|
||||
m_SizeDelta: {x: 1308.6868, y: 152.45325}
|
||||
m_AnchoredPosition: {x: -0.9267001, y: -61.1969}
|
||||
m_SizeDelta: {x: 1308.6868, y: 300.45325}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1139509440
|
||||
MonoBehaviour:
|
||||
@@ -973,13 +973,12 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1811707691}
|
||||
- {fileID: 1731001029}
|
||||
m_Father: {fileID: 669480396}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 149.13885, y: -75.08316}
|
||||
m_SizeDelta: {x: -336.5826, y: -117.3596}
|
||||
m_AnchoredPosition: {x: 149.13885, y: -50.553192}
|
||||
m_SizeDelta: {x: -336.5826, y: -178.6848}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &1157581244
|
||||
MonoBehaviour:
|
||||
@@ -1511,11 +1510,11 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1540054263}
|
||||
m_Father: {fileID: 532693814}
|
||||
m_Father: {fileID: 1095289319}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 127.25842, y: -74}
|
||||
m_AnchoredPosition: {x: 157.557, y: -66.99341}
|
||||
m_SizeDelta: {x: 254.51678, y: 148}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1604482367
|
||||
@@ -1658,16 +1657,16 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1731001028}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
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: 1157581243}
|
||||
m_Father: {fileID: 2009173633}
|
||||
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: 7.6782227, y: -367.36002}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMax: {x: 0.5, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 77}
|
||||
m_SizeDelta: {x: 706.7024, y: 68.289}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1731001030
|
||||
@@ -1728,8 +1727,8 @@ RectTransform:
|
||||
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.00012207031}
|
||||
m_SizeDelta: {x: 0, y: 0.19000244}
|
||||
m_AnchoredPosition: {x: 0, y: -0.00024414062}
|
||||
m_SizeDelta: {x: 0, y: -0.0002}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &1811707692
|
||||
MonoBehaviour:
|
||||
@@ -1746,13 +1745,13 @@ MonoBehaviour:
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 48
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_ChildAlignment: 3
|
||||
m_StartCorner: 0
|
||||
m_StartAxis: 0
|
||||
m_CellSize: {x: 355, y: 310}
|
||||
m_Spacing: {x: 30, y: 55}
|
||||
m_Spacing: {x: 30, y: 25}
|
||||
m_Constraint: 2
|
||||
m_ConstraintCount: 2
|
||||
--- !u!114 &1811707693
|
||||
@@ -1803,8 +1802,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -1.1312256, y: -278.0066}
|
||||
m_SizeDelta: {x: 58.334717, y: 523.9868}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1855107935
|
||||
MonoBehaviour:
|
||||
@@ -1981,6 +1980,68 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1890794681}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &2009173632
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2009173633}
|
||||
- component: {fileID: 2009173635}
|
||||
- component: {fileID: 2009173636}
|
||||
m_Layer: 5
|
||||
m_Name: SafeArea
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2009173633
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2009173632}
|
||||
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: 526134095}
|
||||
- {fileID: 1731001029}
|
||||
m_Father: {fileID: 1095289319}
|
||||
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 &2009173635
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2009173632}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2009173636
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2009173632}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c97afc556caea1c44969477eb7ddec74, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Crystal.SafeArea
|
||||
ConformX: 1
|
||||
ConformY: 1
|
||||
Logging: 0
|
||||
--- !u!1 &2040975074
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2013,11 +2074,11 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1890794682}
|
||||
m_Father: {fileID: 532693814}
|
||||
m_Father: {fileID: 1095289319}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -165.81073, y: -75.53757}
|
||||
m_AnchoredPosition: {x: -193.84686, y: -68.530975}
|
||||
m_SizeDelta: {x: 473.74487, y: 153.69641}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &2040975076
|
||||
|
||||
@@ -164,6 +164,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Capture::Darkmatter.Features.Capture.CaptureFeatureModule
|
||||
captureScale: 1
|
||||
galleryBackground: {fileID: 2800000, guid: 0c8e208e83531f84cb2b842025cdd232, type: 3}
|
||||
captureButtonView: {fileID: 376589371}
|
||||
gallerySaveView: {fileID: 0}
|
||||
--- !u!1 &64614225
|
||||
@@ -266,9 +267,9 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 153461768}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.44054, y: 0.44054, z: 0.44054}
|
||||
m_LocalScale: {x: 0.4093894, y: 0.4093894, z: 0.4093894}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 259035378}
|
||||
@@ -276,12 +277,12 @@ RectTransform:
|
||||
- {fileID: 376589367}
|
||||
- {fileID: 1143672390}
|
||||
- {fileID: 1340226039}
|
||||
m_Father: {fileID: 201822947}
|
||||
m_Father: {fileID: 1950265412}
|
||||
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_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -189.1037, y: -78.00296}
|
||||
m_SizeDelta: {x: 3376.3523, y: 2073.1938}
|
||||
m_SizeDelta: {x: 1456.3523, y: 993.19385}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &153461770
|
||||
MonoBehaviour:
|
||||
@@ -312,7 +313,7 @@ MonoBehaviour:
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 0.94
|
||||
m_PixelsPerUnitMultiplier: 0.81
|
||||
--- !u!222 &153461771
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -353,9 +354,7 @@ RectTransform:
|
||||
m_Children:
|
||||
- {fileID: 892653813}
|
||||
- {fileID: 1130088199}
|
||||
- {fileID: 1518670451}
|
||||
- {fileID: 1989194441}
|
||||
- {fileID: 153461769}
|
||||
- {fileID: 1950265412}
|
||||
m_Father: {fileID: 2069155641}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -973,6 +972,82 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier: Features.GameplayFlow::Darkmatter.Features.GameplayFlow.SceneRefs.GameplaySceneRefs
|
||||
paperRoot: {fileID: 1143672390}
|
||||
confetti: {fileID: 1141121867}
|
||||
--- !u!1 &565686254
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 565686255}
|
||||
- component: {fileID: 565686257}
|
||||
- component: {fileID: 565686256}
|
||||
m_Layer: 5
|
||||
m_Name: SavingIndicator
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &565686255
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 565686254}
|
||||
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: 993060025}
|
||||
m_Father: {fileID: 2069155641}
|
||||
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 &565686256
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 565686254}
|
||||
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: 0, g: 0, b: 0, a: 0.7607843}
|
||||
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!222 &565686257
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 565686254}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &600922870
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1397,6 +1472,143 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 892653812}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &993060024
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 993060025}
|
||||
- component: {fileID: 993060027}
|
||||
- component: {fileID: 993060026}
|
||||
m_Layer: 5
|
||||
m_Name: Saving
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &993060025
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 993060024}
|
||||
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: 565686255}
|
||||
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: 897.3912, y: 143.6794}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &993060026
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 993060024}
|
||||
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: Saving...
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: dde468a43b0440f4a9d121fb1d8f290e, type: 2}
|
||||
m_sharedMaterial: {fileID: -1548830327015913602, guid: dde468a43b0440f4a9d121fb1d8f290e, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, 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: 124.7
|
||||
m_fontSizeBase: 124.7
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
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}
|
||||
--- !u!222 &993060027
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 993060024}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1046038182
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1478,10 +1690,10 @@ RectTransform:
|
||||
- {fileID: 357588034}
|
||||
m_Father: {fileID: 1518670451}
|
||||
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_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -58.93701}
|
||||
m_SizeDelta: {x: 860.093, y: 1956.321}
|
||||
m_SizeDelta: {x: -191.90698, y: -527.67896}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1129540370
|
||||
MonoBehaviour:
|
||||
@@ -2126,10 +2338,10 @@ RectTransform:
|
||||
- {fileID: 1351490754}
|
||||
m_Father: {fileID: 1989194441}
|
||||
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: -82.378}
|
||||
m_SizeDelta: {x: 860.093, y: 1909.439}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -82.37799}
|
||||
m_SizeDelta: {x: -191.90698, y: -574.56104}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1281354569
|
||||
MonoBehaviour:
|
||||
@@ -2452,19 +2664,19 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1518670450}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.43461224, y: 0.43461224, z: 0.43461224}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1129540369}
|
||||
- {fileID: 206970556}
|
||||
m_Father: {fileID: 201822947}
|
||||
m_Father: {fileID: 1950265412}
|
||||
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: 743.4037, y: 3.8793}
|
||||
m_SizeDelta: {x: 1051.7537, y: 2502.8}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -216.59631, y: 0.002746582}
|
||||
m_SizeDelta: {x: 1051.7537, y: 1405}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1518670452
|
||||
MonoBehaviour:
|
||||
@@ -2624,6 +2836,69 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.ColoringFeatureModule
|
||||
paletteHolderView: {fileID: 1518670454}
|
||||
--- !u!1 &1950265411
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1950265412}
|
||||
- component: {fileID: 1950265414}
|
||||
- component: {fileID: 1950265415}
|
||||
m_Layer: 5
|
||||
m_Name: SafeArea
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1950265412
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1950265411}
|
||||
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: 1518670451}
|
||||
- {fileID: 1989194441}
|
||||
- {fileID: 153461769}
|
||||
m_Father: {fileID: 201822947}
|
||||
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 &1950265414
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1950265411}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1950265415
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1950265411}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c97afc556caea1c44969477eb7ddec74, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Crystal.SafeArea
|
||||
ConformX: 1
|
||||
ConformY: 1
|
||||
Logging: 0
|
||||
--- !u!1 &1965442262
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2808,19 +3083,19 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1989194440}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.43461224, y: 0.43461224, z: 0.43461224}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1281354568}
|
||||
- {fileID: 2065186226}
|
||||
m_Father: {fileID: 201822947}
|
||||
m_Father: {fileID: 1950265412}
|
||||
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: 743.4037, y: 3.8793}
|
||||
m_SizeDelta: {x: 1051.7537, y: 2502.8}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -216.59631, y: 0.002746582}
|
||||
m_SizeDelta: {x: 1051.7537, y: 1405}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1989194442
|
||||
MonoBehaviour:
|
||||
@@ -3225,7 +3500,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 33}
|
||||
m_SizeDelta: {x: 0, y: 5}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &2046672213
|
||||
MonoBehaviour:
|
||||
@@ -3261,8 +3536,8 @@ MonoBehaviour:
|
||||
m_ChildAlignment: 0
|
||||
m_StartCorner: 0
|
||||
m_StartAxis: 0
|
||||
m_CellSize: {x: 305, y: 305}
|
||||
m_Spacing: {x: 25, y: 12}
|
||||
m_CellSize: {x: 300, y: 250}
|
||||
m_Spacing: {x: 25, y: 40}
|
||||
m_Constraint: 0
|
||||
m_ConstraintCount: 2
|
||||
--- !u!1 &2058063737
|
||||
@@ -3604,6 +3879,7 @@ RectTransform:
|
||||
m_Children:
|
||||
- {fileID: 201822947}
|
||||
- {fileID: 2022514148}
|
||||
- {fileID: 565686255}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
|
||||
@@ -5496,8 +5496,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: -596, y: 455}
|
||||
m_SizeDelta: {x: 1301.0911, y: 647.6729}
|
||||
m_AnchoredPosition: {x: -623.27, y: 455}
|
||||
m_SizeDelta: {x: 1246.5, y: 647.6729}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &626851217
|
||||
MonoBehaviour:
|
||||
|
||||
Reference in New Issue
Block a user