diff --git a/Assets/Darkmatter/Code/Core/Contracts/Services/Music.meta b/Assets/Darkmatter/Code/Core/Contracts/Services/Music.meta new file mode 100644 index 0000000..99ca844 --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Services/Music.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d69da96f4ccb4de5910011cfc1e07a1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Core/Contracts/Services/Music/IMusicService.cs b/Assets/Darkmatter/Code/Core/Contracts/Services/Music/IMusicService.cs new file mode 100644 index 0000000..65955f9 --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Services/Music/IMusicService.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace Darkmatter.Core.Contracts.Services.Music +{ + public interface IMusicService + { + void Play(AudioClip clip, float volume01 = 1f, bool loop = true); + void Stop(float fadeOutSeconds = 0f); + void SetVolume(float volume01); + } +} diff --git a/Assets/Darkmatter/Code/Core/Contracts/Services/Music/IMusicService.cs.meta b/Assets/Darkmatter/Code/Core/Contracts/Services/Music/IMusicService.cs.meta new file mode 100644 index 0000000..67e6050 --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Services/Music/IMusicService.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f851c65abe6f240a894610f67360fe58 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/Systems/GameplayFlowController.cs b/Assets/Darkmatter/Code/Features/GameplayFlow/Systems/GameplayFlowController.cs index e424425..31d1a5d 100644 --- a/Assets/Darkmatter/Code/Features/GameplayFlow/Systems/GameplayFlowController.cs +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/Systems/GameplayFlowController.cs @@ -43,6 +43,7 @@ namespace Darkmatter.Features.GameplayFlow.Systems private IDisposable _assembledSub; private IDisposable _colorAppliedSub; + private IDisposable _drawingSelectedSub; private CancellationTokenSource _autosaveCts; private CancellationTokenSource _scopeCts; @@ -89,6 +90,7 @@ namespace Darkmatter.Features.GameplayFlow.Systems _assembledSub = _bus.Subscribe(OnShapeAssembled); _colorAppliedSub = _bus.Subscribe(OnColorApplied); + _drawingSelectedSub = _bus.Subscribe(OnDrawingSelected); Application.quitting += OnAppQuitting; Application.focusChanged += OnAppFocusChanged; @@ -188,6 +190,24 @@ namespace Darkmatter.Features.GameplayFlow.Systems DebouncedAutosaveAsync(_autosaveCts.Token).Forget(); } + private void OnDrawingSelected(DrawingSelectedSignal signal) + { + if (string.IsNullOrEmpty(signal.TemplateId)) return; + if (signal.TemplateId == _templateId) return; + EditAsync(signal.TemplateId).Forget(); + } + + private async UniTaskVoid EditAsync(string newTemplateId) + { + await SaveCurrentAsync(CancellationToken.None); + _loadingScreen.Show(); + _shapeBuilder.Clear(); + _coloring.Clear(); + await _scenes.LoadSceneAsync(nameof(GameScene.Colorbook), progress: null, cancellationToken: default); + await _scenes.UnloadSceneAsync(nameof(GameScene.Gameplay), progress: null, cancellationToken: default); + _bus.Publish(new DrawingSelectedSignal(newTemplateId)); + } + private async UniTaskVoid DebouncedAutosaveAsync(CancellationToken ct) { try @@ -246,6 +266,7 @@ namespace Darkmatter.Features.GameplayFlow.Systems _assembledSub?.Dispose(); _colorAppliedSub?.Dispose(); + _drawingSelectedSub?.Dispose(); _autosaveCts?.Cancel(); _autosaveCts?.Dispose(); _scopeCts?.Cancel(); diff --git a/Assets/Darkmatter/Code/Services/Capture/Systems/CaptureService.cs b/Assets/Darkmatter/Code/Services/Capture/Systems/CaptureService.cs index 993d0b7..9bcf62b 100644 --- a/Assets/Darkmatter/Code/Services/Capture/Systems/CaptureService.cs +++ b/Assets/Darkmatter/Code/Services/Capture/Systems/CaptureService.cs @@ -1,89 +1,115 @@ using System.Collections.Generic; using System.Threading; using Cysharp.Threading.Tasks; +using Darkmatter.Core.Contracts.Services.Camera; using Darkmatter.Core.Contracts.Services.Capture; using UnityEngine; +using CameraType = Darkmatter.Core.Enums.Services.Camera.CameraType; namespace Darkmatter.Services.Capture { public class CaptureService : ICaptureService { + private readonly ICameraService _cameraService; + + public CaptureService(ICameraService cameraService) => _cameraService = cameraService; + public async UniTask CapturePngAsync(GameObject captureObject, float scale, CancellationToken cancellationToken = default) { + if (captureObject == null) return null; + var paperRT = captureObject.transform as RectTransform; var paperCanvas = GetRootCanvas(captureObject); - var disabledCanvases = DisableOtherRootCanvases(paperCanvas); - var disabledGraphics = HideNonPaperGraphics(captureObject != null ? captureObject.transform : null); - var cam = Camera.main; - CameraClearFlags prevFlags = default; - Color prevBg = default; - if (cam != null) - { - prevFlags = cam.clearFlags; - prevBg = cam.backgroundColor; - cam.clearFlags = CameraClearFlags.SolidColor; - cam.backgroundColor = new Color(0f, 0f, 0f, 0f); - } - - await UniTask.WaitForEndOfFrame(cancellationToken); + var cam = _cameraService.GetCamera(CameraType.CaptureCamera); + if (paperCanvas == null || paperRT == null || cam == null) return null; int sw = Screen.width; int sh = Screen.height; - var captureRT = RenderTexture.GetTemporary(sw, sh, 0, RenderTextureFormat.ARGB32); - ScreenCapture.CaptureScreenshotIntoRenderTexture(captureRT); - var prevActive = RenderTexture.active; - RenderTexture.active = captureRT; - var fullScreen = new Texture2D(sw, sh, TextureFormat.RGBA32, mipChain: false); - fullScreen.ReadPixels(new Rect(0, 0, sw, sh), 0, 0); - fullScreen.Apply(); - RenderTexture.active = prevActive; - RenderTexture.ReleaseTemporary(captureRT); + var disabledCanvases = DisableOtherRootCanvases(paperCanvas); + var disabledGraphics = HideNonPaperGraphics(paperRT); - FlipVertical(fullScreen); + Rect crop = ComputeCropRect(captureObject, sw, sh); + int cropW = Mathf.Max(1, (int)crop.width); + int cropH = Mathf.Max(1, (int)crop.height); + + 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); try { - Rect crop = ComputeCropRect(captureObject, fullScreen.width, fullScreen.height); - int cropW = Mathf.Max(1, (int)crop.width); - int cropH = Mathf.Max(1, (int)crop.height); + await UniTask.WaitForEndOfFrame(cancellationToken); + Canvas.ForceUpdateCanvases(); + cam.Render(); + + var prevActive = RenderTexture.active; + RenderTexture.active = rt; + var fullScreen = new Texture2D(sw, sh, TextureFormat.RGBA32, mipChain: false); + fullScreen.ReadPixels(new Rect(0, 0, sw, sh), 0, 0); + fullScreen.Apply(); + RenderTexture.active = prevActive; - var cropped = new Texture2D(cropW, cropH, TextureFormat.RGBA32, mipChain: false); try { - cropped.SetPixels(fullScreen.GetPixels((int)crop.x, (int)crop.y, cropW, cropH)); - cropped.Apply(); - - int targetW = Mathf.Max(1, Mathf.RoundToInt(cropW * scale)); - int targetH = Mathf.Max(1, Mathf.RoundToInt(cropH * scale)); - Texture2D output = cropped; - if (output.width != targetW || output.height != targetH) - output = Resize(cropped, targetW, targetH); - + var cropped = new Texture2D(cropW, cropH, TextureFormat.RGBA32, mipChain: false); try { - return output.EncodeToPNG(); + cropped.SetPixels(fullScreen.GetPixels((int)crop.x, (int)crop.y, cropW, cropH)); + cropped.Apply(); + + int targetW = Mathf.Max(1, Mathf.RoundToInt(cropW * scale)); + int targetH = Mathf.Max(1, Mathf.RoundToInt(cropH * scale)); + Texture2D output = cropped; + if (output.width != targetW || output.height != targetH) + output = Resize(cropped, targetW, targetH); + + try + { + return output.EncodeToPNG(); + } + finally + { + if (output != cropped) Object.Destroy(output); + } } finally { - if (output != cropped) Object.Destroy(output); + Object.Destroy(cropped); } } finally { - Object.Destroy(cropped); + Object.Destroy(fullScreen); } } finally { - Object.Destroy(fullScreen); - foreach (var g in disabledGraphics) if (g != null) g.enabled = true; - foreach (var c in disabledCanvases) if (c != null) c.enabled = true; - if (cam != null) - { - cam.clearFlags = prevFlags; - cam.backgroundColor = prevBg; - } + paperCanvas.renderMode = prevMode; + paperCanvas.worldCamera = prevWorldCam; + paperCanvas.planeDistance = prevPlaneDist; + cam.targetTexture = prevTarget; + 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; } } @@ -104,6 +130,7 @@ namespace Darkmatter.Services.Capture c.enabled = false; disabled.Add(c); } + return disabled; } @@ -119,6 +146,7 @@ namespace Darkmatter.Services.Capture g.enabled = false; disabled.Add(g); } + return disabled; } @@ -129,7 +157,6 @@ namespace Darkmatter.Services.Capture var corners = new Vector3[4]; rt.GetWorldCorners(corners); - // ScreenSpaceOverlay canvas: world corners are already in screen pixels. float minX = Mathf.Clamp(corners[0].x, 0, screenW); float minY = Mathf.Clamp(corners[0].y, 0, screenH); float maxX = Mathf.Clamp(corners[2].x, 0, screenW); @@ -137,18 +164,6 @@ namespace Darkmatter.Services.Capture return Rect.MinMaxRect(minX, minY, maxX, maxY); } - private static void FlipVertical(Texture2D tex) - { - int w = tex.width, h = tex.height; - var pixels = tex.GetPixels(); - var flipped = new Color[pixels.Length]; - for (int y = 0; y < h; y++) - for (int x = 0; x < w; x++) - flipped[(h - 1 - y) * w + x] = pixels[y * w + x]; - tex.SetPixels(flipped); - tex.Apply(); - } - private static Texture2D Resize(Texture2D src, int width, int height) { var rt = RenderTexture.GetTemporary(width, height); @@ -169,4 +184,4 @@ namespace Darkmatter.Services.Capture } } } -} +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Services/Music/Installers/MusicServiceModule.cs b/Assets/Darkmatter/Code/Services/Music/Installers/MusicServiceModule.cs new file mode 100644 index 0000000..a7771d9 --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Music/Installers/MusicServiceModule.cs @@ -0,0 +1,22 @@ +using Darkmatter.Core.Contracts.Services.Music; +using Darkmatter.Libs.Installers; +using Darkmatter.Services.Music.Systems; +using UnityEngine; +using VContainer; +using VContainer.Unity; + +namespace Darkmatter.Services.Music.Installers +{ + public class MusicServiceModule : MonoBehaviour, IModule + { + [SerializeField] private AudioClip defaultTrack; + [SerializeField, Range(0f, 1f)] private float defaultVolume = 0.7f; + [SerializeField, Min(0f)] private float crossFadeSeconds = 0.4f; + + public void Register(IContainerBuilder builder) + { + builder.RegisterInstance(new MusicConfig(defaultTrack, defaultVolume, crossFadeSeconds)); + builder.RegisterEntryPoint(Lifetime.Singleton).As(); + } + } +} diff --git a/Assets/Darkmatter/Code/Services/Music/Installers/MusicServiceModule.cs.meta b/Assets/Darkmatter/Code/Services/Music/Installers/MusicServiceModule.cs.meta new file mode 100644 index 0000000..7aafc9c --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Music/Installers/MusicServiceModule.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 47cce31d8e31341a0ae46684e87cbd95 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Services/Music/Systems/MusicConfig.cs.meta b/Assets/Darkmatter/Code/Services/Music/Systems/MusicConfig.cs.meta new file mode 100644 index 0000000..fa26cbe --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Music/Systems/MusicConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4c15bf1ed26cf4c8f8339b22cb57efc6 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Services/Music/Systems/MusicService.cs b/Assets/Darkmatter/Code/Services/Music/Systems/MusicService.cs new file mode 100644 index 0000000..829f995 --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Music/Systems/MusicService.cs @@ -0,0 +1,70 @@ +using System; +using Darkmatter.Core.Contracts.Services.Audio; +using Darkmatter.Core.Contracts.Services.Music; +using Darkmatter.Core.Data.Dynamic.Services.Audio; +using Darkmatter.Core.Data.Signals.Features.AppBoot; +using Darkmatter.Core.Enums.Services.Audio; +using Darkmatter.Libs.Observer; +using UnityEngine; +using VContainer.Unity; + +namespace Darkmatter.Services.Music.Systems +{ + public class MusicService : IMusicService, IStartable, IDisposable + { + private readonly IAudioService _audio; + private readonly IEventBus _bus; + private readonly MusicConfig _config; + + private AudioHandle _current; + private IDisposable _introSub; + + public MusicService(IAudioService audio, IEventBus bus, MusicConfig config) + { + _audio = audio; + _bus = bus; + _config = config; + } + + public void Start() + { + _introSub = _bus.Subscribe(OnIntroCompleted); + } + + private void OnIntroCompleted(IntroCompletedSignal _) + { + if (_config.DefaultTrack != null && !_current.IsValid) + Play(_config.DefaultTrack, _config.DefaultVolume, loop: true); + } + + public void Play(AudioClip clip, float volume01 = 1f, bool loop = true) + { + if (clip == null) return; + if (_current.IsValid) _audio.Stop(_current, _config.CrossFadeSeconds); + + var req = new AudioRequest( + clip: clip, + channel: AudioChannel.Music, + mode: loop ? AudioPlayMode.Loop : AudioPlayMode.OneShot, + stopChannelBeforePlay: true, + volume01: Mathf.Clamp01(volume01)); + _current = _audio.Play(req); + } + + public void Stop(float fadeOutSeconds = 0f) + { + if (_current.IsValid) _audio.Stop(_current, fadeOutSeconds); + _current = AudioHandle.Invalid; + } + + public void SetVolume(float volume01) + { + if (_current.IsValid) _audio.SetVolume(_current, Mathf.Clamp01(volume01)); + } + + public void Dispose() + { + _introSub?.Dispose(); + } + } +} diff --git a/Assets/Darkmatter/Code/Services/Music/Systems/MusicService.cs.meta b/Assets/Darkmatter/Code/Services/Music/Systems/MusicService.cs.meta new file mode 100644 index 0000000..9a6f186 --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Music/Systems/MusicService.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8b4c07c26f9a44409bd43d2777b9951d \ No newline at end of file diff --git a/Assets/Darkmatter/Content/Audio.meta b/Assets/Darkmatter/Content/Audio.meta new file mode 100644 index 0000000..c4efd5e --- /dev/null +++ b/Assets/Darkmatter/Content/Audio.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 854202d005e754405862e01141384a81 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Content/Audio/BGM.mp3 b/Assets/Darkmatter/Content/Audio/BGM.mp3 new file mode 100644 index 0000000..a40e37a Binary files /dev/null and b/Assets/Darkmatter/Content/Audio/BGM.mp3 differ diff --git a/Assets/Darkmatter/Content/Audio/BGM.mp3.meta b/Assets/Darkmatter/Content/Audio/BGM.mp3.meta new file mode 100644 index 0000000..9b5ce6f --- /dev/null +++ b/Assets/Darkmatter/Content/Audio/BGM.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: d2ea12320736942649eb53c30ab7e4bb +AudioImporter: + externalObjects: {} + serializedVersion: 8 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Content/Colorbook UI/.DS_Store b/Assets/Darkmatter/Content/Colorbook UI/.DS_Store index 0140254..b40f2d6 100644 Binary files a/Assets/Darkmatter/Content/Colorbook UI/.DS_Store and b/Assets/Darkmatter/Content/Colorbook UI/.DS_Store differ diff --git a/Assets/Darkmatter/Content/Colorbook UI/Animations/.DS_Store b/Assets/Darkmatter/Content/Colorbook UI/Animations/.DS_Store index 67d51a5..6b630d7 100644 Binary files a/Assets/Darkmatter/Content/Colorbook UI/Animations/.DS_Store and b/Assets/Darkmatter/Content/Colorbook UI/Animations/.DS_Store differ diff --git a/Assets/Darkmatter/Content/Colorbook UI/Prefabs/UI/ArtBookView.prefab b/Assets/Darkmatter/Content/Colorbook UI/Prefabs/UI/ArtBookView.prefab index 9c88c4f..5dbca86 100644 --- a/Assets/Darkmatter/Content/Colorbook UI/Prefabs/UI/ArtBookView.prefab +++ b/Assets/Darkmatter/Content/Colorbook UI/Prefabs/UI/ArtBookView.prefab @@ -149,8 +149,8 @@ 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: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 + m_LocalScale: {x: 2.5, y: 2.5, z: 2.5} + m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 5888896414592815468} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -791,8 +791,8 @@ 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: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 + m_LocalScale: {x: 2.5, y: 2.5, z: 2.5} + m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 3594603427028553980} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Darkmatter/Content/Colorbook UI/apple.png b/Assets/Darkmatter/Content/Colorbook UI/apple.png new file mode 100644 index 0000000..71929be Binary files /dev/null and b/Assets/Darkmatter/Content/Colorbook UI/apple.png differ diff --git a/Assets/Darkmatter/Content/Colorbook UI/apple.png.meta b/Assets/Darkmatter/Content/Colorbook UI/apple.png.meta new file mode 100644 index 0000000..88806e1 --- /dev/null +++ b/Assets/Darkmatter/Content/Colorbook UI/apple.png.meta @@ -0,0 +1,182 @@ +fileFormatVersion: 2 +guid: 642217a8618e94c7ba1322adee7fbe28 +TextureImporter: + internalIDToNameTable: + - first: + 213: -7832214784768987486 + second: apple_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - 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 + - 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: + - serializedVersion: 2 + name: apple_0 + rect: + serializedVersion: 2 + x: 301 + y: 56 + width: 473 + height: 497 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 2ae284d66226e4390800000000000000 + internalID: -7832214784768987486 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + apple_0: -7832214784768987486 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Scenes/Boot.unity b/Assets/Darkmatter/Scenes/Boot.unity index ab541a6..063f292 100644 --- a/Assets/Darkmatter/Scenes/Boot.unity +++ b/Assets/Darkmatter/Scenes/Boot.unity @@ -948,6 +948,53 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 355949970} m_CullTransparentMesh: 1 +--- !u!1 &361052050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 361052051} + - component: {fileID: 361052052} + m_Layer: 0 + m_Name: MusicServiceModule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &361052051 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361052050} + 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 &361052052 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361052050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47cce31d8e31341a0ae46684e87cbd95, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Darkmatter.Services.Music.Installers.MusicServiceModule + defaultTrack: {fileID: 8300000, guid: d2ea12320736942649eb53c30ab7e4bb, type: 3} + defaultVolume: 0.7 + crossFadeSeconds: 0.4 --- !u!1 &445008005 GameObject: m_ObjectHideFlags: 0 @@ -1446,6 +1493,7 @@ Transform: - {fileID: 1776076871} - {fileID: 97140292} - {fileID: 978572232} + - {fileID: 361052051} m_Father: {fileID: 1798580248} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1239449674 @@ -1930,6 +1978,7 @@ MonoBehaviour: - {fileID: 97140291} - {fileID: 789049883} - {fileID: 978572233} + - {fileID: 361052052} --- !u!1 &1890425864 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Darkmatter/Scenes/Colorbook.unity b/Assets/Darkmatter/Scenes/Colorbook.unity index 96717b9..bd90d0a 100644 --- a/Assets/Darkmatter/Scenes/Colorbook.unity +++ b/Assets/Darkmatter/Scenes/Colorbook.unity @@ -407,10 +407,10 @@ RectTransform: - {fileID: 131698921} m_Father: {fileID: 1731001029} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 313.3512, y: -34.1445} + m_SizeDelta: {x: 60, y: 60} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &202036419 MonoBehaviour: @@ -1235,10 +1235,10 @@ RectTransform: - {fileID: 549774900} m_Father: {fileID: 1731001029} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 393.3512, y: -34.1445} + m_SizeDelta: {x: 60, y: 60} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1053034918 MonoBehaviour: @@ -2164,7 +2164,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1731001029 RectTransform: m_ObjectHideFlags: 0