fixes, improvements. firebase
@@ -151,7 +151,7 @@ namespace Darkmatter.Features.Artbook
|
|||||||
{
|
{
|
||||||
if (!entry.HasValue || entry.Value.Thumbnail == null) return;
|
if (!entry.HasValue || entry.Value.Thumbnail == null) return;
|
||||||
var ct = _cts?.Token ?? CancellationToken.None;
|
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());
|
private void HandleLeftEditClicked() => OpenForEdit(GetLeftEntry());
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
using System;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
using Darkmatter.Core.Contracts.Features.Capture;
|
using Darkmatter.Core.Contracts.Features.Capture;
|
||||||
|
using Darkmatter.Core.Contracts.Features.DrawingCatalog;
|
||||||
using Darkmatter.Core.Contracts.Features.GameplayFlow;
|
using Darkmatter.Core.Contracts.Features.GameplayFlow;
|
||||||
|
using Darkmatter.Core.Contracts.Features.Progression;
|
||||||
using Darkmatter.Core.Contracts.Services.Capture;
|
using Darkmatter.Core.Contracts.Services.Capture;
|
||||||
using Darkmatter.Core.Contracts.Services.Gallery;
|
using Darkmatter.Core.Contracts.Services.Gallery;
|
||||||
using Darkmatter.Core.Data.Signals.Features.Capture;
|
using Darkmatter.Core.Data.Signals.Features.Capture;
|
||||||
@@ -18,19 +19,25 @@ namespace Darkmatter.Features.Capture
|
|||||||
private readonly IGameplaySceneRefs _refs;
|
private readonly IGameplaySceneRefs _refs;
|
||||||
private readonly IEventBus _bus;
|
private readonly IEventBus _bus;
|
||||||
private readonly CaptureConfig _config;
|
private readonly CaptureConfig _config;
|
||||||
|
private readonly IProgressionSystem _progression;
|
||||||
|
private readonly IDrawingTemplateCatalog _catalog;
|
||||||
|
|
||||||
public CaptureSystem(
|
public CaptureSystem(
|
||||||
ICaptureService captureService,
|
ICaptureService captureService,
|
||||||
IGalleryService galleryService,
|
IGalleryService galleryService,
|
||||||
IGameplaySceneRefs refs,
|
IGameplaySceneRefs refs,
|
||||||
IEventBus bus,
|
IEventBus bus,
|
||||||
CaptureConfig config)
|
CaptureConfig config,
|
||||||
|
IProgressionSystem progression,
|
||||||
|
IDrawingTemplateCatalog catalog)
|
||||||
{
|
{
|
||||||
_captureService = captureService;
|
_captureService = captureService;
|
||||||
_galleryService = galleryService;
|
_galleryService = galleryService;
|
||||||
_refs = refs;
|
_refs = refs;
|
||||||
_bus = bus;
|
_bus = bus;
|
||||||
_config = config;
|
_config = config;
|
||||||
|
_progression = progression;
|
||||||
|
_catalog = catalog;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async UniTask<byte[]> CapturePngAsync(bool saveToGallery = false, CancellationToken ct = default)
|
public async UniTask<byte[]> CapturePngAsync(bool saveToGallery = false, CancellationToken ct = default)
|
||||||
@@ -44,9 +51,9 @@ namespace Darkmatter.Features.Capture
|
|||||||
{
|
{
|
||||||
if (tex.LoadImage(png))
|
if (tex.LoadImage(png))
|
||||||
{
|
{
|
||||||
|
var fileName = await BuildFileNameAsync();
|
||||||
_bus.Publish(new GallerySaveStartedSignal());
|
_bus.Publish(new GallerySaveStartedSignal());
|
||||||
await _galleryService.SaveImageAsync(tex,
|
await _galleryService.SaveImageAsync(tex, fileName, ct);
|
||||||
$"colorbook_{DateTime.UtcNow:yyyyMMdd_HHmmss}.png", ct);
|
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -57,5 +64,20 @@ namespace Darkmatter.Features.Capture
|
|||||||
}
|
}
|
||||||
return png;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,9 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
using Darkmatter.Core;
|
|
||||||
using Darkmatter.Core.Contracts.Features.DrawingCatalog;
|
using Darkmatter.Core.Contracts.Features.DrawingCatalog;
|
||||||
using Darkmatter.Core.Contracts.Features.Progression;
|
|
||||||
using Darkmatter.Core.Data.Signals.Features.Drawing;
|
using Darkmatter.Core.Data.Signals.Features.Drawing;
|
||||||
using Darkmatter.Libs.Observer;
|
using Darkmatter.Libs.Observer;
|
||||||
using ZLinq;
|
|
||||||
|
|
||||||
namespace Darkmatter.Features.DrawingCatalog.Systems;
|
namespace Darkmatter.Features.DrawingCatalog.Systems;
|
||||||
|
|
||||||
@@ -15,7 +12,6 @@ public sealed class DrawingCatalogController : IDrawingCatalogController
|
|||||||
{
|
{
|
||||||
private readonly IDrawingTemplateCatalog _catalog;
|
private readonly IDrawingTemplateCatalog _catalog;
|
||||||
private readonly IEventBus _bus;
|
private readonly IEventBus _bus;
|
||||||
private readonly IProgressionSystem _progression;
|
|
||||||
|
|
||||||
private readonly List<string> _visible = new();
|
private readonly List<string> _visible = new();
|
||||||
public IReadOnlyList<string> VisibleIds => _visible;
|
public IReadOnlyList<string> VisibleIds => _visible;
|
||||||
@@ -23,11 +19,9 @@ public sealed class DrawingCatalogController : IDrawingCatalogController
|
|||||||
|
|
||||||
public DrawingCatalogController(
|
public DrawingCatalogController(
|
||||||
IDrawingTemplateCatalog catalog,
|
IDrawingTemplateCatalog catalog,
|
||||||
IProgressionSystem progression,
|
|
||||||
IEventBus bus)
|
IEventBus bus)
|
||||||
{
|
{
|
||||||
_catalog = catalog;
|
_catalog = catalog;
|
||||||
_progression = progression;
|
|
||||||
_bus = bus;
|
_bus = bus;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,13 +39,8 @@ public sealed class DrawingCatalogController : IDrawingCatalogController
|
|||||||
private void Refresh()
|
private void Refresh()
|
||||||
{
|
{
|
||||||
_visible.Clear();
|
_visible.Clear();
|
||||||
var all = _catalog.AllTemplateIds;
|
_visible.AddRange(_catalog.AllTemplateIds);
|
||||||
foreach (var id in all)
|
_visible.Sort(StringComparer.OrdinalIgnoreCase);
|
||||||
if (!_progression.CompletedTemplateIds.AsValueEnumerable().Contains(id))
|
|
||||||
_visible.Add(id);
|
|
||||||
foreach (var id in all)
|
|
||||||
if (_progression.CompletedTemplateIds.AsValueEnumerable().Contains(id))
|
|
||||||
_visible.Add(id);
|
|
||||||
ListChanged?.Invoke();
|
ListChanged?.Invoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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,8 @@ namespace Darkmatter.Services.Ads
|
|||||||
[SerializeField] private bool autoReload = true;
|
[SerializeField] private bool autoReload = true;
|
||||||
[Tooltip("Seconds between auto-reload retries on failure.")]
|
[Tooltip("Seconds between auto-reload retries on failure.")]
|
||||||
[SerializeField, Min(1f)] private float reloadDelaySeconds = 5f;
|
[SerializeField, Min(1f)] private float reloadDelaySeconds = 5f;
|
||||||
|
[Tooltip("Max reload attempts before giving up.")]
|
||||||
|
[SerializeField, Min(1)] private int reloadMaxAttempts = 6;
|
||||||
|
|
||||||
public bool IsInitialized => _initialized;
|
public bool IsInitialized => _initialized;
|
||||||
public event Action<AdFormat, AdLoadState> LoadStateChanged;
|
public event Action<AdFormat, AdLoadState> LoadStateChanged;
|
||||||
@@ -495,8 +497,14 @@ namespace Darkmatter.Services.Ads
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await UniTask.Delay(TimeSpan.FromSeconds(reloadDelaySeconds), cancellationToken: cancellationToken);
|
for (int attempt = 0; attempt < reloadMaxAttempts; attempt++)
|
||||||
await LoadAsync(format, cancellationToken);
|
{
|
||||||
|
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) { }
|
catch (OperationCanceledException) { }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,7 @@ namespace Darkmatter.Services.Analytics
|
|||||||
{
|
{
|
||||||
public void Register(IContainerBuilder builder)
|
public void Register(IContainerBuilder builder)
|
||||||
{
|
{
|
||||||
#if FIREBASE_ANALYTICS_PRESENT
|
|
||||||
builder.RegisterEntryPoint<FirebaseAnalyticsSystem>();
|
builder.RegisterEntryPoint<FirebaseAnalyticsSystem>();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
#if FIREBASE_ANALYTICS
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
using Firebase.Crashlytics;
|
using Firebase.Crashlytics;
|
||||||
@@ -10,7 +9,6 @@ namespace Darkmatter.Services.Analytics
|
|||||||
{
|
{
|
||||||
public async UniTask StartAsync(CancellationToken cancellation = new CancellationToken())
|
public async UniTask StartAsync(CancellationToken cancellation = new CancellationToken())
|
||||||
{
|
{
|
||||||
#if !UNITY_EDITOR
|
|
||||||
await Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
|
await Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
|
||||||
{
|
{
|
||||||
var dependencyStatus = task.Result;
|
var dependencyStatus = task.Result;
|
||||||
@@ -39,8 +37,6 @@ namespace Darkmatter.Services.Analytics
|
|||||||
// Firebase Unity SDK is not safe to use here.
|
// Firebase Unity SDK is not safe to use here.
|
||||||
}
|
}
|
||||||
}, cancellation);
|
}, cancellation);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
@@ -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;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
using Darkmatter.Core.Contracts.Services.Gallery;
|
using Darkmatter.Core.Contracts.Services.Gallery;
|
||||||
@@ -8,36 +10,123 @@ namespace Darkmatter.Services.Gallery
|
|||||||
{
|
{
|
||||||
public class GalleryService : IGalleryService
|
public class GalleryService : IGalleryService
|
||||||
{
|
{
|
||||||
|
private readonly GalleryConfig _config;
|
||||||
|
|
||||||
|
public GalleryService(GalleryConfig config) => _config = config;
|
||||||
|
|
||||||
public async UniTask SaveImageAsync(Texture2D image, string fileName, CancellationToken cancellationToken)
|
public async UniTask SaveImageAsync(Texture2D image, string fileName, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var permission = await NativeGallery.RequestPermissionAsync(NativeGallery.PermissionType.Write,
|
Texture2D composited = null;
|
||||||
NativeGallery.MediaType.Image);
|
Texture2D toSave = image;
|
||||||
|
if (_config.Background != null)
|
||||||
if (permission != NativeGallery.Permission.Granted)
|
|
||||||
{
|
{
|
||||||
return;
|
composited = CompositeOverBackground(image, _config.Background);
|
||||||
|
toSave = composited;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tcs = new UniTaskCompletionSource();
|
var resolvedName = BuildUniqueFileName(fileName);
|
||||||
var registration = cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken));
|
|
||||||
|
|
||||||
NativeGallery.SaveImageToGallery(image, "Colorbook",
|
try
|
||||||
filename: $"colorbook_{DateTime.UtcNow:yyyyMMdd_HHmmss}.png", callback: (success, path) =>
|
{
|
||||||
|
#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();
|
return;
|
||||||
if (!success)
|
}
|
||||||
{
|
|
||||||
Debug.LogError("Failed to save image to gallery.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Log($"Image saved to gallery at: {path}");
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
public class GalleryModule : MonoBehaviour,IModule
|
||||||
{
|
{
|
||||||
|
[SerializeField] private Texture2D saveBackground;
|
||||||
|
|
||||||
public void Register(IContainerBuilder builder)
|
public void Register(IContainerBuilder builder)
|
||||||
{
|
{
|
||||||
|
builder.RegisterInstance(new GalleryConfig(saveBackground));
|
||||||
builder.Register<IGalleryService,GalleryService>(Lifetime.Singleton);
|
builder.Register<IGalleryService,GalleryService>(Lifetime.Singleton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
Assets/Darkmatter/Content/.DS_Store
vendored
BIN
Assets/Darkmatter/Content/Colorbook UI/.DS_Store
vendored
BIN
Assets/Darkmatter/Content/Colorbook UI/MainmenuUI/.DS_Store
vendored
Normal file
@@ -64,7 +64,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -432,7 +432,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -631,7 +631,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -750,7 +750,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -1328,7 +1328,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -1522,7 +1522,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -1912,7 +1912,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -2123,7 +2123,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -2298,7 +2298,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -2894,7 +2894,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -2969,7 +2969,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -3109,7 +3109,7 @@ MonoBehaviour:
|
|||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 0
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
|
|||||||
BIN
Assets/Darkmatter/Content/Colorbook UI/Save Art Background.png
Normal file
|
After Width: | Height: | Size: 948 KiB |
@@ -37,8 +37,8 @@ TextureImporter:
|
|||||||
filterMode: 1
|
filterMode: 1
|
||||||
aniso: 1
|
aniso: 1
|
||||||
mipBias: 0
|
mipBias: 0
|
||||||
wrapU: 1
|
wrapU: 0
|
||||||
wrapV: 1
|
wrapV: 0
|
||||||
wrapW: 0
|
wrapW: 0
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
@@ -52,9 +52,9 @@ TextureImporter:
|
|||||||
spriteBorder: {x: 869, y: 876, z: 282, w: 277}
|
spriteBorder: {x: 869, y: 876, z: 282, w: 277}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
alphaUsage: 1
|
alphaUsage: 1
|
||||||
alphaIsTransparency: 1
|
alphaIsTransparency: 0
|
||||||
spriteTessellationDetail: -1
|
spriteTessellationDetail: -1
|
||||||
textureType: 8
|
textureType: 0
|
||||||
textureShape: 1
|
textureShape: 1
|
||||||
singleChannelComponent: 0
|
singleChannelComponent: 0
|
||||||
flipbookRows: 1
|
flipbookRows: 1
|
||||||
@@ -67,7 +67,7 @@ TextureImporter:
|
|||||||
swizzle: 50462976
|
swizzle: 50462976
|
||||||
cookieLightType: 0
|
cookieLightType: 0
|
||||||
platformSettings:
|
platformSettings:
|
||||||
- serializedVersion: 3
|
- serializedVersion: 4
|
||||||
buildTarget: DefaultTexturePlatform
|
buildTarget: DefaultTexturePlatform
|
||||||
maxTextureSize: 2048
|
maxTextureSize: 2048
|
||||||
resizeAlgorithm: 0
|
resizeAlgorithm: 0
|
||||||
@@ -80,7 +80,7 @@ TextureImporter:
|
|||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
- serializedVersion: 3
|
- serializedVersion: 4
|
||||||
buildTarget: Standalone
|
buildTarget: Standalone
|
||||||
maxTextureSize: 2048
|
maxTextureSize: 2048
|
||||||
resizeAlgorithm: 0
|
resizeAlgorithm: 0
|
||||||
@@ -93,7 +93,7 @@ TextureImporter:
|
|||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
- serializedVersion: 3
|
- serializedVersion: 4
|
||||||
buildTarget: WebGL
|
buildTarget: WebGL
|
||||||
maxTextureSize: 2048
|
maxTextureSize: 2048
|
||||||
resizeAlgorithm: 0
|
resizeAlgorithm: 0
|
||||||
@@ -106,7 +106,7 @@ TextureImporter:
|
|||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
- serializedVersion: 3
|
- serializedVersion: 4
|
||||||
buildTarget: Android
|
buildTarget: Android
|
||||||
maxTextureSize: 2048
|
maxTextureSize: 2048
|
||||||
resizeAlgorithm: 0
|
resizeAlgorithm: 0
|
||||||
@@ -119,10 +119,24 @@ TextureImporter:
|
|||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 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:
|
spriteSheet:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
sprites: []
|
sprites: []
|
||||||
outline: []
|
outline: []
|
||||||
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID: 5e97eb03825dee720800000000000000
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
@@ -132,6 +146,8 @@ TextureImporter:
|
|||||||
edges: []
|
edges: []
|
||||||
weights: []
|
weights: []
|
||||||
secondaryTextures: []
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
nameFileIdTable: {}
|
nameFileIdTable: {}
|
||||||
mipmapLimitGroupName:
|
mipmapLimitGroupName:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
|
Before Width: | Height: | Size: 49 KiB |
@@ -151,9 +151,9 @@ RectTransform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 1424266587}
|
m_Father: {fileID: 1424266587}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0}
|
||||||
m_AnchoredPosition: {x: -31.709412, y: -501}
|
m_AnchoredPosition: {x: -39, y: 37}
|
||||||
m_SizeDelta: {x: 1124.7546, y: 50}
|
m_SizeDelta: {x: 1124.7546, y: 50}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &17632382
|
--- !u!114 &17632382
|
||||||
@@ -679,6 +679,50 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: e14e6746c7bb4b57808b4d3020dc7bbb, type: 3}
|
m_Script: {fileID: 11500000, guid: e14e6746c7bb4b57808b4d3020dc7bbb, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Services.Capture::Darkmatter.Services.Capture.Installers.CaptureServiceModule
|
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
|
--- !u!1 &196669901
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1583,6 +1627,7 @@ Transform:
|
|||||||
- {fileID: 978572232}
|
- {fileID: 978572232}
|
||||||
- {fileID: 361052051}
|
- {fileID: 361052051}
|
||||||
- {fileID: 1707278033}
|
- {fileID: 1707278033}
|
||||||
|
- {fileID: 164240470}
|
||||||
m_Father: {fileID: 1798580248}
|
m_Father: {fileID: 1798580248}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1156238479
|
--- !u!1 &1156238479
|
||||||
@@ -1632,6 +1677,7 @@ MonoBehaviour:
|
|||||||
catalog: {fileID: 11400000, guid: 6e2d0c78aa02e4411948adcca14299a5, type: 2}
|
catalog: {fileID: 11400000, guid: 6e2d0c78aa02e4411948adcca14299a5, type: 2}
|
||||||
autoReload: 1
|
autoReload: 1
|
||||||
reloadDelaySeconds: 5
|
reloadDelaySeconds: 5
|
||||||
|
reloadMaxAttempts: 6
|
||||||
--- !u!1 &1239449674
|
--- !u!1 &1239449674
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1676,6 +1722,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: f03c84255756e497f96c3baa7f6abe16, type: 3}
|
m_Script: {fileID: 11500000, guid: f03c84255756e497f96c3baa7f6abe16, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Services.Gallery::Darkmatter.Services.Gallery.GalleryServiceModule
|
m_EditorClassIdentifier: Services.Gallery::Darkmatter.Services.Gallery.GalleryServiceModule
|
||||||
|
saveBackground: {fileID: 2800000, guid: 0c8e208e83531f84cb2b842025cdd232, type: 3}
|
||||||
--- !u!1 &1315655361
|
--- !u!1 &1315655361
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1889,12 +1936,12 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
m_UiScaleMode: 0
|
m_UiScaleMode: 1
|
||||||
m_ReferencePixelsPerUnit: 100
|
m_ReferencePixelsPerUnit: 100
|
||||||
m_ScaleFactor: 1
|
m_ScaleFactor: 1
|
||||||
m_ReferenceResolution: {x: 800, y: 600}
|
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||||
m_ScreenMatchMode: 0
|
m_ScreenMatchMode: 0
|
||||||
m_MatchWidthOrHeight: 0
|
m_MatchWidthOrHeight: 0.5
|
||||||
m_PhysicalUnit: 3
|
m_PhysicalUnit: 3
|
||||||
m_FallbackScreenDPI: 96
|
m_FallbackScreenDPI: 96
|
||||||
m_DefaultSpriteDPI: 96
|
m_DefaultSpriteDPI: 96
|
||||||
@@ -1919,7 +1966,7 @@ Canvas:
|
|||||||
m_SortingBucketNormalizedSize: 0
|
m_SortingBucketNormalizedSize: 0
|
||||||
m_VertexColorAlwaysGammaSpace: 1
|
m_VertexColorAlwaysGammaSpace: 1
|
||||||
m_UseReflectionProbes: 0
|
m_UseReflectionProbes: 0
|
||||||
m_AdditionalShaderChannelsFlag: 1
|
m_AdditionalShaderChannelsFlag: 25
|
||||||
m_UpdateRectTransformForStandalone: 0
|
m_UpdateRectTransformForStandalone: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingOrder: 800
|
m_SortingOrder: 800
|
||||||
@@ -2163,6 +2210,7 @@ MonoBehaviour:
|
|||||||
- {fileID: 978572233}
|
- {fileID: 978572233}
|
||||||
- {fileID: 361052052}
|
- {fileID: 361052052}
|
||||||
- {fileID: 1707278034}
|
- {fileID: 1707278034}
|
||||||
|
- {fileID: 164240471}
|
||||||
--- !u!1 &1890425864
|
--- !u!1 &1890425864
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Features.Capture::Darkmatter.Features.Capture.CaptureFeatureModule
|
m_EditorClassIdentifier: Features.Capture::Darkmatter.Features.Capture.CaptureFeatureModule
|
||||||
captureScale: 1
|
captureScale: 1
|
||||||
|
galleryBackground: {fileID: 2800000, guid: 0c8e208e83531f84cb2b842025cdd232, type: 3}
|
||||||
captureButtonView: {fileID: 376589371}
|
captureButtonView: {fileID: 376589371}
|
||||||
gallerySaveView: {fileID: 0}
|
gallerySaveView: {fileID: 0}
|
||||||
--- !u!1 &64614225
|
--- !u!1 &64614225
|
||||||
@@ -971,6 +972,82 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier: Features.GameplayFlow::Darkmatter.Features.GameplayFlow.SceneRefs.GameplaySceneRefs
|
m_EditorClassIdentifier: Features.GameplayFlow::Darkmatter.Features.GameplayFlow.SceneRefs.GameplaySceneRefs
|
||||||
paperRoot: {fileID: 1143672390}
|
paperRoot: {fileID: 1143672390}
|
||||||
confetti: {fileID: 1141121867}
|
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
|
--- !u!1 &600922870
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1395,6 +1472,143 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 892653812}
|
m_GameObject: {fileID: 892653812}
|
||||||
m_CullTransparentMesh: 1
|
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
|
--- !u!1 &1046038182
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3665,6 +3879,7 @@ RectTransform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 201822947}
|
- {fileID: 201822947}
|
||||||
- {fileID: 2022514148}
|
- {fileID: 2022514148}
|
||||||
|
- {fileID: 565686255}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
|||||||
8
Assets/Editor Default Resources.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 04803ed6e44bf4a448f9cc958fb6231f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Editor Default Resources/Firebase.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 19c388482cf3c4730b1376e3ad7fd5cb
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_analytics.png
Executable file
|
After Width: | Height: | Size: 134 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dc218b335b1d14cd5ae532f65042d829
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics.png
|
||||||
|
timeCreated: 1473376337
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png
Executable file
|
After Width: | Height: | Size: 136 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9fe4b3bd3b7d2477dac92fb7429d1d1b
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics_dark.png
|
||||||
|
timeCreated: 1472679008
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_auth.png
Executable file
|
After Width: | Height: | Size: 295 B |
68
Assets/Editor Default Resources/Firebase/fb_auth.png.meta
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 394b3ec4d60c24476a12e4ba696d9e5d
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth.png
|
||||||
|
timeCreated: 1473376335
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_auth_dark.png
Executable file
|
After Width: | Height: | Size: 305 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3a9e1ef6287664c389bb09e2ac1b23b7
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth_dark.png
|
||||||
|
timeCreated: 1472679008
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png
Executable file
|
After Width: | Height: | Size: 510 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 837e8e1f35e334e81931d0857680cebf
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging.png
|
||||||
|
timeCreated: 1473376336
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
Executable file
|
After Width: | Height: | Size: 521 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 20c5b8a1f82cb4aadb77ca20683d2a6e
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
|
||||||
|
timeCreated: 1472679008
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_config.png
Executable file
|
After Width: | Height: | Size: 253 B |
68
Assets/Editor Default Resources/Firebase/fb_config.png.meta
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 415eaec414af14d11955222a282aca08
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_config.png
|
||||||
|
timeCreated: 1473376335
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_config_dark.png
Executable file
|
After Width: | Height: | Size: 253 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0ad9ef5fff5524355a9670c90a99cbba
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_config_dark.png
|
||||||
|
timeCreated: 1472679008
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_crashlytics.png
Executable file
|
After Width: | Height: | Size: 454 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 008a5e76206e49f9b06d8ba144aabb38
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics.png
|
||||||
|
timeCreated: 1473376335
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png
Executable file
|
After Width: | Height: | Size: 471 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 214009068900439da4a9cded17d58090
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics_dark.png
|
||||||
|
timeCreated: 1472679008
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_database.png
Executable file
|
After Width: | Height: | Size: 248 B |
@@ -0,0 +1,69 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3eea7b558c67b48e18acf3c278392e3d
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_database.png
|
||||||
|
timeCreated: 1476203961
|
||||||
|
licenseType: Free
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
linearTexture: 0
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: -1
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_database_dark.png
Executable file
|
After Width: | Height: | Size: 268 B |
@@ -0,0 +1,69 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9f6bfa9d8aefb40dc92461c372c73b0f
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_database_dark.png
|
||||||
|
timeCreated: 1476203949
|
||||||
|
licenseType: Free
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
linearTexture: 0
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: -1
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_functions.png
Executable file
|
After Width: | Height: | Size: 449 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 953367231f9e3e22e70e5d1c91a40fe5
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions.png
|
||||||
|
timeCreated: 1473376335
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_functions_dark.png
Executable file
|
After Width: | Height: | Size: 464 B |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b5aa3e4f7432e1c5698417cc13f85271
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions_dark.png
|
||||||
|
timeCreated: 1472679008
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_storage.png
Executable file
|
After Width: | Height: | Size: 306 B |
78
Assets/Editor Default Resources/Firebase/fb_storage.png.meta
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 573eb851c99f948f4bf2de49322bfd53
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage.png
|
||||||
|
timeCreated: 1481243899
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/fb_storage_dark.png
Executable file
|
After Width: | Height: | Size: 304 B |
@@ -0,0 +1,78 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2955864b938094f579ea9902b65ac10c
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage_dark.png
|
||||||
|
timeCreated: 1481243898
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/firebase_lockup.png
Executable file
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9f058f25e8e2d47cfb894951d4d7e48a
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup.png
|
||||||
|
timeCreated: 1473376336
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png
Executable file
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b93330fc8ea08407dbc514b5101afa14
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup_dark.png
|
||||||
|
timeCreated: 1472601251
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
linearTexture: 1
|
||||||
|
correctGamma: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 0
|
||||||
|
cubemapConvolution: 0
|
||||||
|
cubemapConvolutionSteps: 7
|
||||||
|
cubemapConvolutionExponent: 1.5
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: -1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
rGBM: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot:
|
||||||
|
x: 0.5
|
||||||
|
y: 0.5
|
||||||
|
spriteBorder:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
z: 0
|
||||||
|
w: 0
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
textureType: 2
|
||||||
|
buildTargetSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Firebase.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 76030d6e0df83494e9117b97add1acf4
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Firebase/Editor.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 92fb8dee4b9814d298c0f231de1e55e0
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
23
Assets/Firebase/Editor/AnalyticsDependencies.xml
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- Copyright (C) 2019 Google Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
FirebaseAnalytics iOS and Android Dependencies.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<remoteSwiftPackage url="https://github.com/firebase/firebase-ios-sdk.git" version="12.13.0">
|
||||||
|
<swiftPackage name="FirebaseAnalytics" replacesPod="Firebase/Analytics"/>
|
||||||
|
</remoteSwiftPackage>
|
||||||
|
<iosPods>
|
||||||
|
<iosPod name="Firebase/Analytics" version="12.13.0" minTargetSdk="15.0">
|
||||||
|
</iosPod>
|
||||||
|
</iosPods>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-analytics:23.2.0">
|
||||||
|
</androidPackage>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-analytics-unity:13.11.0">
|
||||||
|
<repositories>
|
||||||
|
<repository>Assets/Firebase/m2repository</repository>
|
||||||
|
</repositories>
|
||||||
|
</androidPackage>
|
||||||
|
</androidPackages>
|
||||||
|
</dependencies>
|
||||||
11
Assets/Firebase/Editor/AnalyticsDependencies.xml.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1e3c2da79be842cd838a9ddd70d20fa9
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/AnalyticsDependencies.xml
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
27
Assets/Firebase/Editor/AppDependencies.xml
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
<!-- Copyright (C) 2019 Google Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
FirebaseApp iOS and Android Dependencies.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<remoteSwiftPackage url="https://github.com/firebase/firebase-ios-sdk.git" version="12.13.0">
|
||||||
|
<swiftPackage name="FirebaseCore" replacesPod="Firebase/Core"/>
|
||||||
|
</remoteSwiftPackage>
|
||||||
|
<iosPods>
|
||||||
|
<iosPod name="Firebase/Core" version="12.13.0" minTargetSdk="15.0">
|
||||||
|
</iosPod>
|
||||||
|
</iosPods>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-common:22.0.1">
|
||||||
|
</androidPackage>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-analytics:23.2.0">
|
||||||
|
</androidPackage>
|
||||||
|
<androidPackage spec="com.google.android.gms:play-services-base:18.10.0">
|
||||||
|
</androidPackage>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-app-unity:13.11.0">
|
||||||
|
<repositories>
|
||||||
|
<repository>Assets/Firebase/m2repository</repository>
|
||||||
|
</repositories>
|
||||||
|
</androidPackage>
|
||||||
|
</androidPackages>
|
||||||
|
</dependencies>
|
||||||
11
Assets/Firebase/Editor/AppDependencies.xml.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9b63af95d9364af4a3d8ce58738b6223
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/AppDependencies.xml
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
25
Assets/Firebase/Editor/CrashlyticsDependencies.xml
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
<!-- Copyright (C) 2019 Google Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
FirebaseCrashlytics iOS and Android Dependencies.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<remoteSwiftPackage url="https://github.com/firebase/firebase-ios-sdk.git" version="12.13.0">
|
||||||
|
<swiftPackage name="FirebaseCrashlytics" replacesPod="Firebase/Crashlytics"/>
|
||||||
|
</remoteSwiftPackage>
|
||||||
|
<iosPods>
|
||||||
|
<iosPod name="Firebase/Crashlytics" version="12.13.0" minTargetSdk="15.0">
|
||||||
|
</iosPod>
|
||||||
|
</iosPods>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-crashlytics-ndk:20.0.6">
|
||||||
|
</androidPackage>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-analytics:23.2.0">
|
||||||
|
</androidPackage>
|
||||||
|
<androidPackage spec="com.google.firebase:firebase-crashlytics-unity:13.11.0">
|
||||||
|
<repositories>
|
||||||
|
<repository>Assets/Firebase/m2repository</repository>
|
||||||
|
</repositories>
|
||||||
|
</androidPackage>
|
||||||
|
</androidPackages>
|
||||||
|
</dependencies>
|
||||||
11
Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: be690db6bda046a89e38b20ef9bfe06c
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/CrashlyticsDependencies.xml
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll
Executable file
67
Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.meta
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3781f2218eef4d5a823dba406baa434b
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_targets-editor
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/Firebase.Crashlytics.Editor.dll
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 3
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 0
|
||||||
|
platformData:
|
||||||
|
Android:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
Any:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Editor:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: AnyOS
|
||||||
|
Linux64:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
OSXUniversal:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
WebGL:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Win:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
Win64:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
WindowsStoreApps:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
iOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
tvOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Firebase/Editor/Firebase.Editor.dll
Executable file
67
Assets/Firebase/Editor/Firebase.Editor.dll.meta
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9f2edbf81053418f879076c05f816dc2
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_targets-editor
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/Firebase.Editor.dll
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 3
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 0
|
||||||
|
platformData:
|
||||||
|
Android:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
Any:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Editor:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: AnyOS
|
||||||
|
Linux64:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
OSXUniversal:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
WebGL:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Win:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
Win64:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
WindowsStoreApps:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
iOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
tvOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
72
Assets/Firebase/Editor/FirebaseAnalytics_version-13.11.0_manifest.txt
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
Assets/Editor Default Resources/Firebase/fb_analytics.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_auth.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_auth_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_config.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_config_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_crashlytics.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_database.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_database_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_functions.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_functions_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_storage.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_storage_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/firebase_lockup.png
|
||||||
|
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.IOSResolver.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.IOSResolver.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.JarResolver.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.JarResolver.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.PackageManagerResolver.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.PackageManagerResolver.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.VersionHandlerImpl.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.VersionHandlerImpl.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/CHANGELOG.md
|
||||||
|
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/LICENSE
|
||||||
|
Assets/ExternalDependencyManager/Editor/README.md
|
||||||
|
Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.187_manifest.txt
|
||||||
|
Assets/Firebase/Editor/AnalyticsDependencies.xml
|
||||||
|
Assets/Firebase/Editor/AppDependencies.xml
|
||||||
|
Assets/Firebase/Editor/Firebase.Editor.dll
|
||||||
|
Assets/Firebase/Editor/Firebase.Editor.pdb
|
||||||
|
Assets/Firebase/Editor/generate_xml_from_google_services_json.exe
|
||||||
|
Assets/Firebase/Editor/generate_xml_from_google_services_json.py
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/AssemblyInfo.cs
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/Firebase.App.Internal.asmdef
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/FirebaseInterops.cs
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/HttpHelpers.cs
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/link.xml
|
||||||
|
Assets/Firebase/Plugins/Firebase.Analytics.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.Analytics.pdb
|
||||||
|
Assets/Firebase/Plugins/Firebase.App.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.App.pdb
|
||||||
|
Assets/Firebase/Plugins/Firebase.Platform.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.Platform.pdb
|
||||||
|
Assets/Firebase/Plugins/Firebase.TaskExtension.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.TaskExtension.pdb
|
||||||
|
Assets/Firebase/Plugins/Google.MiniJson.dll
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.App.dll
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.App.pdb
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-13_11_0.bundle
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-13_11_0.dll
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-13_11_0.so
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/13.11.0/firebase-analytics-unity-13.11.0.pom
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/13.11.0/firebase-analytics-unity-13.11.0.srcaar
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/13.11.0/firebase-app-unity-13.11.0.pom
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/13.11.0/firebase-app-unity-13.11.0.srcaar
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml
|
||||||
|
Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a
|
||||||
|
Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a
|
||||||
|
Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a
|
||||||
|
Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a9a3a847307045ea83fa26ebe0fee848
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_manifest
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/FirebaseAnalytics_version-13.11.0_manifest.txt
|
||||||
|
- gvhp_manifestname-0Google Analytics
|
||||||
|
- gvhp_manifestname-1FirebaseAnalytics
|
||||||
|
timeCreated: 0
|
||||||
71
Assets/Firebase/Editor/FirebaseCrashlytics_version-13.11.0_manifest.txt
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
Assets/Editor Default Resources/Firebase/fb_analytics.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_auth.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_auth_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_config.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_config_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_crashlytics.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_database.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_database_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_functions.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_functions_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_storage.png
|
||||||
|
Assets/Editor Default Resources/Firebase/fb_storage_dark.png
|
||||||
|
Assets/Editor Default Resources/Firebase/firebase_lockup.png
|
||||||
|
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.IOSResolver.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.IOSResolver.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.JarResolver.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.JarResolver.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.PackageManagerResolver.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.PackageManagerResolver.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.VersionHandlerImpl.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/1.2.187/Google.VersionHandlerImpl.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/CHANGELOG.md
|
||||||
|
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
|
||||||
|
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb
|
||||||
|
Assets/ExternalDependencyManager/Editor/LICENSE
|
||||||
|
Assets/ExternalDependencyManager/Editor/README.md
|
||||||
|
Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.187_manifest.txt
|
||||||
|
Assets/Firebase/Editor/AppDependencies.xml
|
||||||
|
Assets/Firebase/Editor/CrashlyticsDependencies.xml
|
||||||
|
Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll
|
||||||
|
Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb
|
||||||
|
Assets/Firebase/Editor/Firebase.Editor.dll
|
||||||
|
Assets/Firebase/Editor/Firebase.Editor.pdb
|
||||||
|
Assets/Firebase/Editor/generate_xml_from_google_services_json.exe
|
||||||
|
Assets/Firebase/Editor/generate_xml_from_google_services_json.py
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/AssemblyInfo.cs
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/Firebase.App.Internal.asmdef
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/FirebaseInterops.cs
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/HttpHelpers.cs
|
||||||
|
Assets/Firebase/FirebaseApp/Internal/link.xml
|
||||||
|
Assets/Firebase/Plugins/Firebase.App.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.App.pdb
|
||||||
|
Assets/Firebase/Plugins/Firebase.Crashlytics.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.Crashlytics.pdb
|
||||||
|
Assets/Firebase/Plugins/Firebase.Platform.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.Platform.pdb
|
||||||
|
Assets/Firebase/Plugins/Firebase.TaskExtension.dll
|
||||||
|
Assets/Firebase/Plugins/Firebase.TaskExtension.pdb
|
||||||
|
Assets/Firebase/Plugins/Google.MiniJson.dll
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.App.dll
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.App.pdb
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll
|
||||||
|
Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-13_11_0.bundle
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-13_11_0.dll
|
||||||
|
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-13_11_0.so
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/13.11.0/firebase-app-unity-13.11.0.pom
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/13.11.0/firebase-app-unity-13.11.0.srcaar
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/13.11.0/firebase-crashlytics-unity-13.11.0.pom
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/13.11.0/firebase-crashlytics-unity-13.11.0.srcaar
|
||||||
|
Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml
|
||||||
|
Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a
|
||||||
|
Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a
|
||||||
|
Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a
|
||||||
|
Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6e81ab079399484d877f51756833fe48
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_manifest
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/FirebaseCrashlytics_version-13.11.0_manifest.txt
|
||||||
|
- gvhp_manifestname-0Firebase Crashlytics
|
||||||
|
- gvhp_manifestname-1FirebaseCrashlytics
|
||||||
|
timeCreated: 0
|
||||||
BIN
Assets/Firebase/Editor/generate_xml_from_google_services_json.exe
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ae88c0972b7448b5b36def1716f1d711
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/generate_xml_from_google_services_json.exe
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
498
Assets/Firebase/Editor/generate_xml_from_google_services_json.py
Executable file
@@ -0,0 +1,498 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
# Copyright 2016 Google LLC
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
"""Stand-alone implementation of the Gradle Firebase plugin.
|
||||||
|
|
||||||
|
Converts the services json file to xml:
|
||||||
|
https://googleplex-android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/google-services/src/main/groovy/com/google/gms/googleservices
|
||||||
|
"""
|
||||||
|
|
||||||
|
__author__ = 'Wouter van Oortmerssen'
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import ctypes
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import platform
|
||||||
|
import sys
|
||||||
|
from xml.etree import ElementTree
|
||||||
|
|
||||||
|
if platform.system().lower() == 'windows':
|
||||||
|
import ctypes.wintypes # pylint: disable=g-import-not-at-top
|
||||||
|
|
||||||
|
# Map Python 2's unicode method to encode a string as bytes in python 3.
|
||||||
|
try:
|
||||||
|
unicode('') # See whether unicode class is available (Python < 3)
|
||||||
|
except NameError:
|
||||||
|
unicode = str # pylint: disable=redefined-builtin,invalid-name
|
||||||
|
|
||||||
|
# Input filename if it isn't set.
|
||||||
|
DEFAULT_INPUT_FILENAME = 'app/google-services.json'
|
||||||
|
# Output filename if it isn't set.
|
||||||
|
DEFAULT_OUTPUT_FILENAME = 'res/values/googleservices.xml'
|
||||||
|
# Input filename for .plist files, if it isn't set.
|
||||||
|
DEFAULT_PLIST_INPUT_FILENAME = 'GoogleService-Info.plist'
|
||||||
|
# Output filename for .json files, if it isn't set.
|
||||||
|
DEFAULT_JSON_OUTPUT_FILENAME = 'google-services-desktop.json'
|
||||||
|
|
||||||
|
OAUTH_CLIENT_TYPE_ANDROID_APP = 1
|
||||||
|
OAUTH_CLIENT_TYPE_WEB = 3
|
||||||
|
|
||||||
|
|
||||||
|
def read_xml_value(xml_node):
|
||||||
|
"""Utility method for reading values from the plist XML.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
xml_node: An ElementTree node, that contains a value.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The value of the node, or None, if it could not be read.
|
||||||
|
"""
|
||||||
|
if xml_node.tag == 'string':
|
||||||
|
return xml_node.text
|
||||||
|
elif xml_node.tag == 'integer':
|
||||||
|
return int(xml_node.text)
|
||||||
|
elif xml_node.tag == 'real':
|
||||||
|
return float(xml_node.text)
|
||||||
|
elif xml_node.tag == 'false':
|
||||||
|
return 0
|
||||||
|
elif xml_node.tag == 'true':
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
# other types of input are ignored. (data, dates, arrays, etc.)
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def construct_plist_dictionary(xml_root):
|
||||||
|
"""Constructs a dictionary of values based on the contents of a plist file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
xml_root: An ElementTree node, that represents the root of the xml file
|
||||||
|
that is to be parsed. (Which should be a dictionary containing
|
||||||
|
key-value pairs of the properties that need to be extracted.)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A dictionary, containing key-value pairs for all (supported) entries in the
|
||||||
|
node.
|
||||||
|
"""
|
||||||
|
xml_dict = xml_root.find('dict')
|
||||||
|
|
||||||
|
if xml_dict is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
plist_dict = {}
|
||||||
|
i = 0
|
||||||
|
while i < len(xml_dict):
|
||||||
|
if xml_dict[i].tag == 'key':
|
||||||
|
key = xml_dict[i].text
|
||||||
|
i += 1
|
||||||
|
if i < len(xml_dict):
|
||||||
|
value = read_xml_value(xml_dict[i])
|
||||||
|
if value is not None:
|
||||||
|
plist_dict[key] = value
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
return plist_dict
|
||||||
|
|
||||||
|
|
||||||
|
def update_dict_keys(key_map, input_dict):
|
||||||
|
"""Creates a dict from input_dict with the same values but new keys.
|
||||||
|
|
||||||
|
Two dictionaries are passed to this function: the key_map that represents a
|
||||||
|
mapping of source keys to destination keys, and the input_dict that is the
|
||||||
|
dictionary that is to be duplicated, replacing any key that matches a source
|
||||||
|
key with a destination key. Source keys that are not present in the
|
||||||
|
input_dict will not have their destination key represented in the result.
|
||||||
|
|
||||||
|
In other words, if key_map is `{'old': 'new', 'foo': 'bar'}`, and input_dict
|
||||||
|
is `{'old': 10}`, the result will be `{'new': 10}`.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
key_map (dict): A dictionary of strings to strings that maps source keys to
|
||||||
|
destination keys.
|
||||||
|
input_dict (dict): The dictionary of string keys to any value type, which
|
||||||
|
is to be duplicated, replacing source keys with the corresponding
|
||||||
|
destination keys from key_map.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: A new dictionary with updated keys.
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
new_key: input_dict[old_key]
|
||||||
|
for (old_key, new_key) in key_map.items()
|
||||||
|
if old_key in input_dict
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def construct_google_services_json(xml_dict):
|
||||||
|
"""Constructs a google services json file from a dictionary.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
xml_dict: A dictionary of all the key/value pairs that are needed for the
|
||||||
|
output json file.
|
||||||
|
Returns:
|
||||||
|
A string representing the output json file.
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
json_struct = {
|
||||||
|
'project_info':
|
||||||
|
update_dict_keys(
|
||||||
|
{
|
||||||
|
'GCM_SENDER_ID': 'project_number',
|
||||||
|
'DATABASE_URL': 'firebase_url',
|
||||||
|
'PROJECT_ID': 'project_id',
|
||||||
|
'STORAGE_BUCKET': 'storage_bucket'
|
||||||
|
}, xml_dict),
|
||||||
|
'client': [{
|
||||||
|
'client_info': {
|
||||||
|
'mobilesdk_app_id': xml_dict['GOOGLE_APP_ID'],
|
||||||
|
'android_client_info': {
|
||||||
|
'package_name': xml_dict['BUNDLE_ID']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'api_key': [{
|
||||||
|
'current_key': xml_dict['API_KEY']
|
||||||
|
}],
|
||||||
|
'services': {
|
||||||
|
'analytics_service': {
|
||||||
|
'status': xml_dict['IS_ANALYTICS_ENABLED']
|
||||||
|
},
|
||||||
|
'appinvite_service': {
|
||||||
|
'status': xml_dict['IS_APPINVITE_ENABLED']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},],
|
||||||
|
'configuration_version':
|
||||||
|
'1'
|
||||||
|
}
|
||||||
|
# OAuth client is optional, but include it if present.
|
||||||
|
if 'CLIENT_ID' in xml_dict:
|
||||||
|
json_struct['client'][0]['oauth_client'] = [{
|
||||||
|
'client_id': xml_dict['CLIENT_ID'],
|
||||||
|
}]
|
||||||
|
return json.dumps(json_struct, indent=2)
|
||||||
|
except KeyError as e:
|
||||||
|
sys.stderr.write('Could not find key in plist file: [%s]\n' % (e.args[0]))
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def convert_plist_to_json(plist_string, input_filename):
|
||||||
|
"""Converts an input plist string into a .json file and saves it.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
plist_string: The contents of the loaded plist file.
|
||||||
|
|
||||||
|
input_filename: The file name that the plist data was read from.
|
||||||
|
Returns:
|
||||||
|
the converted string, or None if there were errors.
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
root = ElementTree.fromstring(plist_string)
|
||||||
|
except ElementTree.ParseError:
|
||||||
|
sys.stderr.write('Error parsing file %s.\n'
|
||||||
|
'It does not appear to be valid XML.\n' % (input_filename))
|
||||||
|
return None
|
||||||
|
|
||||||
|
plist_dict = construct_plist_dictionary(root)
|
||||||
|
if plist_dict is None:
|
||||||
|
sys.stderr.write('In file %s, could not locate a top-level \'dict\' '
|
||||||
|
'element.\n'
|
||||||
|
'File format should be plist XML, with a top-level '
|
||||||
|
'dictionary containing project settings as key-value '
|
||||||
|
'pairs.\n' % (input_filename))
|
||||||
|
return None
|
||||||
|
|
||||||
|
json_string = construct_google_services_json(plist_dict)
|
||||||
|
return json_string
|
||||||
|
|
||||||
|
|
||||||
|
def gen_string(parent, name, text):
|
||||||
|
"""Generate one <string /> element and put into the list of keeps.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
parent: The object that will hold the string.
|
||||||
|
name: The name to store the string under.
|
||||||
|
text: The text of the string.
|
||||||
|
"""
|
||||||
|
if text:
|
||||||
|
prev = parent.get('tools:keep', '')
|
||||||
|
if prev:
|
||||||
|
prev += ','
|
||||||
|
parent.set('tools:keep', prev + '@string/' + name)
|
||||||
|
child = ElementTree.SubElement(parent, 'string', {
|
||||||
|
'name': name,
|
||||||
|
'translatable': 'false'
|
||||||
|
})
|
||||||
|
child.text = text
|
||||||
|
|
||||||
|
|
||||||
|
def indent(elem, level=0):
|
||||||
|
"""Recurse through XML tree and add indentation.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
elem: The element to recurse over
|
||||||
|
level: The current indentation level.
|
||||||
|
"""
|
||||||
|
i = '\n' + level*' '
|
||||||
|
if elem is not None:
|
||||||
|
if not elem.text or not elem.text.strip():
|
||||||
|
elem.text = i + ' '
|
||||||
|
if not elem.tail or not elem.tail.strip():
|
||||||
|
elem.tail = i
|
||||||
|
for elem in elem:
|
||||||
|
indent(elem, level+1)
|
||||||
|
if not elem.tail or not elem.tail.strip():
|
||||||
|
elem.tail = i
|
||||||
|
else:
|
||||||
|
if level and (not elem.tail or not elem.tail.strip()):
|
||||||
|
elem.tail = i
|
||||||
|
|
||||||
|
|
||||||
|
def argv_as_unicode_win32():
|
||||||
|
"""Returns unicode command line arguments on windows.
|
||||||
|
"""
|
||||||
|
|
||||||
|
get_command_line_w = ctypes.cdll.kernel32.GetCommandLineW
|
||||||
|
get_command_line_w.restype = ctypes.wintypes.LPCWSTR
|
||||||
|
|
||||||
|
# CommandLineToArgvW parses the Unicode command line
|
||||||
|
command_line_to_argv_w = ctypes.windll.shell32.CommandLineToArgvW
|
||||||
|
command_line_to_argv_w.argtypes = [
|
||||||
|
ctypes.wintypes.LPCWSTR,
|
||||||
|
ctypes.POINTER(ctypes.c_int)
|
||||||
|
]
|
||||||
|
command_line_to_argv_w.restype = ctypes.POINTER(
|
||||||
|
ctypes.wintypes.LPWSTR)
|
||||||
|
|
||||||
|
argc = ctypes.c_int(0)
|
||||||
|
argv = command_line_to_argv_w(get_command_line_w(), argc)
|
||||||
|
|
||||||
|
# Strip the python executable from the arguments if it exists
|
||||||
|
# (It would be listed as the first argument on the windows command line, but
|
||||||
|
# not in the arguments to the python script)
|
||||||
|
sys_argv_len = len(sys.argv)
|
||||||
|
return [unicode(argv[i]) for i in
|
||||||
|
range(argc.value - sys_argv_len, argc.value)]
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description=((
|
||||||
|
'Converts a Firebase %s into %s similar to the Gradle plugin, or '
|
||||||
|
'converts a Firebase %s into a %s suitible for use on desktop apps.' %
|
||||||
|
(DEFAULT_INPUT_FILENAME, DEFAULT_OUTPUT_FILENAME,
|
||||||
|
DEFAULT_PLIST_INPUT_FILENAME, DEFAULT_JSON_OUTPUT_FILENAME))))
|
||||||
|
parser.add_argument('-i', help='Override input file name',
|
||||||
|
metavar='FILE', required=False)
|
||||||
|
parser.add_argument('-o', help='Override destination file name',
|
||||||
|
metavar='FILE', required=False)
|
||||||
|
parser.add_argument('-p', help=('Package ID to select within the set of '
|
||||||
|
'packages in the input file. If this is '
|
||||||
|
'not specified, the first package in the '
|
||||||
|
'input file is selected.'))
|
||||||
|
parser.add_argument('-l', help=('List all package IDs referenced by the '
|
||||||
|
'input file. If this is specified, '
|
||||||
|
'the output file is not created.'),
|
||||||
|
action='store_true', default=False, required=False)
|
||||||
|
parser.add_argument('-f', help=('Print project fields from the input file '
|
||||||
|
'in the form \'name=value\\n\' for each '
|
||||||
|
'field. If this is specified, the output '
|
||||||
|
'is not created.'),
|
||||||
|
action='store_true', default=False, required=False)
|
||||||
|
parser.add_argument(
|
||||||
|
'--plist',
|
||||||
|
help=(
|
||||||
|
'Specifies a plist file to convert to a JSON configuration file. '
|
||||||
|
'If this is enabled, the script will expect a .plist file as input, '
|
||||||
|
'which it will convert into %s file. The output file is '
|
||||||
|
'*not* suitable for use with Firebase on Android.' %
|
||||||
|
(DEFAULT_JSON_OUTPUT_FILENAME)),
|
||||||
|
action='store_true',
|
||||||
|
default=False,
|
||||||
|
required=False)
|
||||||
|
|
||||||
|
# python 2 on Windows doesn't handle unicode arguments well, so we need to
|
||||||
|
# pre-process the command line arguments before trying to parse them.
|
||||||
|
if platform.system() == 'Windows':
|
||||||
|
sys.argv = argv_as_unicode_win32()
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.plist:
|
||||||
|
input_filename = DEFAULT_PLIST_INPUT_FILENAME
|
||||||
|
output_filename = DEFAULT_JSON_OUTPUT_FILENAME
|
||||||
|
else:
|
||||||
|
input_filename = DEFAULT_INPUT_FILENAME
|
||||||
|
output_filename = DEFAULT_OUTPUT_FILENAME
|
||||||
|
|
||||||
|
if args.i:
|
||||||
|
# Encode the input string (type unicode) as a normal string (type str)
|
||||||
|
# using the 'utf-8' encoding so that it can be worked with the same as
|
||||||
|
# input names from other sources (like the defaults).
|
||||||
|
input_filename_raw = args.i.encode('utf-8')
|
||||||
|
# Decode the filename to a unicode string using the 'utf-8' encoding to
|
||||||
|
# properly handle filepaths with unicode characters in them.
|
||||||
|
input_filename = input_filename_raw.decode('utf-8')
|
||||||
|
|
||||||
|
if args.o:
|
||||||
|
output_filename = args.o
|
||||||
|
|
||||||
|
with open(input_filename, 'r') as ifile:
|
||||||
|
file_string = ifile.read()
|
||||||
|
|
||||||
|
json_string = None
|
||||||
|
if args.plist:
|
||||||
|
json_string = convert_plist_to_json(file_string, input_filename)
|
||||||
|
if json_string is None:
|
||||||
|
return 1
|
||||||
|
jsobj = json.loads(json_string)
|
||||||
|
else:
|
||||||
|
jsobj = json.loads(file_string)
|
||||||
|
|
||||||
|
root = ElementTree.Element('resources')
|
||||||
|
root.set('xmlns:tools', 'http://schemas.android.com/tools')
|
||||||
|
|
||||||
|
project_info = jsobj.get('project_info')
|
||||||
|
if project_info:
|
||||||
|
gen_string(root, 'firebase_database_url', project_info.get('firebase_url'))
|
||||||
|
gen_string(root, 'gcm_defaultSenderId', project_info.get('project_number'))
|
||||||
|
gen_string(root, 'google_storage_bucket',
|
||||||
|
project_info.get('storage_bucket'))
|
||||||
|
gen_string(root, 'project_id', project_info.get('project_id'))
|
||||||
|
|
||||||
|
if args.f:
|
||||||
|
if not project_info:
|
||||||
|
sys.stderr.write('No project info found in %s.' % input_filename)
|
||||||
|
return 1
|
||||||
|
for field, value in sorted(project_info.items()):
|
||||||
|
sys.stdout.write('%s=%s\n' % (field, value))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
packages = set()
|
||||||
|
client_list = jsobj.get('client')
|
||||||
|
if client_list:
|
||||||
|
# Search for the user specified package in the file.
|
||||||
|
selected_package_name = ''
|
||||||
|
selected_client = client_list[0]
|
||||||
|
find_package_name = args.p
|
||||||
|
for client in client_list:
|
||||||
|
package_name = client.get('client_info', {}).get(
|
||||||
|
'android_client_info', {}).get('package_name', '')
|
||||||
|
if not package_name:
|
||||||
|
package_name = client.get('oauth_client', {}).get(
|
||||||
|
'android_info', {}).get('package_name', '')
|
||||||
|
if package_name:
|
||||||
|
if not selected_package_name:
|
||||||
|
selected_package_name = package_name
|
||||||
|
selected_client = client
|
||||||
|
if package_name == find_package_name:
|
||||||
|
selected_package_name = package_name
|
||||||
|
selected_client = client
|
||||||
|
packages.add(package_name)
|
||||||
|
|
||||||
|
if args.p and selected_package_name != find_package_name:
|
||||||
|
sys.stderr.write('No packages found in %s which match the package '
|
||||||
|
'name %s\n'
|
||||||
|
'\n'
|
||||||
|
'Found the following:\n'
|
||||||
|
'%s\n' % (input_filename, find_package_name,
|
||||||
|
'\n'.join(packages)))
|
||||||
|
return 1
|
||||||
|
|
||||||
|
client_api_key = selected_client.get('api_key')
|
||||||
|
if client_api_key:
|
||||||
|
client_api_key0 = client_api_key[0]
|
||||||
|
gen_string(root, 'google_api_key', client_api_key0.get('current_key'))
|
||||||
|
gen_string(root, 'google_crash_reporting_api_key',
|
||||||
|
client_api_key0.get('current_key'))
|
||||||
|
|
||||||
|
client_info = selected_client.get('client_info')
|
||||||
|
if client_info:
|
||||||
|
gen_string(root, 'google_app_id', client_info.get('mobilesdk_app_id'))
|
||||||
|
|
||||||
|
# Only include the first matching OAuth client ID per type.
|
||||||
|
client_id_web_parsed = False
|
||||||
|
client_id_android_parsed = False
|
||||||
|
|
||||||
|
oauth_client_list = selected_client.get('oauth_client')
|
||||||
|
if oauth_client_list:
|
||||||
|
for oauth_client in oauth_client_list:
|
||||||
|
client_type = oauth_client.get('client_type')
|
||||||
|
client_id = oauth_client.get('client_id')
|
||||||
|
if not (client_type and client_id): continue
|
||||||
|
if (client_type == OAUTH_CLIENT_TYPE_WEB and
|
||||||
|
not client_id_web_parsed):
|
||||||
|
gen_string(root, 'default_web_client_id', client_id)
|
||||||
|
client_id_web_parsed = True
|
||||||
|
if (client_type == OAUTH_CLIENT_TYPE_ANDROID_APP and
|
||||||
|
not client_id_android_parsed):
|
||||||
|
gen_string(root, 'default_android_client_id', client_id)
|
||||||
|
client_id_android_parsed = True
|
||||||
|
|
||||||
|
services = selected_client.get('services')
|
||||||
|
if services:
|
||||||
|
ads_service = services.get('ads_service')
|
||||||
|
if ads_service:
|
||||||
|
gen_string(root, 'test_banner_ad_unit_id',
|
||||||
|
ads_service.get('test_banner_ad_unit_id'))
|
||||||
|
gen_string(root, 'test_interstitial_ad_unit_id',
|
||||||
|
ads_service.get('test_interstitial_ad_unit_id'))
|
||||||
|
analytics_service = services.get('analytics_service')
|
||||||
|
if analytics_service:
|
||||||
|
analytics_property = analytics_service.get('analytics_property')
|
||||||
|
if analytics_property:
|
||||||
|
gen_string(root, 'ga_trackingId',
|
||||||
|
analytics_property.get('tracking_id'))
|
||||||
|
# enable this once we have an example if this service being present
|
||||||
|
# in the json data:
|
||||||
|
maps_service_enabled = False
|
||||||
|
if maps_service_enabled:
|
||||||
|
maps_service = services.get('maps_service')
|
||||||
|
if maps_service:
|
||||||
|
maps_api_key = maps_service.get('api_key')
|
||||||
|
if maps_api_key:
|
||||||
|
for k in range(0, len(maps_api_key)):
|
||||||
|
# generates potentially multiple of these keys, which is
|
||||||
|
# the same behavior as the java plugin.
|
||||||
|
gen_string(root, 'google_maps_key',
|
||||||
|
maps_api_key[k].get('maps_api_key'))
|
||||||
|
|
||||||
|
tree = ElementTree.ElementTree(root)
|
||||||
|
|
||||||
|
indent(root)
|
||||||
|
|
||||||
|
if args.l:
|
||||||
|
for package in sorted(packages):
|
||||||
|
if package:
|
||||||
|
sys.stdout.write(package + '\n')
|
||||||
|
else:
|
||||||
|
path = os.path.dirname(output_filename)
|
||||||
|
|
||||||
|
if path and not os.path.exists(path):
|
||||||
|
os.makedirs(path)
|
||||||
|
|
||||||
|
if not args.plist:
|
||||||
|
tree.write(output_filename, 'utf-8', True)
|
||||||
|
else:
|
||||||
|
with open(output_filename, 'w') as ofile:
|
||||||
|
ofile.write(json_string)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.exit(main())
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f18ed76c0f04ce0a65736104f913ef8
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Editor/generate_xml_from_google_services_json.py
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Firebase/FirebaseApp.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9bf777e8570954e5faa1c638fd0c68f7
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Firebase/FirebaseApp/Internal.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d8f2a4a0f471748a1865f7d363c9bdc6
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
6
Assets/Firebase/FirebaseApp/Internal/AssemblyInfo.cs
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
// Grant native C# Unity packages access to Firebase.App's internal helpers
|
||||||
|
[assembly: InternalsVisibleTo("Firebase.Functions")]
|
||||||
|
[assembly: InternalsVisibleTo("Firebase.FirebaseAI")]
|
||||||
|
[assembly: InternalsVisibleTo("Firebase.FirebaseAI.TestApp")]
|
||||||
11
Assets/Firebase/FirebaseApp/Internal/AssemblyInfo.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d640bc2403824e5599315e0050b99aeb
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/FirebaseApp/Internal/AssemblyInfo.cs
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
17
Assets/Firebase/FirebaseApp/Internal/Firebase.App.Internal.asmdef
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "Firebase.App.Internal",
|
||||||
|
"rootNamespace": "Firebase.Internal",
|
||||||
|
"references": [],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": true,
|
||||||
|
"precompiledReferences": [
|
||||||
|
"Firebase.App.dll",
|
||||||
|
"Firebase.Platform.dll"
|
||||||
|
],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9b4ce77d2be44f25af03d4cbf9bee9f9
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/FirebaseApp/Internal/Firebase.App.Internal.asmdef
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
461
Assets/Firebase/FirebaseApp/Internal/FirebaseInterops.cs
Executable file
@@ -0,0 +1,461 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2025 Google LLC
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Net.WebSockets;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Firebase.Internal
|
||||||
|
{
|
||||||
|
// Contains internal helper methods for interacting with other Firebase libraries.
|
||||||
|
internal static class FirebaseInterops
|
||||||
|
{
|
||||||
|
// The cached fields for FirebaseApp reflection.
|
||||||
|
private static PropertyInfo _dataCollectionProperty = null;
|
||||||
|
|
||||||
|
// The various App Check types needed to retrieve the token, cached via reflection on startup.
|
||||||
|
private static Type _appCheckType;
|
||||||
|
private static MethodInfo _appCheckGetInstanceMethod;
|
||||||
|
private static MethodInfo _appCheckGetTokenMethod;
|
||||||
|
private static MethodInfo _appCheckGetLimitedUseTokenMethod;
|
||||||
|
private static PropertyInfo _appCheckTokenResultProperty;
|
||||||
|
private static PropertyInfo _appCheckTokenTokenProperty;
|
||||||
|
// Used to determine if the App Check reflection initialized successfully, and should work.
|
||||||
|
private static bool _appCheckReflectionInitialized = false;
|
||||||
|
// The header used by the AppCheck token.
|
||||||
|
private const string appCheckHeader = "X-Firebase-AppCheck";
|
||||||
|
|
||||||
|
// The various Auth types needed to retrieve the token, cached via reflection on startup.
|
||||||
|
private static Type _authType;
|
||||||
|
private static MethodInfo _authGetAuthMethod;
|
||||||
|
private static PropertyInfo _authCurrentUserProperty;
|
||||||
|
private static MethodInfo _userTokenAsyncMethod;
|
||||||
|
private static PropertyInfo _userTokenTaskResultProperty;
|
||||||
|
// Used to determine if the Auth reflection initialized successfully, and should work.
|
||||||
|
private static bool _authReflectionInitialized = false;
|
||||||
|
// The header used by the AppCheck token.
|
||||||
|
private const string authHeader = "Authorization";
|
||||||
|
|
||||||
|
static FirebaseInterops()
|
||||||
|
{
|
||||||
|
InitializeAppReflection();
|
||||||
|
InitializeAppCheckReflection();
|
||||||
|
InitializeAuthReflection();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void LogError(string message)
|
||||||
|
{
|
||||||
|
#if FIREBASEAI_DEBUG_LOGGING
|
||||||
|
UnityEngine.Debug.LogError(message);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cache the methods needed for FirebaseApp reflection.
|
||||||
|
private static void InitializeAppReflection()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_dataCollectionProperty = typeof(FirebaseApp).GetProperty(
|
||||||
|
"IsDataCollectionDefaultEnabled",
|
||||||
|
BindingFlags.Instance | BindingFlags.NonPublic);
|
||||||
|
if (_dataCollectionProperty == null)
|
||||||
|
{
|
||||||
|
LogError("Could not find FirebaseApp.IsDataCollectionDefaultEnabled property via reflection.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (_dataCollectionProperty.PropertyType != typeof(bool))
|
||||||
|
{
|
||||||
|
LogError("FirebaseApp.IsDataCollectionDefaultEnabled is not a bool, " +
|
||||||
|
$"but is {_dataCollectionProperty.PropertyType}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LogError($"Failed to initialize FirebaseApp reflection: {e}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets the property FirebaseApp.IsDataCollectionDefaultEnabled.
|
||||||
|
public static bool GetIsDataCollectionDefaultEnabled(FirebaseApp firebaseApp)
|
||||||
|
{
|
||||||
|
if (firebaseApp == null || _dataCollectionProperty == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return (bool)_dataCollectionProperty.GetValue(firebaseApp);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LogError($"Error accessing 'IsDataCollectionDefaultEnabled': {e}");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SDK version to use if unable to find it.
|
||||||
|
private const string _unknownSdkVersion = "unknown";
|
||||||
|
private static readonly Lazy<string> _sdkVersionFetcher = new(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Get the type Firebase.VersionInfo from the assembly that defines FirebaseApp.
|
||||||
|
Type versionInfoType = typeof(FirebaseApp).Assembly.GetType("Firebase.VersionInfo");
|
||||||
|
if (versionInfoType == null)
|
||||||
|
{
|
||||||
|
LogError("Firebase.VersionInfo type not found via reflection");
|
||||||
|
return _unknownSdkVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Firebase.VersionInfo.SdkVersion
|
||||||
|
PropertyInfo sdkVersionProperty = versionInfoType.GetProperty(
|
||||||
|
"SdkVersion",
|
||||||
|
BindingFlags.Static | BindingFlags.NonPublic);
|
||||||
|
if (sdkVersionProperty == null)
|
||||||
|
{
|
||||||
|
LogError("Firebase.VersionInfo.SdkVersion property not found via reflection.");
|
||||||
|
return _unknownSdkVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sdkVersionProperty.GetValue(null) as string ?? _unknownSdkVersion;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LogError($"Error accessing SdkVersion via reflection: {e}");
|
||||||
|
return _unknownSdkVersion;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Gets the internal property Firebase.VersionInfo.SdkVersion
|
||||||
|
internal static string GetVersionInfoSdkVersion()
|
||||||
|
{
|
||||||
|
return _sdkVersionFetcher.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cache the various types and methods needed for AppCheck token retrieval.
|
||||||
|
private static void InitializeAppCheckReflection()
|
||||||
|
{
|
||||||
|
const string firebaseAppCheckTypeName = "Firebase.AppCheck.FirebaseAppCheck, Firebase.AppCheck";
|
||||||
|
const string getAppCheckTokenMethodName = "GetAppCheckTokenAsync";
|
||||||
|
const string getLimitedUseAppCheckTokenMethodName = "GetLimitedUseAppCheckTokenAsync";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Set this to false, to allow easy failing out via return.
|
||||||
|
_appCheckReflectionInitialized = false;
|
||||||
|
|
||||||
|
_appCheckType = Type.GetType(firebaseAppCheckTypeName);
|
||||||
|
if (_appCheckType == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the static method GetInstance(FirebaseApp app)
|
||||||
|
_appCheckGetInstanceMethod = _appCheckType.GetMethod(
|
||||||
|
"GetInstance", BindingFlags.Static | BindingFlags.Public, null,
|
||||||
|
new Type[] { typeof(FirebaseApp) }, null);
|
||||||
|
if (_appCheckGetInstanceMethod == null)
|
||||||
|
{
|
||||||
|
LogError("Could not find FirebaseAppCheck.GetInstance method via reflection.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the instance method GetAppCheckTokenAsync(bool forceRefresh)
|
||||||
|
_appCheckGetTokenMethod = _appCheckType.GetMethod(
|
||||||
|
getAppCheckTokenMethodName, BindingFlags.Instance | BindingFlags.Public, null,
|
||||||
|
new Type[] { typeof(bool) }, null);
|
||||||
|
if (_appCheckGetTokenMethod == null)
|
||||||
|
{
|
||||||
|
LogError($"Could not find {getAppCheckTokenMethodName} method via reflection.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the instance method GetLimitedUseAppCheckTokenAsync()
|
||||||
|
_appCheckGetLimitedUseTokenMethod = _appCheckType.GetMethod(
|
||||||
|
getLimitedUseAppCheckTokenMethodName, BindingFlags.Instance | BindingFlags.Public, null,
|
||||||
|
Type.EmptyTypes, null);
|
||||||
|
if (_appCheckGetLimitedUseTokenMethod == null)
|
||||||
|
{
|
||||||
|
LogError($"Could not find {getLimitedUseAppCheckTokenMethodName} method via reflection.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Should be Task<AppCheckToken>
|
||||||
|
Type appCheckTokenTaskType = _appCheckGetTokenMethod.ReturnType;
|
||||||
|
|
||||||
|
// Get the Result property from the Task<AppCheckToken>
|
||||||
|
_appCheckTokenResultProperty = appCheckTokenTaskType.GetProperty("Result");
|
||||||
|
if (_appCheckTokenResultProperty == null)
|
||||||
|
{
|
||||||
|
LogError("Could not find Result property on App Check token Task.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Should be AppCheckToken
|
||||||
|
Type appCheckTokenType = _appCheckTokenResultProperty.PropertyType;
|
||||||
|
|
||||||
|
_appCheckTokenTokenProperty = appCheckTokenType.GetProperty("Token");
|
||||||
|
if (_appCheckTokenTokenProperty == null)
|
||||||
|
{
|
||||||
|
LogError($"Could not find Token property on AppCheckToken.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_appCheckReflectionInitialized = true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LogError($"Exception during static initialization of FirebaseInterops: {e}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets the AppCheck Token, assuming there is one. Otherwise, returns null.
|
||||||
|
internal static async Task<string> GetAppCheckTokenAsync(FirebaseApp firebaseApp, bool limitedUse = false)
|
||||||
|
{
|
||||||
|
// If AppCheck reflection failed for any reason, nothing to do.
|
||||||
|
if (!_appCheckReflectionInitialized)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Get the FirebaseAppCheck instance for the current FirebaseApp
|
||||||
|
object appCheckInstance = _appCheckGetInstanceMethod.Invoke(null, new object[] { firebaseApp });
|
||||||
|
if (appCheckInstance == null)
|
||||||
|
{
|
||||||
|
LogError("Failed to get FirebaseAppCheck instance via reflection.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
object taskObject;
|
||||||
|
if (limitedUse)
|
||||||
|
{
|
||||||
|
taskObject = _appCheckGetLimitedUseTokenMethod.Invoke(appCheckInstance, null);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Invoke GetAppCheckTokenAsync(false) - returns a Task<AppCheckToken>
|
||||||
|
taskObject = _appCheckGetTokenMethod.Invoke(appCheckInstance, new object[] { false });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (taskObject is not Task appCheckTokenTask)
|
||||||
|
{
|
||||||
|
LogError($"Invoking GetToken did not return a Task.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Await the task to get the AppCheckToken result
|
||||||
|
await appCheckTokenTask;
|
||||||
|
|
||||||
|
// Check for exceptions in the task
|
||||||
|
if (appCheckTokenTask.IsFaulted)
|
||||||
|
{
|
||||||
|
LogError($"Error getting App Check token: {appCheckTokenTask.Exception}");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the Result property from the Task<AppCheckToken>
|
||||||
|
object tokenResult = _appCheckTokenResultProperty.GetValue(appCheckTokenTask); // This is the AppCheckToken struct
|
||||||
|
if (tokenResult == null)
|
||||||
|
{
|
||||||
|
LogError("App Check token result was null.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the Token property from the AppCheckToken struct
|
||||||
|
string finalToken = _appCheckTokenTokenProperty.GetValue(tokenResult) as string;
|
||||||
|
return finalToken;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// Log any exceptions during the reflection/invocation process
|
||||||
|
LogError($"An error occurred while trying to fetch App Check token: {e}");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cache the various types and methods needed for Auth token retrieval.
|
||||||
|
private static void InitializeAuthReflection()
|
||||||
|
{
|
||||||
|
const string firebaseAuthTypeName = "Firebase.Auth.FirebaseAuth, Firebase.Auth";
|
||||||
|
const string getTokenMethodName = "TokenAsync";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Set this to false, to allow easy failing out via return.
|
||||||
|
_authReflectionInitialized = false;
|
||||||
|
|
||||||
|
_authType = Type.GetType(firebaseAuthTypeName);
|
||||||
|
if (_authType == null)
|
||||||
|
{
|
||||||
|
// Auth assembly likely not present, fine to skip
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the static method GetAuth(FirebaseApp app):
|
||||||
|
_authGetAuthMethod = _authType.GetMethod(
|
||||||
|
"GetAuth", BindingFlags.Static | BindingFlags.Public, null,
|
||||||
|
new Type[] { typeof(FirebaseApp) }, null);
|
||||||
|
if (_authGetAuthMethod == null)
|
||||||
|
{
|
||||||
|
LogError("Could not find FirebaseAuth.GetAuth method via reflection.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the CurrentUser property from FirebaseAuth instance
|
||||||
|
_authCurrentUserProperty = _authType.GetProperty("CurrentUser", BindingFlags.Instance | BindingFlags.Public);
|
||||||
|
if (_authCurrentUserProperty == null)
|
||||||
|
{
|
||||||
|
LogError("Could not find FirebaseAuth.CurrentUser property via reflection.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This should be FirebaseUser type
|
||||||
|
Type userType = _authCurrentUserProperty.PropertyType;
|
||||||
|
|
||||||
|
// Get the TokenAsync(bool) method from FirebaseUser
|
||||||
|
_userTokenAsyncMethod = userType.GetMethod(
|
||||||
|
getTokenMethodName, BindingFlags.Instance | BindingFlags.Public, null,
|
||||||
|
new Type[] { typeof(bool) }, null);
|
||||||
|
if (_userTokenAsyncMethod == null)
|
||||||
|
{
|
||||||
|
LogError($"Could not find FirebaseUser.{getTokenMethodName}(bool) method via reflection.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The return type is Task<string>
|
||||||
|
Type tokenTaskType = _userTokenAsyncMethod.ReturnType;
|
||||||
|
|
||||||
|
// Get the Result property from Task<string>
|
||||||
|
_userTokenTaskResultProperty = tokenTaskType.GetProperty("Result");
|
||||||
|
if (_userTokenTaskResultProperty == null)
|
||||||
|
{
|
||||||
|
LogError("Could not find Result property on Auth token Task.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if Result property is actually a string
|
||||||
|
if (_userTokenTaskResultProperty.PropertyType != typeof(string))
|
||||||
|
{
|
||||||
|
LogError("Auth token Task's Result property is not a string, " +
|
||||||
|
$"but is {_userTokenTaskResultProperty.PropertyType}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_authReflectionInitialized = true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LogError($"Exception during static initialization of Auth reflection in FirebaseInterops: {e}");
|
||||||
|
_authReflectionInitialized = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets the Auth Token, assuming there is one. Otherwise, returns null.
|
||||||
|
internal static async Task<string> GetAuthTokenAsync(FirebaseApp firebaseApp)
|
||||||
|
{
|
||||||
|
// If Auth reflection failed for any reason, nothing to do.
|
||||||
|
if (!_authReflectionInitialized)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Get the FirebaseAuth instance for the given FirebaseApp.
|
||||||
|
object authInstance = _authGetAuthMethod.Invoke(null, new object[] { firebaseApp });
|
||||||
|
if (authInstance == null)
|
||||||
|
{
|
||||||
|
LogError("Failed to get FirebaseAuth instance via reflection.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the CurrentUser property
|
||||||
|
object currentUser = _authCurrentUserProperty.GetValue(authInstance);
|
||||||
|
if (currentUser == null)
|
||||||
|
{
|
||||||
|
// No user logged in, so no token
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoke TokenAsync(false) - returns a Task<string>
|
||||||
|
object taskObject = _userTokenAsyncMethod.Invoke(currentUser, new object[] { false });
|
||||||
|
if (taskObject is not Task tokenTask)
|
||||||
|
{
|
||||||
|
LogError("Invoking TokenAsync did not return a Task.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Await the task to get the token result
|
||||||
|
await tokenTask;
|
||||||
|
|
||||||
|
// Check for exceptions in the task
|
||||||
|
if (tokenTask.IsFaulted)
|
||||||
|
{
|
||||||
|
LogError($"Error getting Auth token: {tokenTask.Exception}");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the Result property (which is the string token)
|
||||||
|
return _userTokenTaskResultProperty.GetValue(tokenTask) as string;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// Log any exceptions during the reflection/invocation process
|
||||||
|
LogError($"An error occurred while trying to fetch Auth token: {e}");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adds the other Firebase tokens to the HttpRequest, as available.
|
||||||
|
internal static async Task AddFirebaseTokensAsync(HttpRequestMessage request, FirebaseApp firebaseApp, string authTokenPrefix = "Firebase", bool limitedUseAppCheckTokens = false)
|
||||||
|
{
|
||||||
|
string appCheckToken = await GetAppCheckTokenAsync(firebaseApp, limitedUseAppCheckTokens);
|
||||||
|
if (!string.IsNullOrEmpty(appCheckToken))
|
||||||
|
{
|
||||||
|
request.Headers.Add(appCheckHeader, appCheckToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
string authToken = await GetAuthTokenAsync(firebaseApp);
|
||||||
|
if (!string.IsNullOrEmpty(authToken))
|
||||||
|
{
|
||||||
|
request.Headers.Add(authHeader, $"{authTokenPrefix} {authToken}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adds the other Firebase tokens to the WebSocket, as available.
|
||||||
|
internal static async Task AddFirebaseTokensAsync(ClientWebSocket socket, FirebaseApp firebaseApp, string authTokenPrefix = "Firebase")
|
||||||
|
{
|
||||||
|
string appCheckToken = await GetAppCheckTokenAsync(firebaseApp);
|
||||||
|
if (!string.IsNullOrEmpty(appCheckToken))
|
||||||
|
{
|
||||||
|
socket.Options.SetRequestHeader(appCheckHeader, appCheckToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
string authToken = await GetAuthTokenAsync(firebaseApp);
|
||||||
|
if (!string.IsNullOrEmpty(authToken))
|
||||||
|
{
|
||||||
|
socket.Options.SetRequestHeader(authHeader, $"{authTokenPrefix} {authToken}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bc30602676ea492eab91b6ff7cd6ba3b
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/FirebaseApp/Internal/FirebaseInterops.cs
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
89
Assets/Firebase/FirebaseApp/Internal/HttpHelpers.cs
Executable file
@@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2025 Google LLC
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Firebase.Internal
|
||||||
|
{
|
||||||
|
// Helper functions to help handling the Http calls.
|
||||||
|
internal static class HttpHelpers
|
||||||
|
{
|
||||||
|
internal static async Task SetRequestHeaders(HttpRequestMessage request, FirebaseApp firebaseApp, string authPrefix = "Firebase", bool limitedUseAppCheckTokens = false)
|
||||||
|
{
|
||||||
|
request.Headers.Add("x-goog-api-key", firebaseApp.Options.ApiKey);
|
||||||
|
string version = FirebaseInterops.GetVersionInfoSdkVersion();
|
||||||
|
request.Headers.Add("x-goog-api-client", $"gl-csharp/8.0 fire/{version}");
|
||||||
|
if (FirebaseInterops.GetIsDataCollectionDefaultEnabled(firebaseApp))
|
||||||
|
{
|
||||||
|
request.Headers.Add("X-Firebase-AppId", firebaseApp.Options.AppId);
|
||||||
|
request.Headers.Add("X-Firebase-AppVersion", UnityEngine.Application.version);
|
||||||
|
}
|
||||||
|
// Add additional Firebase tokens to the header.
|
||||||
|
await FirebaseInterops.AddFirebaseTokensAsync(request, firebaseApp, authPrefix, limitedUseAppCheckTokens);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to throw an exception if the Http Response indicates failure.
|
||||||
|
// Useful as EnsureSuccessStatusCode can leave out relevant information.
|
||||||
|
internal static async Task ValidateHttpResponse(HttpResponseMessage response)
|
||||||
|
{
|
||||||
|
if (response.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Status code indicates failure, try to read the content for more details
|
||||||
|
string errorContent = "No error content available.";
|
||||||
|
if (response.Content != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
errorContent = await response.Content.ReadAsStringAsync();
|
||||||
|
}
|
||||||
|
catch (Exception readEx)
|
||||||
|
{
|
||||||
|
// Handle being unable to read the content
|
||||||
|
errorContent = $"Failed to read error content: {readEx.Message}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Construct the exception with as much information as possible.
|
||||||
|
var ex = new HttpRequestException(
|
||||||
|
$"HTTP request failed with status code: {(int)response.StatusCode} ({response.ReasonPhrase}).\n" +
|
||||||
|
$"Error Content: {errorContent}",
|
||||||
|
null
|
||||||
|
);
|
||||||
|
ex.Data["StatusCode"] = response.StatusCode;
|
||||||
|
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extension to get the StatusCode from the exception.
|
||||||
|
internal static class HttpRequestExceptionExtensions
|
||||||
|
{
|
||||||
|
internal static HttpStatusCode? GetStatusCode(this HttpRequestException exception)
|
||||||
|
{
|
||||||
|
if (exception.Data.Contains("StatusCode"))
|
||||||
|
{
|
||||||
|
return (HttpStatusCode)exception.Data["StatusCode"];
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Firebase/FirebaseApp/Internal/HttpHelpers.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: edaf55a8a9944057852d797b4558bf8a
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/FirebaseApp/Internal/HttpHelpers.cs
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
9
Assets/Firebase/FirebaseApp/Internal/link.xml
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
<linker>
|
||||||
|
<assembly fullname="Firebase.Auth">
|
||||||
|
<type fullname="Firebase.Auth.FirebaseAuth" preserve="all"/>
|
||||||
|
<type fullname="Firebase.Auth.FirebaseUser" preserve="all"/>
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="Firebase.AppCheck">
|
||||||
|
<type fullname="Firebase.AppCheck.FirebaseAppCheck" preserve="all"/>
|
||||||
|
</assembly>
|
||||||
|
</linker>
|
||||||
11
Assets/Firebase/FirebaseApp/Internal/link.xml.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 178c4b1924574f9c95f7a7f28adfd218
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/FirebaseApp/Internal/link.xml
|
||||||
|
timeCreated: 1480838400
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Firebase/Plugins.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bece1470ff1994d9b94d54ddfdd01fb2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Firebase/Plugins/Firebase.Analytics.dll
Executable file
81
Assets/Firebase/Plugins/Firebase.Analytics.dll.meta
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 816270c2a2a348e59cb9b7b096a24f50
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Plugins/Firebase.Analytics.dll
|
||||||
|
timeCreated: 1480838400
|
||||||
|
PluginImporter:
|
||||||
|
serializedVersion: 1
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
isPreloaded: 0
|
||||||
|
platformData:
|
||||||
|
Android:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
Any:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Editor:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: AnyOS
|
||||||
|
Linux:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86
|
||||||
|
Linux64:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
LinuxUniversal:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
OSXIntel:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86
|
||||||
|
OSXIntel64:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
OSXUniversal:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
Web:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
WebStreamed:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Win:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86
|
||||||
|
Win64:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
WindowsStoreApps:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
iOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
tvOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Firebase/Plugins/Firebase.App.dll
Executable file
81
Assets/Firebase/Plugins/Firebase.App.dll.meta
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7311924048bd457bac6d713576c952da
|
||||||
|
labels:
|
||||||
|
- gvh
|
||||||
|
- gvh_version-13.11.0
|
||||||
|
- gvhp_exportpath-Firebase/Plugins/Firebase.App.dll
|
||||||
|
timeCreated: 1480838400
|
||||||
|
PluginImporter:
|
||||||
|
serializedVersion: 1
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
isPreloaded: 0
|
||||||
|
platformData:
|
||||||
|
Android:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
Any:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Editor:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: AnyOS
|
||||||
|
Linux:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86
|
||||||
|
Linux64:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
LinuxUniversal:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
OSXIntel:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86
|
||||||
|
OSXIntel64:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
OSXUniversal:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
Web:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
WebStreamed:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
Win:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86
|
||||||
|
Win64:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
WindowsStoreApps:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
iOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
tvOS:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||