diff --git a/Assets/LiveOpsExamples.meta b/Assets/LiveOpsExamples.meta deleted file mode 100644 index ee1b726..0000000 --- a/Assets/LiveOpsExamples.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7a3b8c1d9e2f4a5b6c7d8e9f0a1b2c3d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset b/Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset deleted file mode 100644 index f21cc14..0000000 --- a/Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset +++ /dev/null @@ -1,20 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8cd851b86da394b9ca06595f889a49b3, type: 3} - m_Name: CozyCollectorSpriteLibrary - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.CozyCollectorSpriteLibrary - background: {fileID: 21300000, guid: e8139865590c408789e137275b78e239, type: 3} - player: {fileID: 21300000, guid: 695606af95a0452790cf9228c0cc9f76, type: 3} - moonberry: {fileID: 21300000, guid: 8b3f9a4a409e412780aa51d52bfdb7b0, type: 3} - acorn: {fileID: 21300000, guid: ca0ac79e8cb24691b33208b45e68fe13, type: 3} - star: {fileID: 21300000, guid: b0d70332788c4ff7831161da4a2e71ff, type: 3} - snack: {fileID: 21300000, guid: c41fcc3b35c944ffa18a34b6c4dc2cd6, type: 3} diff --git a/Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset.meta b/Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset.meta deleted file mode 100644 index 93cb412..0000000 --- a/Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 06fcf2ebf537145de9bab548922829e1 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Editor.meta b/Assets/LiveOpsExamples/Editor.meta deleted file mode 100644 index e4b4c24..0000000 --- a/Assets/LiveOpsExamples/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Assets.cs b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Assets.cs deleted file mode 100644 index ad5b159..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Assets.cs +++ /dev/null @@ -1,60 +0,0 @@ -using LiveOpsExamples; -using UnityEditor; -using UnityEngine; - -namespace LiveOpsExamples.Editor -{ - /// - /// Bakes the Cozy Collector ScriptableObject assets. Idempotent: writes to - /// fixed asset paths and overwrites whatever is already there. - /// - public static partial class CozyCollectorBake - { - private const string SpriteLibraryAssetPath = "Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset"; - private const string SpriteFolderPath = "Assets/LiveOpsExamples/Sprites"; - - [MenuItem("Tools/LiveOps/Bake Cozy Collector Assets")] - public static void BakeAssets() - { - var library = AssetDatabase.LoadAssetAtPath(SpriteLibraryAssetPath); - if (library == null) - { - library = ScriptableObject.CreateInstance(); - AssetDatabase.CreateAsset(library, SpriteLibraryAssetPath); - } - - var serialized = new SerializedObject(library); - AssignLibrarySprite(serialized, "background", "cozy-camp-bg.png"); - AssignLibrarySprite(serialized, "player", "player.png"); - AssignLibrarySprite(serialized, "moonberry", "moonberry.png"); - AssignLibrarySprite(serialized, "acorn", "acorn.png"); - AssignLibrarySprite(serialized, "star", "star.png"); - AssignLibrarySprite(serialized, "snack", "snack.png"); - serialized.ApplyModifiedPropertiesWithoutUndo(); - - EditorUtility.SetDirty(library); - AssetDatabase.SaveAssets(); - Debug.Log($"Cozy Collector sprite library baked: {SpriteLibraryAssetPath}"); - } - - private static void AssignLibrarySprite(SerializedObject serialized, string fieldName, string fileName) - { - var spritePath = $"{SpriteFolderPath}/{fileName}"; - var sprite = AssetDatabase.LoadAssetAtPath(spritePath); - if (sprite == null) - { - Debug.LogError($"CozyCollectorBake: sprite not found at {spritePath}"); - return; - } - - var property = serialized.FindProperty(fieldName); - if (property == null) - { - Debug.LogError($"CozyCollectorBake: field '{fieldName}' not found on {nameof(CozyCollectorSpriteLibrary)}"); - return; - } - - property.objectReferenceValue = sprite; - } - } -} diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Assets.cs.meta b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Assets.cs.meta deleted file mode 100644 index ca1eafa..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Assets.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 640a29c33f5384caebacc7de21235ab8 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Prefabs.cs b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Prefabs.cs deleted file mode 100644 index b243ac9..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Prefabs.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System.IO; -using LiveOpsExamples; -using TMPro; -using UnityEditor; -using UnityEngine; - -namespace LiveOpsExamples.Editor -{ - /// - /// Bakes the Cozy Collector gameplay prefabs. Idempotent: every prefab is - /// rebuilt from code and saved over the same fixed asset path. - /// - public static partial class CozyCollectorBake - { - private const string PrefabFolderPath = "Assets/LiveOpsExamples/Prefabs"; - private const string SnackSpritePath = "Assets/LiveOpsExamples/Sprites/snack.png"; - - private static readonly Color AccentColor = ParseHexColor("#FFD27D"); - - [MenuItem("Tools/LiveOps/Bake Cozy Collector Prefabs")] - public static void BakePrefabs() - { - EnsureAssetFolder(PrefabFolderPath); - - SaveBakedPrefab(BuildSnackPrefab(), $"{PrefabFolderPath}/Snack.prefab"); - SaveBakedPrefab(BuildScorePopupPrefab(), $"{PrefabFolderPath}/ScorePopup.prefab"); - SaveBakedPrefab(BuildCollectBurstPrefab(), $"{PrefabFolderPath}/CollectBurst.prefab"); - - AssetDatabase.SaveAssets(); - Debug.Log($"Cozy Collector prefabs baked under {PrefabFolderPath}"); - } - - private static GameObject BuildSnackPrefab() - { - var go = new GameObject("Snack"); - - var collider = go.AddComponent(); - collider.isTrigger = true; - collider.radius = 0.3f; - - var renderer = go.AddComponent(); - var sprite = AssetDatabase.LoadAssetAtPath(SnackSpritePath); - if (sprite == null) - { - Debug.LogError($"CozyCollectorBake: sprite not found at {SnackSpritePath}"); - } - else - { - renderer.sprite = sprite; - // Phaser setDisplaySize(52, 52) at 100 PPU -> 0.52 x 0.52 world units. - var scale = new Vector3( - 0.52f / sprite.bounds.size.x, - 0.52f / sprite.bounds.size.y, - 1f); - go.transform.localScale = scale; - // Phaser pickup radius = 0.42 * 52px ~= 0.22 world units; a circle - // collider's world radius scales by the largest transform axis. - collider.radius = 0.22f / Mathf.Max(scale.x, scale.y); - } - - go.AddComponent(); - return go; - } - - private static GameObject BuildScorePopupPrefab() - { - var go = new GameObject("ScorePopup"); - - var label = go.AddComponent(); - AssignDefaultFont(label); - label.text = "+10"; - label.fontSize = 2.5f; - label.alignment = TextAlignmentOptions.Center; - label.color = Color.white; - - var view = go.AddComponent(); - WireObjectFields(view, ("label", label)); - return go; - } - - private static GameObject BuildCollectBurstPrefab() - { - var go = new GameObject("CollectBurst"); - var particles = go.AddComponent(); - - var main = particles.main; - main.duration = 0.5f; - main.loop = false; - main.playOnAwake = true; - main.startLifetime = 0.45f; - main.startSpeed = 2f; - main.startSize = 0.15f; - main.gravityModifier = 0f; - main.startColor = AccentColor; - main.stopAction = ParticleSystemStopAction.Destroy; - - var emission = particles.emission; - emission.rateOverTime = 0f; - emission.SetBursts(new[] { new ParticleSystem.Burst(0f, 9) }); - - var shape = particles.shape; - shape.shapeType = ParticleSystemShapeType.Sphere; - shape.radius = 0.1f; - - var renderer = particles.GetComponent(); - renderer.renderMode = ParticleSystemRenderMode.Billboard; - var material = AssetDatabase.GetBuiltinExtraResource("Default-Particle.mat"); - if (material == null) - material = AssetDatabase.GetBuiltinExtraResource("Sprites-Default.mat"); - if (material == null) - Debug.LogWarning("CozyCollectorBake: no builtin particle material resolved, assign one manually."); - else - renderer.sharedMaterial = material; - - return go; - } - - private static Color ParseHexColor(string hex) - { - return ColorUtility.TryParseHtmlString(hex, out var color) ? color : Color.magenta; - } - - private static void EnsureAssetFolder(string folderPath) - { - if (AssetDatabase.IsValidFolder(folderPath)) - return; - - var parent = Path.GetDirectoryName(folderPath)?.Replace('\\', '/'); - if (!string.IsNullOrEmpty(parent)) - EnsureAssetFolder(parent); - AssetDatabase.CreateFolder(parent, Path.GetFileName(folderPath)); - } - - private static void SaveBakedPrefab(GameObject go, string path) - { - PrefabUtility.SaveAsPrefabAsset(go, path); - Object.DestroyImmediate(go); - } - - private static void WireObjectFields(Object component, params (string Field, Object Value)[] fields) - { - var serialized = new SerializedObject(component); - foreach (var (field, value) in fields) - { - var property = serialized.FindProperty(field); - if (property == null) - { - Debug.LogError($"CozyCollectorBake: field '{field}' not found on {component.GetType().Name}"); - continue; - } - - property.objectReferenceValue = value; - } - - serialized.ApplyModifiedPropertiesWithoutUndo(); - } - - private static void AssignDefaultFont(TMP_Text text) - { - if (TMP_Settings.defaultFontAsset != null) - text.font = TMP_Settings.defaultFontAsset; - else - Debug.LogWarning("CozyCollectorBake: TMP default font asset is not set, assign a font manually."); - } - } -} diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Prefabs.cs.meta b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Prefabs.cs.meta deleted file mode 100644 index 7d0bebc..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Prefabs.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5d0f038b4a90c45a8a95bf4f37221e78 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Scene.cs b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Scene.cs deleted file mode 100644 index 4d4e338..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Scene.cs +++ /dev/null @@ -1,258 +0,0 @@ -using System.Collections.Generic; -using RudderSdk.Unity; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEngine; - -namespace LiveOpsExamples.Editor -{ - /// - /// Bakes the Cozy Collector demo scene (world + camera + game setup) and saves it - /// to . UI is built by the CozyCollectorBake.Ui part. - /// Re-running overwrites the same scene asset. - /// - public static partial class CozyCollectorBake - { - private const string ScenePath = "Assets/LiveOpsExamples/LiveOpsCozyCollector.unity"; - private const string BackgroundSpritePath = "Assets/LiveOpsExamples/Sprites/cozy-camp-bg.png"; - private const string PlayerSpritePath = "Assets/LiveOpsExamples/Sprites/player.png"; - private const string ConfigurationPath = "Assets/LiveOpsLocal.asset"; - private const string SpriteLibraryPath = "Assets/LiveOpsExamples/CozyCollectorSpriteLibrary.asset"; - private const string SnackPrefabPath = "Assets/LiveOpsExamples/Prefabs/Snack.prefab"; - private const string ScorePopupPrefabPath = "Assets/LiveOpsExamples/Prefabs/ScorePopup.prefab"; - private const string CollectBurstPrefabPath = "Assets/LiveOpsExamples/Prefabs/CollectBurst.prefab"; - - // The Phaser field is 1280x720 px at 100 PPU -> 12.8x7.2 world units. - private const float FieldWidthUnits = 12.8f; - private const float FieldHeightUnits = 7.2f; - - private static readonly Color CameraBackgroundColor = new Color(0.10f, 0.08f, 0.13f); - - [MenuItem("Tools/LiveOps/Bake Cozy Collector (All)")] - public static void BakeAll() - { - BakeAssets(); - BakePrefabs(); - BakeScene(); - AssetDatabase.SaveAssets(); - } - - [MenuItem("Tools/LiveOps/Bake Cozy Collector Scene")] - public static void BakeScene() - { - var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single); - - BuildSceneCamera(); - BuildSceneBackground(); - - var world = BuildSceneWorld(out var playerRenderer, out var spawner, out var snacksParent); - var controller = BuildSceneGameSetup(world); - - WireSceneWorld(world, playerRenderer, spawner, controller); - WireSceneSpawner(spawner, snacksParent); - - BuildUi(controller, world); - - EditorSceneManager.SaveScene(scene, ScenePath); - AddSceneToBuildSettings(); - AssetDatabase.SaveAssets(); - - Debug.Log($"[CozyCollectorBake] Scene saved to {ScenePath}."); - } - - private static void BuildSceneCamera() - { - var cameraGo = new GameObject("Main Camera"); - cameraGo.tag = "MainCamera"; - cameraGo.transform.position = new Vector3(0f, 0f, -10f); - - var camera = cameraGo.AddComponent(); - camera.orthographic = true; - camera.orthographicSize = FieldHeightUnits / 2f; - camera.clearFlags = CameraClearFlags.SolidColor; - camera.backgroundColor = CameraBackgroundColor; - // Game field occupies the left 75% of the screen; the right side hosts the UI rail. - camera.rect = new Rect(0f, 0f, 0.75f, 1f); - } - - private static void BuildSceneBackground() - { - var backgroundGo = new GameObject("Background"); - var renderer = backgroundGo.AddComponent(); - renderer.sortingOrder = -10; - - var sprite = AssetDatabase.LoadAssetAtPath(BackgroundSpritePath); - if (sprite == null) - { - Debug.LogError($"[CozyCollectorBake] Background sprite not found at {BackgroundSpritePath}."); - return; - } - - renderer.sprite = sprite; - var size = sprite.bounds.size; - backgroundGo.transform.localScale = new Vector3( - size.x > 0f ? FieldWidthUnits / size.x : 1f, - size.y > 0f ? FieldHeightUnits / size.y : 1f, - 1f); - } - - private static GameWorld BuildSceneWorld( - out SpriteRenderer playerRenderer, - out SnackSpawner spawner, - out Transform snacksParent) - { - var worldGo = new GameObject("World"); - var world = worldGo.AddComponent(); - - var playerGo = new GameObject("Player"); - playerGo.transform.SetParent(worldGo.transform, false); - playerRenderer = playerGo.AddComponent(); - playerRenderer.sprite = AssetDatabase.LoadAssetAtPath(PlayerSpritePath); - - var colliderRadius = 0.3f; - if (playerRenderer.sprite == null) - { - Debug.LogError($"[CozyCollectorBake] Player sprite not found at {PlayerSpritePath}."); - } - else - { - // Phaser setDisplaySize(82, 108) at 100 PPU -> 0.82 x 1.08 world units. - var bounds = playerRenderer.sprite.bounds.size; - var scale = new Vector3(0.82f / bounds.x, 1.08f / bounds.y, 1f); - playerGo.transform.localScale = scale; - // Phaser body is ~0.45x0.55 world units; a circle collider's world - // radius scales by the largest transform axis. - colliderRadius = 0.24f / Mathf.Max(scale.x, scale.y); - } - - var body = playerGo.AddComponent(); - body.bodyType = RigidbodyType2D.Kinematic; - body.simulated = true; - body.gravityScale = 0f; - - // Non-trigger collider so the snacks' trigger colliders fire OnTriggerEnter2D. - var collider = playerGo.AddComponent(); - collider.radius = colliderRadius; - collider.isTrigger = false; - - var snacksGo = new GameObject("Snacks"); - snacksGo.transform.SetParent(worldGo.transform, false); - snacksParent = snacksGo.transform; - - var spawnerGo = new GameObject("Spawner"); - spawnerGo.transform.SetParent(worldGo.transform, false); - spawner = spawnerGo.AddComponent(); - - return world; - } - - private static CozyCollectorController BuildSceneGameSetup(GameWorld world) - { - var setupGo = new GameObject("GameSetup"); - - var rudder = setupGo.AddComponent(); - var configuration = AssetDatabase.LoadAssetAtPath(ConfigurationPath); - if (configuration == null) - { - Debug.LogError($"[CozyCollectorBake] RudderConfiguration not found at {ConfigurationPath}."); - } - else - { - SetSceneReference(rudder, "_configuration", configuration); - } - - var controller = setupGo.AddComponent(); - SetSceneReference(controller, "world", world); - return controller; - } - - private static void WireSceneWorld( - GameWorld world, - SpriteRenderer playerRenderer, - SnackSpawner spawner, - CozyCollectorController controller) - { - SetSceneReference(world, "player", playerRenderer); - SetSceneReference(world, "spawner", spawner); - SetSceneReference(world, "controller", controller); - // moveMin/moveMax keep the component defaults (-6,-3.2)/(6,3.2). - - var scorePopupPrefab = LoadScenePrefabComponent(ScorePopupPrefabPath); - if (scorePopupPrefab != null) - { - SetSceneReference(world, "scorePopupPrefab", scorePopupPrefab); - } - - var collectBurstPrefab = LoadScenePrefabComponent(CollectBurstPrefabPath); - if (collectBurstPrefab != null) - { - SetSceneReference(world, "collectBurstPrefab", collectBurstPrefab); - } - } - - private static void WireSceneSpawner(SnackSpawner spawner, Transform snacksParent) - { - var snackPrefab = LoadScenePrefabComponent(SnackPrefabPath); - if (snackPrefab != null) - { - SetSceneReference(spawner, "prefab", snackPrefab); - } - - var library = AssetDatabase.LoadAssetAtPath(SpriteLibraryPath); - if (library == null) - { - Debug.LogError($"[CozyCollectorBake] Sprite library not found at {SpriteLibraryPath}. " + - "Run Tools/LiveOps/Bake Cozy Collector (All) first."); - } - else - { - SetSceneReference(spawner, "library", library); - } - - SetSceneReference(spawner, "parent", snacksParent); - // spawnMin/spawnMax keep the component defaults. - } - - private static void AddSceneToBuildSettings() - { - var scenes = new List(EditorBuildSettings.scenes); - foreach (var entry in scenes) - { - if (entry.path == ScenePath) - { - return; - } - } - - scenes.Add(new EditorBuildSettingsScene(ScenePath, true)); - EditorBuildSettings.scenes = scenes.ToArray(); - } - - private static T LoadScenePrefabComponent(string path) where T : Component - { - var prefab = AssetDatabase.LoadAssetAtPath(path); - var component = prefab != null ? prefab.GetComponent() : null; - if (component == null) - { - Debug.LogError($"[CozyCollectorBake] Prefab with {typeof(T).Name} not found at {path}. " + - "Run Tools/LiveOps/Bake Cozy Collector (All) first; the scene is saved with empty references."); - } - - return component; - } - - private static void SetSceneReference(Object target, string propertyName, Object value) - { - var serialized = new SerializedObject(target); - var property = serialized.FindProperty(propertyName); - if (property == null) - { - Debug.LogError($"[CozyCollectorBake] Property '{propertyName}' not found on {target.GetType().Name}."); - return; - } - - property.objectReferenceValue = value; - serialized.ApplyModifiedPropertiesWithoutUndo(); - } - } -} diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Scene.cs.meta b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Scene.cs.meta deleted file mode 100644 index 9ce19b4..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Scene.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 9b06747933b8c458b8262e8516634b14 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Ui.cs b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Ui.cs deleted file mode 100644 index f5b03ab..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Ui.cs +++ /dev/null @@ -1,144 +0,0 @@ -using System; -using System.Reflection; -using LiveOpsExamples; -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; -using Object = UnityEngine.Object; - -namespace LiveOpsExamples.Editor -{ - /// - /// Builds the Cozy Collector UI: a GameObject with a PanelRenderer (PanelSettings + - /// CozyCollectorUI.uxml) and all panel components wired through serialized - /// references. The PanelSettings asset is created programmatically when missing. - /// Called from . - /// - public static partial class CozyCollectorBake - { - private const string UiFolderPath = "Assets/LiveOpsExamples/UI"; - private const string UiPanelSettingsPath = UiFolderPath + "/CozyCollectorPanelSettings.asset"; - private const string UiDocumentAssetPath = UiFolderPath + "/CozyCollectorUI.uxml"; - private const string UiLogRowTemplatePath = UiFolderPath + "/LogRow.uxml"; - private const string UiToastTemplatePath = UiFolderPath + "/ToastRow.uxml"; - private const string UiShopOfferRowTemplatePath = UiFolderPath + "/ShopOfferRow.uxml"; - private const string UiBackpackItemRowTemplatePath = UiFolderPath + "/BackpackItemRow.uxml"; - private const string UiLeaderboardRowTemplatePath = UiFolderPath + "/LeaderboardRow.uxml"; - - private static void BuildUi(CozyCollectorController controller, GameWorld world) - { - var panelSettings = GetOrCreatePanelSettings(); - var visualTree = LoadUiAsset(UiDocumentAssetPath); - - var uiGo = new GameObject("UI"); - var panelRenderer = uiGo.AddComponent(); - panelRenderer.panelSettings = panelSettings; - if (visualTree != null) - { - panelRenderer.visualTreeAsset = visualTree; - } - - WirePanel(uiGo.AddComponent(), panelRenderer, controller); - WirePanel(uiGo.AddComponent(), panelRenderer, controller); - - var eventInspector = uiGo.AddComponent(); - WirePanel(eventInspector, panelRenderer, controller); - WireTemplate(eventInspector, "logRowTemplate", UiLogRowTemplatePath); - - var hud = uiGo.AddComponent(); - WirePanel(hud, panelRenderer, controller); - SetSceneReference(hud, "world", world); - - var toasts = uiGo.AddComponent(); - WirePanel(toasts, panelRenderer, controller); - WireTemplate(toasts, "toastTemplate", UiToastTemplatePath); - - WirePanel(uiGo.AddComponent(), panelRenderer, controller); - WirePanel(uiGo.AddComponent(), panelRenderer, controller); - - var shop = uiGo.AddComponent(); - WirePanel(shop, panelRenderer, controller); - WireTemplate(shop, "shopOfferRowTemplate", UiShopOfferRowTemplatePath); - - var backpack = uiGo.AddComponent(); - WirePanel(backpack, panelRenderer, controller); - WireTemplate(backpack, "backpackItemRowTemplate", UiBackpackItemRowTemplatePath); - var spriteLibrary = AssetDatabase.LoadAssetAtPath(SpriteLibraryPath); - if (spriteLibrary == null) - { - Debug.LogError($"[CozyCollectorBake] Sprite library not found at {SpriteLibraryPath}. " + - "Run Tools/LiveOps/Bake Cozy Collector (All) first."); - } - else - { - SetSceneReference(backpack, "spriteLibrary", spriteLibrary); - } - - WirePanel(uiGo.AddComponent(), panelRenderer, controller); - - var roundResult = uiGo.AddComponent(); - WirePanel(roundResult, panelRenderer, controller); - WireTemplate(roundResult, "leaderboardRowTemplate", UiLeaderboardRowTemplatePath); - } - - private static void WirePanel(MonoBehaviour panel, PanelRenderer panelRenderer, CozyCollectorController controller) - { - SetSceneReference(panel, "panelRenderer", panelRenderer); - SetSceneReference(panel, "controller", controller); - } - - private static void WireTemplate(MonoBehaviour panel, string fieldName, string templatePath) - { - var template = LoadUiAsset(templatePath); - if (template != null) - { - SetSceneReference(panel, fieldName, template); - } - } - - private static T LoadUiAsset(string path) where T : Object - { - var asset = AssetDatabase.LoadAssetAtPath(path); - if (asset == null) - { - Debug.LogError($"[CozyCollectorBake] {typeof(T).Name} not found at {path}. " + - "The scene is saved with an empty reference."); - } - - return asset; - } - - private static PanelSettings GetOrCreatePanelSettings() - { - var settings = AssetDatabase.LoadAssetAtPath(UiPanelSettingsPath); - if (settings != null) - { - return settings; - } - - EnsureAssetFolder(UiFolderPath); - - settings = ScriptableObject.CreateInstance(); - settings.scaleMode = PanelScaleMode.ScaleWithScreenSize; - settings.referenceResolution = new Vector2Int(1600, 900); - settings.screenMatchMode = PanelScreenMatchMode.MatchWidthOrHeight; - settings.match = 0.5f; - - var defaultTheme = LoadDefaultRuntimeTheme(); - if (defaultTheme != null) - { - settings.themeStyleSheet = defaultTheme; - } - - AssetDatabase.CreateAsset(settings, UiPanelSettingsPath); - return settings; - } - - private static ThemeStyleSheet LoadDefaultRuntimeTheme() - { - var themeUtility = Type.GetType("UnityEditor.UIElements.ThemeUtility, UnityEditor.UIElementsModule"); - var property = themeUtility?.GetProperty("builtInDefaultRuntimeTheme", BindingFlags.Static | BindingFlags.NonPublic); - return property?.GetValue(null) as ThemeStyleSheet; - } - } -} diff --git a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Ui.cs.meta b/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Ui.cs.meta deleted file mode 100644 index a15e4ea..0000000 --- a/Assets/LiveOpsExamples/Editor/CozyCollectorBake.Ui.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 4ffeef7dc98af46a8b8bf186f4e2073b \ No newline at end of file diff --git a/Assets/LiveOpsExamples/LiveOpsCozyCollector.unity b/Assets/LiveOpsExamples/LiveOpsCozyCollector.unity deleted file mode 100644 index 76f882e..0000000 --- a/Assets/LiveOpsExamples/LiveOpsCozyCollector.unity +++ /dev/null @@ -1,950 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 10 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 13 - m_BakeOnSceneLoad: 0 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 2 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 1 - m_PVRFilteringGaussRadiusAO: 1 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &329179444 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 329179445} - m_Layer: 0 - m_Name: Snacks - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &329179445 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 329179444} - 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: 616881063} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &616881061 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 616881063} - - component: {fileID: 616881062} - m_Layer: 0 - m_Name: World - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &616881062 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 616881061} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 952f52af0af8546eeab332b11e2e4bb7, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.GameWorld - player: {fileID: 1781499121} - spawner: {fileID: 1544944037} - controller: {fileID: 853162496} - scorePopupPrefab: {fileID: 2163815420330336319, guid: 77687e92645dc450d8f79fbb91face30, - type: 3} - collectBurstPrefab: {fileID: 4700352299658891627, guid: 9f08d0082395f4a36b1a41e5e929c33f, - type: 3} - moveMin: {x: -6, y: -3.2} - moveMax: {x: 6, y: 3.2} ---- !u!4 &616881063 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 616881061} - 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: - - {fileID: 1781499118} - - {fileID: 329179445} - - {fileID: 1544944038} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &853162495 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 853162498} - - component: {fileID: 853162497} - - component: {fileID: 853162496} - m_Layer: 0 - m_Name: GameSetup - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &853162496 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853162495} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 05ab47060c2ef4476800002c4a956b85, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.CozyCollectorController - world: {fileID: 616881062} ---- !u!114 &853162497 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853162495} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: efb778515f4ca44289f365faa2acecd7, type: 3} - m_Name: - m_EditorClassIdentifier: Rudder.Unity::RudderSdk.Unity.Rudder - _configuration: {fileID: 11400000, guid: 98d531126f0d748ceacfb85bdd959e81, type: 2} ---- !u!4 &853162498 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853162495} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &865861683 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 865861685} - - component: {fileID: 865861684} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!20 &865861684 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 865861683} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.1, g: 0.08, b: 0.13, a: 1} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0.75 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 1 - orthographic size: 3.6 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &865861685 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 865861683} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1077348680 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1077348682} - - component: {fileID: 1077348681} - m_Layer: 0 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!212 &1077348681 -SpriteRenderer: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1077348680} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: -10 - m_MaskInteraction: 0 - m_Sprite: {fileID: 21300000, guid: e8139865590c408789e137275b78e239, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 16.72, y: 9.41} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_SpriteSortPoint: 0 - m_BlendShapeWeights: [] ---- !u!4 &1077348682 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1077348680} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.76555026, y: 0.76514345, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1544944036 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1544944038} - - component: {fileID: 1544944037} - m_Layer: 0 - m_Name: Spawner - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1544944037 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1544944036} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ec58b83d93d5b435abaaa64ecc05fe1a, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.SnackSpawner - prefab: {fileID: 1945811876929841169, guid: b6f2ca858be534f3ab055e0b878ae13f, type: 3} - library: {fileID: 11400000, guid: 06fcf2ebf537145de9bab548922829e1, type: 2} - spawnMin: {x: -5.25, y: -2.65} - spawnMax: {x: 5.25, y: 2.42} - parent: {fileID: 329179445} ---- !u!4 &1544944038 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1544944036} - 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: 616881063} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1764811299 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1764811312} - - component: {fileID: 1764811311} - - component: {fileID: 1764811310} - - component: {fileID: 1764811309} - - component: {fileID: 1764811308} - - component: {fileID: 1764811307} - - component: {fileID: 1764811306} - - component: {fileID: 1764811305} - - component: {fileID: 1764811304} - - component: {fileID: 1764811303} - - component: {fileID: 1764811302} - - component: {fileID: 1764811301} - - component: {fileID: 1764811300} - - component: {fileID: 1764811313} - m_Layer: 0 - m_Name: UI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1764811300 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6f3916e69e6ce4c78b909c659160ad95, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.RoundResultModalPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} - leaderboardRowTemplate: {fileID: 9197481963319205126, guid: e171bce5673384061b0cb20cbe5082d1, - type: 3} ---- !u!114 &1764811301 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b996708622cc54d328cac546b893e111, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.OfferModalPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} ---- !u!114 &1764811302 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0c73aae57f5c749b88f5bf2c22538af5, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.BackpackModalPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} - backpackItemRowTemplate: {fileID: 9197481963319205126, guid: 29a6c5a5b6bb94220b5c2378923d4047, - type: 3} - spriteLibrary: {fileID: 11400000, guid: 06fcf2ebf537145de9bab548922829e1, type: 2} ---- !u!114 &1764811303 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 36789e549043d400a92f3a84849b4038, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.ShopModalPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} - shopOfferRowTemplate: {fileID: 9197481963319205126, guid: 85424ff7d38f94ed08f809972c61617c, - type: 3} ---- !u!114 &1764811304 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6de014257693b4ced830566d18e49444, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.SetupOverlayPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} ---- !u!114 &1764811305 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f54172384bff5402686bb558e2abb5b7, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.BootOverlayPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} ---- !u!114 &1764811306 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 57e0ed949960344bd80072dd54a52c4f, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.ToastsPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} - toastTemplate: {fileID: 9197481963319205126, guid: 3a2038228118b4a09a3a242b8a1fc1d4, - type: 3} ---- !u!114 &1764811307 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2e5e5cb2ad54545a6847ad8c90d1f7d8, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.HudPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} - world: {fileID: 616881062} ---- !u!114 &1764811308 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a134e625b6e114c4b80b9f55a14e48b3, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.EventInspectorPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} - logRowTemplate: {fileID: 9197481963319205126, guid: 94171891e540744b3a0f55b254cbe18b, - type: 3} ---- !u!114 &1764811309 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1d57e6a031317461cb98e41f6940c8d3, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.RemoteConfigPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} ---- !u!114 &1764811310 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 900b9e31987914b56a3bba037e2a830c, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.SessionCardPanel - uiDocument: {fileID: 1764811311} - controller: {fileID: 853162496} ---- !u!114 &1764811311 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: UnityEngine.dll::UnityEngine.UIElements.UIDocument - m_PanelSettings: {fileID: 11400000, guid: 728073018ae96457c9d67e8cc2652ac8, type: 2} - m_ParentUI: {fileID: 0} - sourceAsset: {fileID: 9197481963319205126, guid: 766f5cae1f4354e20b4043cf1c6756bf, - type: 3} - m_SortingOrder: 0 - m_Position: 0 - m_WorldSpaceSizeMode: 1 - m_WorldSpaceWidth: 1920 - m_WorldSpaceHeight: 1080 - m_PivotReferenceSize: 0 - m_Pivot: 0 - m_WorldSpaceCollider: {fileID: 0} ---- !u!4 &1764811312 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1931382934 &1764811313 -PanelRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764811299} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - serializedVersion: 1 - m_PanelSettings: {fileID: 11400000, guid: 728073018ae96457c9d67e8cc2652ac8, type: 2} - sourceAsset: {fileID: 9197481963319205126, guid: 766f5cae1f4354e20b4043cf1c6756bf, - type: 3} - m_ParentUI: {fileID: 0} - m_WorldSpaceSizeMode: 1 - m_WorldSpaceWidth: 1920 - m_WorldSpaceHeight: 1080 - m_PivotReferenceSize: 0 - m_Pivot: 0 - m_Position: 0 ---- !u!1 &1781499117 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1781499118} - - component: {fileID: 1781499121} - - component: {fileID: 1781499120} - - component: {fileID: 1781499119} - m_Layer: 0 - m_Name: Player - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1781499118 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781499117} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.23768115, y: 0.24053454, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 616881063} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &1781499119 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781499117} - m_Enabled: 1 - serializedVersion: 3 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 0 - m_UsedByEffector: 0 - m_CompositeOperation: 0 - m_CompositeOrder: 0 - m_Offset: {x: 0, y: 0} - m_Radius: 0.99777764 ---- !u!50 &1781499120 -Rigidbody2D: - serializedVersion: 5 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781499117} - m_BodyType: 1 - m_Simulated: 1 - m_UseFullKinematicContacts: 0 - m_UseAutoMass: 0 - m_Mass: 1 - m_LinearDamping: 0 - m_AngularDamping: 0.05 - m_GravityScale: 0 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 - m_Constraints: 0 ---- !u!212 &1781499121 -SpriteRenderer: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781499117} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_Sprite: {fileID: 21300000, guid: 695606af95a0452790cf9228c0cc9f76, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 3.45, y: 4.49} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_SpriteSortPoint: 0 - m_BlendShapeWeights: [] ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 865861685} - - {fileID: 1077348682} - - {fileID: 616881063} - - {fileID: 853162498} - - {fileID: 1764811312} diff --git a/Assets/LiveOpsExamples/LiveOpsCozyCollector.unity.meta b/Assets/LiveOpsExamples/LiveOpsCozyCollector.unity.meta deleted file mode 100644 index c76479c..0000000 --- a/Assets/LiveOpsExamples/LiveOpsCozyCollector.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c8998a66d411a4e8d9ef54b6f261d320 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Prefabs/CollectBurst.prefab b/Assets/LiveOpsExamples/Prefabs/CollectBurst.prefab deleted file mode 100644 index d855da7..0000000 --- a/Assets/LiveOpsExamples/Prefabs/CollectBurst.prefab +++ /dev/null @@ -1,4896 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &5032589694762663266 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5001759733890026992} - - component: {fileID: 4700352299658891627} - - component: {fileID: 6896765968463793040} - m_Layer: 0 - m_Name: CollectBurst - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5001759733890026992 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5032589694762663266} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!198 &4700352299658891627 -ParticleSystem: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5032589694762663266} - serializedVersion: 8 - lengthInSec: 0.5 - simulationSpeed: 1 - stopAction: 2 - cullingMode: 0 - ringBufferMode: 0 - ringBufferLoopRange: {x: 0, y: 1} - emitterVelocityMode: 1 - looping: 0 - prewarm: 0 - playOnAwake: 1 - useUnscaledTime: 0 - autoRandomSeed: 1 - startDelay: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - moveWithTransform: 0 - moveWithCustomTransform: {fileID: 0} - scalingMode: 1 - randomSeed: 0 - InitialModule: - serializedVersion: 3 - enabled: 1 - startLifetime: - serializedVersion: 2 - minMaxState: 0 - scalar: 0.45 - minScalar: 5 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startSpeed: - serializedVersion: 2 - minMaxState: 0 - scalar: 2 - minScalar: 5 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startColor: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 0.8235294, b: 0.49019608, a: 1} - maxGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - minGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - startSize: - serializedVersion: 2 - minMaxState: 0 - scalar: 0.15 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startSizeY: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startSizeZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startRotationX: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startRotationY: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startRotation: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - randomizeRotationDirection: 0 - gravitySource: 0 - maxNumParticles: 1000 - customEmitterVelocity: {x: 0, y: 0, z: 0} - size3D: 0 - rotation3D: 0 - gravityModifier: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - ShapeModule: - serializedVersion: 6 - enabled: 1 - type: 0 - angle: 25 - length: 5 - boxThickness: {x: 0, y: 0, z: 0} - radiusThickness: 1 - donutRadius: 0.2 - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: 0, y: 0, z: 0} - m_Scale: {x: 1, y: 1, z: 1} - placementMode: 0 - m_MeshMaterialIndex: 0 - m_MeshNormalOffset: 0 - m_MeshSpawn: - mode: 0 - spread: 0 - speed: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_Mesh: {fileID: 0} - m_MeshRenderer: {fileID: 0} - m_SkinnedMeshRenderer: {fileID: 0} - m_Sprite: {fileID: 0} - m_SpriteRenderer: {fileID: 0} - m_UseMeshMaterialIndex: 0 - m_UseMeshColors: 1 - alignToDirection: 0 - m_Texture: {fileID: 0} - m_TextureClipChannel: 3 - m_TextureClipThreshold: 0 - m_TextureUVChannel: 0 - m_TextureColorAffectsParticles: 1 - m_TextureAlphaAffectsParticles: 1 - m_TextureBilinearFiltering: 0 - randomDirectionAmount: 0 - sphericalDirectionAmount: 0 - randomPositionAmount: 0 - radius: - value: 0.1 - mode: 0 - spread: 0 - speed: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - arc: - value: 360 - mode: 0 - spread: 0 - speed: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - EmissionModule: - enabled: 1 - serializedVersion: 4 - rateOverTime: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 10 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - rateOverDistance: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_BurstCount: 1 - m_Bursts: - - serializedVersion: 2 - time: 0 - countCurve: - serializedVersion: 2 - minMaxState: 0 - scalar: 9 - minScalar: 30 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - cycleCount: 1 - repeatInterval: 0.01 - probability: 1 - SizeModule: - enabled: 0 - curve: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - RotationModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - curve: - serializedVersion: 2 - minMaxState: 0 - scalar: 0.7853982 - minScalar: 0.7853982 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - ColorModule: - enabled: 0 - gradient: - serializedVersion: 2 - minMaxState: 1 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - minGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - UVModule: - serializedVersion: 2 - enabled: 0 - mode: 0 - timeMode: 0 - fps: 30 - frameOverTime: - serializedVersion: 2 - minMaxState: 1 - scalar: 0.9999 - minScalar: 0.9999 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startFrame: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - speedRange: {x: 0, y: 1} - tilesX: 1 - tilesY: 1 - animationType: 0 - rowIndex: 0 - cycles: 1 - uvChannelMask: -1 - rowMode: 1 - sprites: - - sprite: {fileID: 0} - flipU: 0 - flipV: 0 - VelocityModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - orbitalX: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - orbitalY: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - orbitalZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - orbitalOffsetX: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - orbitalOffsetY: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - orbitalOffsetZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - radial: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - speedModifier: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - inWorldSpace: 0 - InheritVelocityModule: - enabled: 0 - m_Mode: 0 - m_Curve: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - LifetimeByEmitterSpeedModule: - enabled: 0 - m_Curve: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: -0.8 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0.2 - inSlope: -0.8 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_Range: {x: 0, y: 1} - ForceModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - inWorldSpace: 0 - randomizePerFrame: 0 - ExternalForcesModule: - serializedVersion: 2 - enabled: 0 - multiplierCurve: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - influenceFilter: 0 - influenceMask: - serializedVersion: 2 - m_Bits: 4294967295 - influenceList: [] - ClampVelocityModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - magnitude: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxis: 0 - inWorldSpace: 0 - multiplyDragByParticleSize: 1 - multiplyDragByParticleVelocity: 1 - dampen: 0 - drag: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - NoiseModule: - enabled: 0 - strength: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - strengthY: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - strengthZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - frequency: 0.5 - damping: 1 - octaves: 1 - octaveMultiplier: 0.5 - octaveScale: 2 - quality: 1 - scrollSpeed: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - remap: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1 - inSlope: 0 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 2 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - remapY: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1 - inSlope: 0 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 2 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - remapZ: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1 - inSlope: 0 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 2 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - remapEnabled: 0 - positionAmount: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - rotationAmount: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - sizeAmount: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - SizeBySpeedModule: - enabled: 0 - curve: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - range: {x: 0, y: 1} - separateAxes: 0 - RotationBySpeedModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - curve: - serializedVersion: 2 - minMaxState: 0 - scalar: 0.7853982 - minScalar: 0.7853982 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - range: {x: 0, y: 1} - ColorBySpeedModule: - enabled: 0 - gradient: - serializedVersion: 2 - minMaxState: 1 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - minGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - range: {x: 0, y: 1} - CollisionModule: - enabled: 0 - serializedVersion: 4 - type: 0 - collisionMode: 0 - colliderForce: 0 - multiplyColliderForceByParticleSize: 0 - multiplyColliderForceByParticleSpeed: 0 - multiplyColliderForceByCollisionAngle: 1 - m_Planes: [] - m_Dampen: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_Bounce: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_EnergyLossOnCollision: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minKillSpeed: 0 - maxKillSpeed: 10000 - radiusScale: 1 - collidesWith: - serializedVersion: 2 - m_Bits: 4294967295 - maxCollisionShapes: 256 - quality: 0 - voxelSize: 0.5 - collisionMessages: 0 - collidesWithDynamic: 1 - interiorCollisions: 0 - TriggerModule: - enabled: 0 - serializedVersion: 2 - inside: 1 - outside: 0 - enter: 0 - exit: 0 - colliderQueryMode: 0 - radiusScale: 1 - primitives: [] - SubModule: - serializedVersion: 2 - enabled: 0 - subEmitters: - - serializedVersion: 3 - emitter: {fileID: 0} - type: 0 - properties: 0 - emitProbability: 1 - LightsModule: - enabled: 0 - ratio: 0 - light: {fileID: 0} - randomDistribution: 1 - color: 1 - range: 1 - intensity: 1 - rangeCurve: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - intensityCurve: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - maxLights: 20 - TrailModule: - enabled: 0 - mode: 0 - ratio: 1 - lifetime: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minVertexDistance: 0.2 - textureMode: 0 - textureScale: {x: 1, y: 1} - ribbonCount: 1 - shadowBias: 0.5 - worldSpace: 0 - dieWithParticles: 1 - sizeAffectsWidth: 1 - sizeAffectsLifetime: 0 - inheritParticleColor: 1 - generateLightingData: 0 - splitSubEmitterRibbons: 0 - attachRibbonsToTransform: 0 - colorOverLifetime: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - minGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - widthOverTrail: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorOverTrail: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - minGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - CustomDataModule: - enabled: 0 - mode0: 0 - vectorComponentCount0: 4 - color0: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - minGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - colorLabel0: Color - vector0_0: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel0_0: X - vector0_1: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel0_1: Y - vector0_2: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel0_2: Z - vector0_3: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel0_3: W - mode1: 0 - vectorComponentCount1: 4 - color1: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - minGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - colorLabel1: Color - vector1_0: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel1_0: X - vector1_1: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel1_1: Y - vector1_2: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel1_2: Z - vector1_3: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - vectorLabel1_3: W ---- !u!199 &6896765968463793040 -ParticleSystemRenderer: - serializedVersion: 7 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5032589694762663266} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_RenderMode: 0 - m_MeshDistribution: 0 - m_SortMode: 0 - m_MinParticleSize: 0 - m_MaxParticleSize: 0.5 - m_CameraVelocityScale: 0 - m_VelocityScale: 0 - m_LengthScale: 2 - m_SortingFudge: 0 - m_NormalDirection: 1 - m_ShadowBias: 0 - m_RenderAlignment: 0 - m_Pivot: {x: 0, y: 0, z: 0} - m_Flip: {x: 0, y: 0, z: 0} - m_EnableGPUInstancing: 1 - m_ApplyActiveColorSpace: 1 - m_AllowRoll: 1 - m_FreeformStretching: 0 - m_RotateWithStretchDirection: 1 - m_UseCustomVertexStreams: 0 - m_VertexStreams: 00010304 - m_UseCustomTrailVertexStreams: 0 - m_TrailVertexStreams: 00010304 - m_Mesh: {fileID: 0} - m_Mesh1: {fileID: 0} - m_Mesh2: {fileID: 0} - m_Mesh3: {fileID: 0} - m_MeshWeighting: 1 - m_MeshWeighting1: 1 - m_MeshWeighting2: 1 - m_MeshWeighting3: 1 diff --git a/Assets/LiveOpsExamples/Prefabs/CollectBurst.prefab.meta b/Assets/LiveOpsExamples/Prefabs/CollectBurst.prefab.meta deleted file mode 100644 index 596979c..0000000 --- a/Assets/LiveOpsExamples/Prefabs/CollectBurst.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 9f08d0082395f4a36b1a41e5e929c33f -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Prefabs/ScorePopup.prefab b/Assets/LiveOpsExamples/Prefabs/ScorePopup.prefab deleted file mode 100644 index 325804b..0000000 --- a/Assets/LiveOpsExamples/Prefabs/ScorePopup.prefab +++ /dev/null @@ -1,197 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &4320980148611362106 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3111624587611009095} - - component: {fileID: 593893284932781451} - - component: {fileID: 1452460269697210593} - - component: {fileID: 2163815420330336319} - m_Layer: 0 - m_Name: ScorePopup - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3111624587611009095 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4320980148611362106} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - 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: 20, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!23 &593893284932781451 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4320980148611362106} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &1452460269697210593 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4320980148611362106} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshPro - 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: +10 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 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: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 2.5 - m_fontSizeBase: 2.5 - 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: 0 - 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 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 593893284932781451} - m_maskType: 0 ---- !u!114 &2163815420330336319 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4320980148611362106} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b1db4bf03192148bf95ea374d128f349, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.ScorePopupView - label: {fileID: 1452460269697210593} diff --git a/Assets/LiveOpsExamples/Prefabs/ScorePopup.prefab.meta b/Assets/LiveOpsExamples/Prefabs/ScorePopup.prefab.meta deleted file mode 100644 index 070cbd3..0000000 --- a/Assets/LiveOpsExamples/Prefabs/ScorePopup.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 77687e92645dc450d8f79fbb91face30 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Prefabs/Snack.prefab b/Assets/LiveOpsExamples/Prefabs/Snack.prefab deleted file mode 100644 index 1dfb838..0000000 --- a/Assets/LiveOpsExamples/Prefabs/Snack.prefab +++ /dev/null @@ -1,144 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &4123410791617310354 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5962299478407506369} - - component: {fileID: 2996539449734302674} - - component: {fileID: 5031039985352295968} - - component: {fileID: 1945811876929841169} - m_Layer: 0 - m_Name: Snack - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5962299478407506369 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4123410791617310354} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.16149068, y: 0.12807882, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &2996539449734302674 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4123410791617310354} - m_Enabled: 1 - serializedVersion: 3 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_CompositeOperation: 0 - m_CompositeOrder: 0 - m_Offset: {x: 0, y: 0} - m_Radius: 1.3623077 ---- !u!212 &5031039985352295968 -SpriteRenderer: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4123410791617310354} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_Sprite: {fileID: 21300000, guid: c41fcc3b35c944ffa18a34b6c4dc2cd6, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 3.22, y: 4.06} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_SpriteSortPoint: 0 - m_BlendShapeWeights: [] ---- !u!114 &1945811876929841169 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4123410791617310354} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 36b117cefc78541b9b42188266102562, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::LiveOpsExamples.Snack diff --git a/Assets/LiveOpsExamples/Prefabs/Snack.prefab.meta b/Assets/LiveOpsExamples/Prefabs/Snack.prefab.meta deleted file mode 100644 index 8115f2a..0000000 --- a/Assets/LiveOpsExamples/Prefabs/Snack.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b6f2ca858be534f3ab055e0b878ae13f -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Scripts.meta b/Assets/LiveOpsExamples/Scripts.meta deleted file mode 100644 index dce0aa7..0000000 --- a/Assets/LiveOpsExamples/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Scripts/CozyCollectorConsts.cs b/Assets/LiveOpsExamples/Scripts/CozyCollectorConsts.cs deleted file mode 100644 index 235334e..0000000 --- a/Assets/LiveOpsExamples/Scripts/CozyCollectorConsts.cs +++ /dev/null @@ -1,63 +0,0 @@ -using UnityEngine; - -namespace LiveOpsExamples -{ - /// - /// Shared constants for the Cozy Collector demo: remote config keys with their - /// defaults, LiveOps slugs, and the inspector capability palette. - /// Mirrors liveops-phaser-demo/src/config.ts. - /// - public static class CozyCollectorConsts - { - // Remote config keys (mirror DemoRemoteConfig in the Phaser demo). - public const string ConfigRoundSeconds = "demo_round_seconds"; - public const string ConfigPlayerSpeed = "demo_player_speed"; - public const string ConfigSpawnIntervalMs = "demo_spawn_interval_ms"; - public const string ConfigCollectibleScore = "demo_collectible_score"; - - public const float DefaultRoundSeconds = 150f; - public const float DefaultPlayerSpeed = 260f; - public const float DefaultSpawnIntervalMs = 900f; - public const float DefaultCollectibleScore = 10f; - - public const string LeaderboardSlug = "cozy-collector-score"; - public const string StoreSlug = "cozy-camp-shop"; - public const string OfferId = "moonberry-boost"; - public const string QuestMetricCollectibles = "cozy_collectibles"; - public const string StorageType = "cozy_fantasy_save"; - public const string StorageId = "main"; - public const string NicknamePrefsKey = "rudder_demo_nickname"; - public const string Region = "global"; - public const string Language = "en"; - - // Inspector capability tags (same tags as the Phaser demo). - public const string CapabilityAuth = "auth"; - public const string CapabilityConfig = "config"; - public const string CapabilityScenario = "scenario"; - public const string CapabilityStore = "store"; - public const string CapabilityLeaderboard = "leaderboard"; - public const string CapabilityStorage = "storage"; - public const string CapabilityInventory = "inventory"; - public const string CapabilityWallet = "wallet"; - public const string CapabilityQuests = "quests"; - public const string CapabilitySystem = "system"; - - /// Color used by the event inspector to tag a capability line. - public static Color CapabilityColor(string capability) - { - switch (capability) - { - case CapabilityAuth: return new Color(0.55f, 0.76f, 1.00f); - case CapabilityConfig: return new Color(0.61f, 0.90f, 0.69f); - case CapabilityScenario: return new Color(0.85f, 0.68f, 1.00f); - case CapabilityStore: return new Color(1.00f, 0.82f, 0.51f); - case CapabilityLeaderboard: return new Color(1.00f, 0.72f, 0.58f); - case CapabilityStorage: return new Color(0.56f, 0.87f, 0.87f); - case CapabilityInventory: return new Color(0.78f, 0.86f, 0.55f); - case CapabilityWallet: return new Color(1.00f, 0.88f, 0.63f); - case CapabilityQuests: return new Color(0.71f, 0.80f, 1.00f); - default: return new Color(0.75f, 0.75f, 0.75f); - } - } - } -} diff --git a/Assets/LiveOpsExamples/Scripts/CozyCollectorConsts.cs.meta b/Assets/LiveOpsExamples/Scripts/CozyCollectorConsts.cs.meta deleted file mode 100644 index b5904e7..0000000 --- a/Assets/LiveOpsExamples/Scripts/CozyCollectorConsts.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: f0f8000a396a64ea7890de20a70265ce \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Scripts/CozyCollectorController.cs b/Assets/LiveOpsExamples/Scripts/CozyCollectorController.cs deleted file mode 100644 index 9c83823..0000000 --- a/Assets/LiveOpsExamples/Scripts/CozyCollectorController.cs +++ /dev/null @@ -1,1146 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using System.Threading.Tasks; -using RudderSdk.Core; -using RudderSdk.Core.Models.Inventory; -using RudderSdk.Core.Models.Leaderboards; -using RudderSdk.Core.Models.Player; -using RudderSdk.Core.Models.Quests; -using RudderSdk.Core.Models.Storage; -using RudderSdk.Core.Models.Stores; -using RudderSdk.Unity; -using UnityEngine; - -namespace LiveOpsExamples -{ - [Serializable] - public class CozyIdentity - { - public string PlayerId; - public string Nickname; - public string DeviceId; - public string ProjectKey; - public string Region; - } - - [Serializable] - public class CozyWallet - { - public string Currency; - public double Balance; - } - - [Serializable] - public class CozyTuning - { - public float RoundSeconds; - public float PlayerSpeed; - public float SpawnIntervalMs; - public float CollectibleScore; - } - - [Serializable] - public class CozySave - { - public int BestScore; - public int LastScore; - public int RoundsPlayed; - public int TotalCollected; - } - - [Serializable] - public class CozyLogEntry - { - public string Capability; - public string Message; - public string Detail; - public DateTime Timestamp; - } - - [Serializable] - public class CozyShopOffer - { - public string StoreSlug; - public string OfferId; - public string Name; - public double Price; - public string Currency; - } - - [Serializable] - public class CozyBackpackItem - { - public string Slug; - public string Name; - public int Amount; - } - - [Serializable] - public class CozyLeaderboardEntry - { - public string PlayerName; - public int Rank; - public int Score; - } - - [Serializable] - public class CozyRoundResult - { - public int Score; - public int Best; - public int Collected; - public List TopEntries; - } - - [Serializable] - public class CozyOfferInfo - { - public string StoreSlug; - public string StoreName; - public List Offers; - } - - public enum CozyPhase - { - Booting, - Connecting, - Ready, - Setup - } - - public enum CozyModal - { - None, - Shop, - Backpack, - Offer, - RoundResult - } - - public enum CozyToastTone - { - Info, - Success, - Error - } - - /// - /// Session/bootstrap hub for the Cozy Collector demo — the Unity port of the - /// Phaser demo's liveops.ts + store.ts. Owns every SDK call: login, remote - /// config (initial load, 10 s poll and scenario overrides), storage save, - /// profile/wallets, store catalog, inventory, leaderboard and scenario effects. - /// The UI layer binds to the public properties/events. - /// - public class CozyCollectorController : MonoBehaviour - { - private const int MaxLogEntries = 200; - private const float ConfigPollSeconds = 10f; - private const float NotificationAutoCompleteSeconds = 2.6f; - - [SerializeField] private GameWorld world; - - private readonly List _wallets = new List(); - private readonly List _logEntries = new List(); - private readonly List _shopOffers = new List(); - private readonly List _backpackItems = new List(); - private readonly CozyTuning _tuning = new CozyTuning - { - RoundSeconds = CozyCollectorConsts.DefaultRoundSeconds, - PlayerSpeed = CozyCollectorConsts.DefaultPlayerSpeed, - SpawnIntervalMs = CozyCollectorConsts.DefaultSpawnIntervalMs, - CollectibleScore = CozyCollectorConsts.DefaultCollectibleScore - }; - private readonly CozySave _save = new CozySave(); - - private CozyPhase _phase = CozyPhase.Booting; - private string _statusMessage = "Starting…"; - private string _setupError; - private CozyIdentity _identity; - private CozyModal _activeModal = CozyModal.None; - private CozyRoundResult _roundResult; - private CozyOfferInfo _currentOffer; - private string _deviceId; - private string _nickname; - private StoreOfferSession _storeSession; - private LeaderboardSession _leaderboardSession; - private bool _scenarioHandlersRegistered; - - public CozyPhase Phase => _phase; - public string StatusMessage => _statusMessage; - public string SetupError => _setupError; - public CozyIdentity Identity => _identity; - public IReadOnlyList Wallets => _wallets; - public CozyTuning Tuning => _tuning; - public CozySave Save => _save; - public IReadOnlyList LogEntries => _logEntries; - public CozyModal ActiveModal => _activeModal; - public IReadOnlyList ShopOffers => _shopOffers; - public IReadOnlyList BackpackItems => _backpackItems; - public CozyRoundResult RoundResult => _roundResult; - public CozyOfferInfo CurrentOffer => _currentOffer; - - public event Action PhaseChanged; - public event Action ModalChanged; - public event Action WalletsChanged; - public event Action TuningChanged; - public event Action LogAdded; - public event Action ShopChanged; - public event Action BackpackChanged; - public event Action RoundResultChanged; - public event Action OfferChanged; - public event Action ToastRequested; - - // --------------------------------------------------------------- - // Boot phase machine - // --------------------------------------------------------------- - - private void Awake() - { - world.RoundFinished += OnRoundFinished; - } - - private void Start() - { - _ = BootAsync(); - } - - private void OnDestroy() - { - world.RoundFinished -= OnRoundFinished; - UnregisterScenarioHandlers(); - } - - private async Task BootAsync() - { - SetPhase(CozyPhase.Booting, "Starting…"); - - try - { - await Rudder.Ready; - } - catch (Exception exception) - { - _setupError = "Rudder is not initialized. Add the Rudder component to the scene " + - "and assign a RudderConfiguration asset with a valid ProjectKey. " + - exception.Message; - SetPhase(CozyPhase.Setup, "Setup required"); - Log(CozyCollectorConsts.CapabilitySystem, "Setup required", _setupError); - return; - } - - SetPhase(CozyPhase.Connecting, "Connecting to LiveOps…"); - RegisterScenarioHandlers(); - - try - { - _deviceId = SystemInfo.deviceUniqueIdentifier; - _nickname = GetOrCreateNickname(_deviceId); - Log(CozyCollectorConsts.CapabilityAuth, "loginWithDevice", _nickname + " · " + ShortId(_deviceId)); - await Rudder.Client.Auth.LoginWithDeviceAsync( - CozyCollectorConsts.Region, - CozyCollectorConsts.Language, - _nickname); - - await Rudder.Client.RemoteConfig.LoadAsync(); - RefreshTuning(false); - - await LoadSaveAsync(); - await RefreshProfileAsync(); - await RefreshStoresAsync(); - await RefreshInventoryAsync(); - await RefreshQuestsAsync(); - - try - { - await Rudder.Client.Scenario.TriggerAsync("player_login"); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityScenario, "Trigger failed", exception.Message); - } - - SetPhase(CozyPhase.Ready, "Connected"); - world.RestartRound(); - StartCoroutine(PollConfigLoop()); - } - catch (Exception exception) - { - _setupError = exception.Message; - SetPhase(CozyPhase.Setup, "Setup required"); - Log(CozyCollectorConsts.CapabilitySystem, "Login failed", exception.Message); - } - } - - // --------------------------------------------------------------- - // Remote config - // --------------------------------------------------------------- - - private IEnumerator PollConfigLoop() - { - var wait = new WaitForSeconds(ConfigPollSeconds); - while (true) - { - yield return wait; - _ = PollConfigAsync(); - } - } - - private async Task PollConfigAsync() - { - try - { - await Rudder.Client.RemoteConfig.LoadAsync(); - RefreshTuning(true); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityConfig, "Config poll failed", exception.Message); - } - } - - private void RefreshTuning(bool announce) - { - var next = new CozyTuning - { - RoundSeconds = ReadConfigFloat(CozyCollectorConsts.ConfigRoundSeconds, CozyCollectorConsts.DefaultRoundSeconds), - PlayerSpeed = ReadConfigFloat(CozyCollectorConsts.ConfigPlayerSpeed, CozyCollectorConsts.DefaultPlayerSpeed), - SpawnIntervalMs = ReadConfigFloat(CozyCollectorConsts.ConfigSpawnIntervalMs, CozyCollectorConsts.DefaultSpawnIntervalMs), - CollectibleScore = ReadConfigFloat(CozyCollectorConsts.ConfigCollectibleScore, CozyCollectorConsts.DefaultCollectibleScore) - }; - - var changedKeys = new List(); - if (!Mathf.Approximately(_tuning.RoundSeconds, next.RoundSeconds)) - changedKeys.Add(CozyCollectorConsts.ConfigRoundSeconds); - if (!Mathf.Approximately(_tuning.PlayerSpeed, next.PlayerSpeed)) - changedKeys.Add(CozyCollectorConsts.ConfigPlayerSpeed); - if (!Mathf.Approximately(_tuning.SpawnIntervalMs, next.SpawnIntervalMs)) - changedKeys.Add(CozyCollectorConsts.ConfigSpawnIntervalMs); - if (!Mathf.Approximately(_tuning.CollectibleScore, next.CollectibleScore)) - changedKeys.Add(CozyCollectorConsts.ConfigCollectibleScore); - - _tuning.RoundSeconds = next.RoundSeconds; - _tuning.PlayerSpeed = next.PlayerSpeed; - _tuning.SpawnIntervalMs = next.SpawnIntervalMs; - _tuning.CollectibleScore = next.CollectibleScore; - - if (!announce || changedKeys.Count > 0) - { - Log( - CozyCollectorConsts.CapabilityConfig, - "Remote config loaded", - $"speed {Mathf.RoundToInt(_tuning.PlayerSpeed)} · spawn {Mathf.RoundToInt(_tuning.SpawnIntervalMs)}ms · " + - $"+{Mathf.RoundToInt(_tuning.CollectibleScore)} · {Mathf.RoundToInt(_tuning.RoundSeconds)}s"); - } - - foreach (var key in changedKeys) - { - TuningChanged?.Invoke(key); - if (announce) - { - Log(CozyCollectorConsts.CapabilityConfig, "Config changed live", key); - Toast("Remote config updated", key + " applied live", CozyToastTone.Success); - } - } - } - - private static float ReadConfigFloat(string key, float fallback) - { - return Rudder.Client.RemoteConfig.Get(key, fallback); - } - - // --------------------------------------------------------------- - // Profile / wallets / stores / inventory (pull-based freshness) - // --------------------------------------------------------------- - - private async Task RefreshProfileAsync() - { - var profile = await Rudder.Client.Player.GetProfileAsync(); - var player = profile?.Player; - - _identity = new CozyIdentity - { - PlayerId = player?.Id ?? "unknown", - Nickname = _nickname, - DeviceId = _deviceId, - ProjectKey = Rudder.Client.ProjectKey, - Region = player?.Region - }; - Log( - CozyCollectorConsts.CapabilityAuth, - "Authenticated", - _identity.Nickname + " · " + ShortId(_identity.PlayerId)); - - ApplyWallets(profile); - } - - private async Task RefreshWalletsAsync() - { - var profile = await Rudder.Client.Player.GetProfileAsync(); - ApplyWallets(profile); - } - - private void ApplyWallets(PlayerProfile profile) - { - _wallets.Clear(); - if (profile?.Wallets != null) - { - foreach (var wallet in profile.Wallets) - { - _wallets.Add(new CozyWallet - { - Currency = wallet.Currency ?? string.Empty, - Balance = wallet.Balance - }); - } - } - - Log(CozyCollectorConsts.CapabilityWallet, "Wallet loaded", WalletSummary()); - WalletsChanged?.Invoke(); - } - - private async Task RefreshStoresAsync() - { - var stores = await Rudder.Client.Stores.ListAsync(); - - _shopOffers.Clear(); - if (stores != null) - { - foreach (var store in stores) - { - if (store?.Offers == null) - continue; - - foreach (var offer in store.Offers) - { - _shopOffers.Add(MapOffer(store.Slug, offer)); - } - } - } - - Log(CozyCollectorConsts.CapabilityStore, "Store catalog loaded", _shopOffers.Count + " offer(s)"); - ShopChanged?.Invoke(); - } - - private async Task RefreshInventoryAsync() - { - var items = await Rudder.Client.Inventory.GetAsync(); - - _backpackItems.Clear(); - if (items != null) - { - foreach (var item in items) - { - var slug = item.Slug ?? string.Empty; - _backpackItems.Add(new CozyBackpackItem - { - Slug = slug, - Name = string.IsNullOrEmpty(item.NameOverride) ? slug : item.NameOverride, - Amount = (int)item.Amount - }); - } - } - - Log(CozyCollectorConsts.CapabilityInventory, "Inventory loaded", _backpackItems.Count + " item(s)"); - BackpackChanged?.Invoke(); - } - - private async Task RefreshPurchasablesAsync() - { - // Purchases mutate wallets, catalog stock and inventory server-side; - // the C# SDK has no onChange, so freshness is pull-based. - try { await RefreshWalletsAsync(); } - catch (Exception exception) { Log(CozyCollectorConsts.CapabilityWallet, "Wallet refresh failed", exception.Message); } - - try { await RefreshStoresAsync(); } - catch (Exception exception) { Log(CozyCollectorConsts.CapabilityStore, "Store refresh failed", exception.Message); } - - try { await RefreshInventoryAsync(); } - catch (Exception exception) { Log(CozyCollectorConsts.CapabilityInventory, "Inventory refresh failed", exception.Message); } - - // Purchase metrics (purchase.offer:* / purchase.item:*) are reported - // server-side by the purchase fan-out; re-list to pick up new progress. - try { await RefreshQuestsAsync(); } - catch (Exception exception) { Log(CozyCollectorConsts.CapabilityQuests, "Quest refresh failed", exception.Message); } - } - - // --------------------------------------------------------------- - // Storage save - // --------------------------------------------------------------- - - // Storage payload mirrors the Phaser saveRound JSON shape (camelCase keys). - [Serializable] - private class SavePayload - { - public int bestScore; - public int lastScore; - public int roundsPlayed; - public int totalCollected; - public string updatedAt; - } - - private async Task LoadSaveAsync() - { - var response = await Rudder.Client.Storage.GetAsync(); - var item = response?.Items?.Find( - candidate => candidate.Type == CozyCollectorConsts.StorageType && candidate.Id == CozyCollectorConsts.StorageId); - - if (item == null || string.IsNullOrEmpty(item.Data)) - { - Log(CozyCollectorConsts.CapabilityStorage, "No saved progress yet", CozyCollectorConsts.StorageType); - return; - } - - try - { - var payload = JsonUtility.FromJson(item.Data); - _save.BestScore = payload.bestScore; - _save.LastScore = payload.lastScore; - _save.RoundsPlayed = payload.roundsPlayed; - _save.TotalCollected = payload.totalCollected; - Log( - CozyCollectorConsts.CapabilityStorage, - "Loaded progress", - $"best {_save.BestScore} · rounds {_save.RoundsPlayed}"); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityStorage, "Save data unreadable", exception.Message); - } - } - - private async Task SaveRoundAsync(int score, int collected) - { - _save.BestScore = Math.Max(_save.BestScore, score); - _save.LastScore = score; - _save.RoundsPlayed += 1; - _save.TotalCollected += collected; - - var payload = new SavePayload - { - bestScore = _save.BestScore, - lastScore = _save.LastScore, - roundsPlayed = _save.RoundsPlayed, - totalCollected = _save.TotalCollected, - updatedAt = DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture) - }; - - await Rudder.Client.Storage.SaveAsync(new[] - { - new StorageItem - { - Type = CozyCollectorConsts.StorageType, - Id = CozyCollectorConsts.StorageId, - Data = JsonUtility.ToJson(payload) - } - }); - - Log( - CozyCollectorConsts.CapabilityStorage, - "Saved progress", - $"best {_save.BestScore} · rounds {_save.RoundsPlayed}"); - } - - // --------------------------------------------------------------- - // Leaderboard - // --------------------------------------------------------------- - - private async Task> SubmitLeaderboardAsync(int score) - { - var leaderboard = Rudder.Client.Leaderboards.FindBySlug(CozyCollectorConsts.LeaderboardSlug); - await leaderboard.SubmitAsync(score); - var entries = await leaderboard.ListAsync(10); - Log(CozyCollectorConsts.CapabilityLeaderboard, $"Submitted score {score}", CozyCollectorConsts.LeaderboardSlug); - return MapEntries(entries); - } - - private async Task> ListLeaderboardAsync() - { - var entries = await Rudder.Client.Leaderboards.FindBySlug(CozyCollectorConsts.LeaderboardSlug).ListAsync(10); - return MapEntries(entries); - } - - private static List MapEntries(IReadOnlyList entries) - { - var mapped = new List(); - if (entries == null) - return mapped; - - foreach (var entry in entries) - { - mapped.Add(new CozyLeaderboardEntry - { - PlayerName = entry.PlayerName ?? entry.PlayerId ?? "(unknown)", - Rank = (int)entry.Rank, - Score = (int)entry.Score - }); - } - - return mapped; - } - - // --------------------------------------------------------------- - // Global quests (distinct from scenario quest nodes / QuestSession) - // --------------------------------------------------------------- - - private async Task RefreshQuestsAsync() - { - var quests = await Rudder.Client.Quests.ListAsync(); - - var activeCount = 0; - if (quests != null) - { - foreach (var quest in quests) - { - if (quest.Status == "claimed") - continue; - - activeCount += 1; - Log(CozyCollectorConsts.CapabilityQuests, "Quest " + (quest.Status ?? "active"), QuestProgressSummary(quest)); - - if (quest.Status == "completed" && !string.IsNullOrEmpty(quest.Id)) - await ClaimQuestAsync(quest); - } - } - - Log(CozyCollectorConsts.CapabilityQuests, "Quests loaded", activeCount + " active"); - } - - private async Task ClaimQuestAsync(Quest quest) - { - var result = await Rudder.Client.Quests.ClaimAsync(quest.Id); - if (result == null || !result.Success) - { - Log(CozyCollectorConsts.CapabilityQuests, "Quest claim rejected", result?.Error); - return; - } - - if (!result.AlreadyClaimed) - Toast("Quest complete", quest.Name ?? quest.Id, CozyToastTone.Success); - Log(CozyCollectorConsts.CapabilityQuests, "Quest claimed", quest.Name ?? quest.Id); - await RefreshWalletsAsync(); - } - - private static string QuestProgressSummary(Quest quest) - { - var name = quest.Name ?? quest.Id; - if (quest.Objectives == null || quest.Objectives.Count == 0) - return name; - - var parts = new List(); - foreach (var objective in quest.Objectives) - { - parts.Add(objective.Metric + " " + objective.Current + "/" + objective.Target); - } - - return name + " · " + string.Join(" · ", parts); - } - - // --------------------------------------------------------------- - // Round flow - // --------------------------------------------------------------- - - private void OnRoundFinished(int score, int collected) - { - SyncWorldPause(); - _ = FinishRoundAsync(score, collected); - } - - private async Task FinishRoundAsync(int score, int collected) - { - try - { - await SaveRoundAsync(score, collected); - } - catch (Exception exception) - { - Toast("Save failed", exception.Message, CozyToastTone.Error); - Log(CozyCollectorConsts.CapabilityStorage, "Save failed", exception.Message); - } - - var entries = new List(); - try - { - entries = await SubmitLeaderboardAsync(score); - } - catch (Exception exception) - { - Toast("Leaderboard failed", exception.Message, CozyToastTone.Error); - Log(CozyCollectorConsts.CapabilityLeaderboard, "Submit failed", exception.Message); - } - - _roundResult = new CozyRoundResult - { - Score = score, - Best = _save.BestScore, - Collected = collected, - TopEntries = entries - }; - RoundResultChanged?.Invoke(); - SetModal(CozyModal.RoundResult); - - - try - { - await Rudder.Client.Scenario.TriggerAsync("demo_round_finished"); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityScenario, "Trigger failed", exception.Message); - } - - try - { - var completedIds = await Rudder.Client.Quests.ReportProgressAsync( - CozyCollectorConsts.QuestMetricCollectibles, - collected); - Log( - CozyCollectorConsts.CapabilityQuests, - "Quest progress reported", - CozyCollectorConsts.QuestMetricCollectibles + " +" + collected + - (completedIds.Count > 0 ? " · completed " + completedIds.Count + " quest(s)" : string.Empty)); - await RefreshQuestsAsync(); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityQuests, "Quest progress failed", exception.Message); - } - } - - public void PlayAgain() - { - SetModal(CozyModal.None); - world.RestartRound(); - SyncWorldPause(); - } - - // --------------------------------------------------------------- - // Modals - // --------------------------------------------------------------- - - public void OpenModal(CozyModal modal) - { - SetModal(modal); - } - - public void CloseModal() - { - // Scenario offers must be bought or declined, same as the Phaser store. - if (_activeModal == CozyModal.Offer) - return; - - SetModal(CozyModal.None); - } - - private void SetModal(CozyModal modal) - { - if (_activeModal == modal) - return; - - _activeModal = modal; - ModalChanged?.Invoke(); - SyncWorldPause(); - } - - private void SyncWorldPause() - { - world.SetPaused(_activeModal != CozyModal.None || !world.RoundActive); - } - - // --------------------------------------------------------------- - // Shop - // --------------------------------------------------------------- - - public void BuyShopOffer(string offerId) - { - _ = BuyShopOfferAsync(offerId); - } - - private async Task BuyShopOfferAsync(string offerId) - { - var offer = _shopOffers.Find(candidate => candidate.OfferId == offerId); - if (offer == null) - { - Toast("Purchase failed", "Unknown offer " + offerId, CozyToastTone.Error); - return; - } - - try - { - var response = await Rudder.Client.Stores.PurchaseAsync( - offer.StoreSlug, - offer.OfferId, - "demo-shop-" + offer.OfferId + "-" + DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()); - - if (response != null && !response.Success) - { - Toast("Purchase failed", response.Error ?? "The store rejected the purchase.", CozyToastTone.Error); - Log(CozyCollectorConsts.CapabilityStore, "Purchase rejected", response.Error); - return; - } - } - catch (Exception exception) - { - Toast("Purchase failed", exception.Message, CozyToastTone.Error); - Log(CozyCollectorConsts.CapabilityStore, "Purchase failed", exception.Message); - return; - } - - Toast("Purchase complete", offer.Name, CozyToastTone.Success); - Log(CozyCollectorConsts.CapabilityStore, "Purchased offer", offer.Name + " · " + offer.StoreSlug); - await RefreshPurchasablesAsync(); - } - - // --------------------------------------------------------------- - // Scenario store offer - // --------------------------------------------------------------- - - public void BuyScenarioOffer() - { - _ = BuyScenarioOfferAsync(); - } - - private async Task BuyScenarioOfferAsync() - { - var session = _storeSession; - var offerInfo = _currentOffer; - if (session == null || offerInfo == null || offerInfo.Offers == null || offerInfo.Offers.Count == 0) - return; - - // Mirror the Phaser OfferModal: prefer the configured offer, fall back to the first. - var offer = offerInfo.Offers.Find(candidate => candidate.OfferId == CozyCollectorConsts.OfferId) - ?? offerInfo.Offers[0]; - - try - { - var response = await Rudder.Client.Stores.PurchaseAsync( - offer.StoreSlug, - offer.OfferId, - "demo-offer-" + DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()); - - if (response != null && !response.Success) - { - Toast("Offer failed", response.Error ?? "The store rejected the purchase.", CozyToastTone.Error); - Log(CozyCollectorConsts.CapabilityStore, "Offer purchase rejected", response.Error); - return; - } - - session.Purchase(); - } - catch (Exception exception) - { - Toast("Offer failed", exception.Message, CozyToastTone.Error); - Log(CozyCollectorConsts.CapabilityStore, "Offer purchase failed", exception.Message); - return; - } - - _storeSession = null; - _currentOffer = null; - OfferChanged?.Invoke(); - SetModal(CozyModal.None); - Toast("Offer purchased", "Waiting for the scenario reward…", CozyToastTone.Success); - Log(CozyCollectorConsts.CapabilityStore, "Scenario offer purchased", offer.Name); - await RefreshPurchasablesAsync(); - } - - public void DeclineScenarioOffer() - { - var session = _storeSession; - if (session == null) - return; - - session.Decline(); - _storeSession = null; - _currentOffer = null; - OfferChanged?.Invoke(); - SetModal(CozyModal.None); - Toast("Offer declined", "The camp merchant will return later.", CozyToastTone.Info); - Log(CozyCollectorConsts.CapabilityStore, "Scenario offer declined", null); - } - - // --------------------------------------------------------------- - // Scenario leaderboard (dormant path, driven from the result modal) - // --------------------------------------------------------------- - - public void ClaimScenarioLeaderboardReward() - { - if (_leaderboardSession == null) - return; - - _leaderboardSession.RewardClaimed(); - _leaderboardSession = null; - Log(CozyCollectorConsts.CapabilityLeaderboard, "Scenario reward claimed", null); - } - - public void EndScenarioLeaderboard() - { - if (_leaderboardSession == null) - return; - - _leaderboardSession.End(); - _leaderboardSession = null; - Log(CozyCollectorConsts.CapabilityLeaderboard, "Scenario leaderboard ended", null); - } - - // --------------------------------------------------------------- - // Scenario handlers - // --------------------------------------------------------------- - - private void RegisterScenarioHandlers() - { - if (_scenarioHandlersRegistered || Rudder.State != RudderState.Ready) - return; - - Rudder.Client.Scenario.OnNotification += OnScenarioNotification; - Rudder.Client.Scenario.OnWait += OnScenarioWait; - Rudder.Client.Scenario.OnStoreOffer += OnScenarioStoreOffer; - Rudder.Client.Scenario.OnConfigChanged += OnScenarioConfigChanged; - Rudder.Client.Scenario.OnQuest += OnScenarioQuest; - Rudder.Client.Scenario.OnLeaderboard += OnScenarioLeaderboard; - Rudder.Client.Scenario.OnBattlePass += OnScenarioBattlePass; - Rudder.Client.Scenario.OnBattlePassLevel += OnScenarioBattlePassLevel; - Rudder.Client.Scenario.OnScenarioCompleted += OnScenarioCompleted; - Rudder.Client.Scenario.OnScenarioFailed += OnScenarioFailed; - _scenarioHandlersRegistered = true; - } - - private void UnregisterScenarioHandlers() - { - if (!_scenarioHandlersRegistered || Rudder.State != RudderState.Ready) - return; - - Rudder.Client.Scenario.OnNotification -= OnScenarioNotification; - Rudder.Client.Scenario.OnWait -= OnScenarioWait; - Rudder.Client.Scenario.OnStoreOffer -= OnScenarioStoreOffer; - Rudder.Client.Scenario.OnConfigChanged -= OnScenarioConfigChanged; - Rudder.Client.Scenario.OnQuest -= OnScenarioQuest; - Rudder.Client.Scenario.OnLeaderboard -= OnScenarioLeaderboard; - Rudder.Client.Scenario.OnBattlePass -= OnScenarioBattlePass; - Rudder.Client.Scenario.OnBattlePassLevel -= OnScenarioBattlePassLevel; - Rudder.Client.Scenario.OnScenarioCompleted -= OnScenarioCompleted; - Rudder.Client.Scenario.OnScenarioFailed -= OnScenarioFailed; - _scenarioHandlersRegistered = false; - } - - private void OnScenarioNotification(NotificationSession session) - { - var title = session.Get("title", ""); - var message = session.Get("message", ""); - Log(CozyCollectorConsts.CapabilityScenario, "Notification effect", string.IsNullOrEmpty(title) ? message : title); - Toast(string.IsNullOrEmpty(title) ? "LiveOps" : title, message, CozyToastTone.Info); - StartCoroutine(CompleteNotificationAfterDelay(session)); - } - - private IEnumerator CompleteNotificationAfterDelay(NotificationSession session) - { - yield return new WaitForSeconds(NotificationAutoCompleteSeconds); - session.Complete(); - _ = RefreshWalletsAfterNotificationAsync(); - } - - private async Task RefreshWalletsAfterNotificationAsync() - { - // Notification rewards may have landed on the wallet; pull fresh state. - try - { - await RefreshWalletsAsync(); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityWallet, "Wallet refresh failed", exception.Message); - } - } - - private void OnScenarioWait(WaitSession session) - { - Log(CozyCollectorConsts.CapabilityScenario, "Scenario wait", session.DeadlineUtc.ToString("O")); - } - - private void OnScenarioStoreOffer(StoreOfferSession session) - { - var storeSlug = session.Get("storeSlug", CozyCollectorConsts.StoreSlug); - Log(CozyCollectorConsts.CapabilityScenario, "Store-offer effect", storeSlug); - _ = PresentStoreOfferAsync(session, storeSlug); - } - - private async Task PresentStoreOfferAsync(StoreOfferSession session, string storeSlug) - { - try - { - var store = await Rudder.Client.Stores.GetAsync(storeSlug); - var offers = new List(); - if (store?.Offers != null) - { - foreach (var offer in store.Offers) - { - offers.Add(MapOffer(store.Slug, offer)); - } - } - - _storeSession = session; - _currentOffer = new CozyOfferInfo - { - StoreSlug = store?.Slug ?? storeSlug, - StoreName = store?.Name ?? storeSlug, - Offers = offers - }; - OfferChanged?.Invoke(); - OpenModal(CozyModal.Offer); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityStore, "Store offer unavailable", exception.Message); - Toast("Offer unavailable", exception.Message, CozyToastTone.Error); - session.Decline(); - } - } - - private void OnScenarioConfigChanged(ConfigChangedSession session) - { - // The SDK dispatch already applied the patches to the remote-config cache. - Log(CozyCollectorConsts.CapabilityScenario, "Remote config override applied", session.Context.NodeId); - RefreshTuning(true); - } - - private void OnScenarioQuest(QuestSession session) - { - Log(CozyCollectorConsts.CapabilityScenario, "Scenario quest node", session.Context.NodeId); - } - - private void OnScenarioLeaderboard(LeaderboardSession session) - { - // Dormant until a scenario emits a leaderboard node; shares the round-result modal. - _leaderboardSession = session; - Log(CozyCollectorConsts.CapabilityLeaderboard, "Leaderboard effect (scenario)", session.Context.NodeId); - _ = PresentScenarioLeaderboardAsync(); - } - - private async Task PresentScenarioLeaderboardAsync() - { - var entries = new List(); - try - { - entries = await ListLeaderboardAsync(); - } - catch (Exception exception) - { - Log(CozyCollectorConsts.CapabilityLeaderboard, "List failed", exception.Message); - } - - _roundResult = new CozyRoundResult - { - Score = _save.LastScore, - Best = _save.BestScore, - Collected = 0, - TopEntries = entries - }; - RoundResultChanged?.Invoke(); - SetModal(CozyModal.RoundResult); - } - - private void OnScenarioBattlePass(BattlePassSession session) - { - Log(CozyCollectorConsts.CapabilityScenario, "Scenario battlepass node", session.Context.NodeId); - } - - private void OnScenarioBattlePassLevel(BattlePassLevelSession session) - { - Log(CozyCollectorConsts.CapabilityScenario, "Scenario battlepass level node", session.Context.NodeId); - } - - private void OnScenarioCompleted(PlanRun run) - { - Log(CozyCollectorConsts.CapabilityScenario, "Scenario run completed", run.RunId); - } - - private void OnScenarioFailed(ScenarioFailedEvent failed) - { - Log(CozyCollectorConsts.CapabilityScenario, "Scenario run failed", failed.NodeId + ": " + failed.Exception.Message); - } - - // --------------------------------------------------------------- - // Inspector log / toasts - // --------------------------------------------------------------- - - public void Log(string capability, string message, string detail = null) - { - _logEntries.Insert(0, new CozyLogEntry - { - Capability = capability, - Message = message, - Detail = detail, - Timestamp = DateTime.Now - }); - if (_logEntries.Count > MaxLogEntries) - _logEntries.RemoveAt(_logEntries.Count - 1); - - LogAdded?.Invoke(); - } - - public void Toast(string title, string message, CozyToastTone tone) - { - ToastRequested?.Invoke(title, message, tone); - } - - // --------------------------------------------------------------- - // Helpers - // --------------------------------------------------------------- - - private void SetPhase(CozyPhase phase, string statusMessage) - { - if (_phase == phase && _statusMessage == statusMessage) - return; - - _phase = phase; - _statusMessage = statusMessage; - PhaseChanged?.Invoke(); - } - - private string WalletSummary() - { - if (_wallets.Count == 0) - return "empty"; - - var parts = new List(); - foreach (var wallet in _wallets) - { - parts.Add((wallet.Balance + " " + wallet.Currency).Trim()); - } - - return string.Join(" · ", parts); - } - - private static CozyShopOffer MapOffer(string storeSlug, Offer offer) - { - return new CozyShopOffer - { - StoreSlug = storeSlug, - OfferId = offer.Id, - Name = string.IsNullOrEmpty(offer.Name) ? offer.Id : offer.Name, - Price = offer.Price?.Amount ?? 0, - Currency = offer.Price?.Currency ?? string.Empty - }; - } - - private static string GetOrCreateNickname(string deviceId) - { - var existing = PlayerPrefs.GetString(CozyCollectorConsts.NicknamePrefsKey, string.Empty); - if (!string.IsNullOrEmpty(existing)) - return existing; - - // Nickname is generated locally once and passed to LoginWithDeviceAsync. - var compact = deviceId.Replace("-", string.Empty); - var suffix = compact.Length > 4 ? compact.Substring(0, 4) : compact; - var nickname = "Player-" + suffix; - PlayerPrefs.SetString(CozyCollectorConsts.NicknamePrefsKey, nickname); - PlayerPrefs.Save(); - return nickname; - } - - private static string ShortId(string value) - { - return value != null && value.Length > 10 ? value.Substring(0, 8) + "…" : value; - } - } -} diff --git a/Assets/LiveOpsExamples/Scripts/CozyCollectorController.cs.meta b/Assets/LiveOpsExamples/Scripts/CozyCollectorController.cs.meta deleted file mode 100644 index edb2657..0000000 --- a/Assets/LiveOpsExamples/Scripts/CozyCollectorController.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 05ab47060c2ef4476800002c4a956b85 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Scripts/CozyCollectorSpriteLibrary.cs b/Assets/LiveOpsExamples/Scripts/CozyCollectorSpriteLibrary.cs deleted file mode 100644 index 5de8748..0000000 --- a/Assets/LiveOpsExamples/Scripts/CozyCollectorSpriteLibrary.cs +++ /dev/null @@ -1,42 +0,0 @@ -using UnityEngine; - -namespace LiveOpsExamples -{ - /// - /// Baked sprite references for the Cozy Collector demo. Mirrors the Phaser - /// texture keys; falls back to the star sprite for - /// unknown slugs, same as the Phaser backpack icon mapping. - /// - [CreateAssetMenu(menuName = "LiveOps Examples/Cozy Collector Sprite Library")] - public class CozyCollectorSpriteLibrary : ScriptableObject - { - [SerializeField] private Sprite background; - [SerializeField] private Sprite player; - [SerializeField] private Sprite moonberry; - [SerializeField] private Sprite acorn; - [SerializeField] private Sprite star; - [SerializeField] private Sprite snack; - - public Sprite Background => background; - public Sprite Player => player; - public Sprite Moonberry => moonberry; - public Sprite Acorn => acorn; - public Sprite Star => star; - public Sprite Snack => snack; - - public Sprite ForSlug(string slug) - { - switch (slug) - { - case "background": - case "camp-bg": return background; - case "player": return player; - case "moonberry": return moonberry; - case "acorn": return acorn; - case "snack": return snack; - case "star": - default: return star; - } - } - } -} diff --git a/Assets/LiveOpsExamples/Scripts/CozyCollectorSpriteLibrary.cs.meta b/Assets/LiveOpsExamples/Scripts/CozyCollectorSpriteLibrary.cs.meta deleted file mode 100644 index e1ab539..0000000 --- a/Assets/LiveOpsExamples/Scripts/CozyCollectorSpriteLibrary.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 8cd851b86da394b9ca06595f889a49b3 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Scripts/GameWorld.cs b/Assets/LiveOpsExamples/Scripts/GameWorld.cs deleted file mode 100644 index 196f176..0000000 --- a/Assets/LiveOpsExamples/Scripts/GameWorld.cs +++ /dev/null @@ -1,149 +0,0 @@ -using System; -using UnityEngine; - -namespace LiveOpsExamples -{ - /// - /// Gameplay world for the Cozy Collector demo — the Unity port of the Phaser - /// GameScene.ts. Renders only the game world: player movement (WASD/arrows), - /// round timer, spawn cadence and pickups. All chrome lives in the UI panels, - /// all SDK calls in . - /// - /// The Phaser field is 1280×720 px at 100 PPU, i.e. 12.8×7.2 world units - /// centered on the origin; tuning speeds/intervals stay in Phaser units - /// (px/s, ms) and are converted here. - /// - public class GameWorld : MonoBehaviour - { - private const float PixelsPerUnit = 100f; - - [SerializeField] private SpriteRenderer player; - [SerializeField] private SnackSpawner spawner; - [SerializeField] private CozyCollectorController controller; - [SerializeField] private ScorePopupView scorePopupPrefab; - [SerializeField] private ParticleSystem collectBurstPrefab; - [SerializeField] private Vector2 moveMin = new Vector2(-6.0f, -3.2f); - [SerializeField] private Vector2 moveMax = new Vector2(6.0f, 3.2f); - - private bool _paused; - private float _spawnElapsedMs; - private int _lastSecond = -1; - private bool _finishRaised; - - public int Score { get; private set; } - public int Collected { get; private set; } - public float TimeLeftSeconds { get; private set; } - public bool RoundActive { get; private set; } - - public event Action StateChanged; - public event Action RoundFinished; - - private void Awake() - { - spawner.Player = player; - spawner.Collected += OnSnackCollected; - } - - private void OnDestroy() - { - spawner.Collected -= OnSnackCollected; - } - - private void Update() - { - MovePlayer(_paused || !RoundActive); - - if (!RoundActive || _paused) - return; - - TimeLeftSeconds = Mathf.Max(0f, TimeLeftSeconds - Time.deltaTime); - _spawnElapsedMs += Time.deltaTime * 1000f; - - if (_spawnElapsedMs >= controller.Tuning.SpawnIntervalMs) - { - _spawnElapsedMs = 0f; - spawner.Spawn(); - } - - var second = Mathf.CeilToInt(TimeLeftSeconds); - if (second != _lastSecond) - { - _lastSecond = second; - StateChanged?.Invoke(); - } - - if (TimeLeftSeconds <= 0f) - FinishRound(); - } - - public void SetPaused(bool paused) - { - _paused = paused; - } - - public void RestartRound() - { - Score = 0; - Collected = 0; - TimeLeftSeconds = controller.Tuning.RoundSeconds; - _spawnElapsedMs = 0f; - _lastSecond = -1; - _finishRaised = false; - spawner.Clear(); - RoundActive = true; - spawner.Spawn(); - StateChanged?.Invoke(); - } - - private void MovePlayer(bool frozen) - { - if (frozen) - return; - - var vx = (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A) ? -1 : 0) + - (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D) ? 1 : 0); - var vy = (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S) ? -1 : 0) + - (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W) ? 1 : 0); - - if (vx == 0 && vy == 0) - return; - - var direction = new Vector2(vx, vy).normalized; - var speed = controller.Tuning.PlayerSpeed / PixelsPerUnit; - var position = player.transform.position; - position += (Vector3)(direction * speed * Time.deltaTime); - position.x = Mathf.Clamp(position.x, moveMin.x, moveMax.x); - position.y = Mathf.Clamp(position.y, moveMin.y, moveMax.y); - player.transform.position = position; - - if (vx != 0) - player.flipX = vx < 0; - } - - private void OnSnackCollected(Snack snack) - { - var position = snack.transform.position; - var gain = Mathf.RoundToInt(controller.Tuning.CollectibleScore); - Score += gain; - Collected += 1; - - var popup = Instantiate(scorePopupPrefab, position, Quaternion.identity); - popup.Set(gain); - Instantiate(collectBurstPrefab, position, Quaternion.identity); - - StateChanged?.Invoke(); - } - - private void FinishRound() - { - if (_finishRaised) - return; - - _finishRaised = true; - RoundActive = false; - spawner.Clear(); - StateChanged?.Invoke(); - RoundFinished?.Invoke(Score, Collected); - } - } -} diff --git a/Assets/LiveOpsExamples/Scripts/GameWorld.cs.meta b/Assets/LiveOpsExamples/Scripts/GameWorld.cs.meta deleted file mode 100644 index 444608e..0000000 --- a/Assets/LiveOpsExamples/Scripts/GameWorld.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 952f52af0af8546eeab332b11e2e4bb7 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Scripts/ScorePopupView.cs b/Assets/LiveOpsExamples/Scripts/ScorePopupView.cs deleted file mode 100644 index 660816a..0000000 --- a/Assets/LiveOpsExamples/Scripts/ScorePopupView.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Collections; -using TMPro; -using UnityEngine; - -namespace LiveOpsExamples -{ - /// - /// World-space "+N" score popup. Floats up ~0.5 world units and fades out over - /// 0.7 s (Cubic.easeOut, like the Phaser floatScore tween), then destroys itself. - /// - public class ScorePopupView : MonoBehaviour - { - private const float FloatDistance = 0.5f; - private const float LifetimeSeconds = 0.7f; - - [SerializeField] private TextMeshPro label; - - public void Set(int gain) - { - label.text = "+" + gain; - StartCoroutine(Animate()); - } - - private IEnumerator Animate() - { - var start = transform.position; - var color = label.color; - var elapsed = 0f; - - while (elapsed < LifetimeSeconds) - { - elapsed += Time.deltaTime; - var t = Mathf.Clamp01(elapsed / LifetimeSeconds); - var eased = 1f - Mathf.Pow(1f - t, 3f); - transform.position = start + new Vector3(0f, FloatDistance * eased, 0f); - label.color = new Color(color.r, color.g, color.b, color.a * (1f - eased)); - yield return null; - } - - Destroy(gameObject); - } - } -} diff --git a/Assets/LiveOpsExamples/Scripts/ScorePopupView.cs.meta b/Assets/LiveOpsExamples/Scripts/ScorePopupView.cs.meta deleted file mode 100644 index dd4356f..0000000 --- a/Assets/LiveOpsExamples/Scripts/ScorePopupView.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b1db4bf03192148bf95ea374d128f349 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Scripts/Snack.cs b/Assets/LiveOpsExamples/Scripts/Snack.cs deleted file mode 100644 index 93df104..0000000 --- a/Assets/LiveOpsExamples/Scripts/Snack.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using UnityEngine; - -namespace LiveOpsExamples -{ - /// - /// A collectible snack. Bobs gently (sine, 0.08 world units amplitude, 650 ms - /// half-period — mirrors the Phaser yoyo tween) and raises - /// when the player overlaps its trigger, then destroys itself. - /// - [RequireComponent(typeof(SpriteRenderer))] - public class Snack : MonoBehaviour - { - private const float BobAmplitude = 0.08f; - private const float BobHalfPeriodSeconds = 0.65f; - - public SpriteRenderer Player { get; set; } - - public event Action Collected; - - private Vector3 _basePosition; - private float _elapsed; - - private void Start() - { - _basePosition = transform.position; - } - - private void Update() - { - _elapsed += Time.deltaTime; - var offset = Mathf.Sin(_elapsed * Mathf.PI / BobHalfPeriodSeconds) * BobAmplitude; - transform.position = _basePosition + new Vector3(0f, offset, 0f); - } - - private void OnTriggerEnter2D(Collider2D other) - { - if (Player == null || other.gameObject != Player.gameObject) - return; - - Collected?.Invoke(this); - Destroy(gameObject); - } - } -} diff --git a/Assets/LiveOpsExamples/Scripts/Snack.cs.meta b/Assets/LiveOpsExamples/Scripts/Snack.cs.meta deleted file mode 100644 index 9927319..0000000 --- a/Assets/LiveOpsExamples/Scripts/Snack.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 36b117cefc78541b9b42188266102562 \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Scripts/SnackSpawner.cs b/Assets/LiveOpsExamples/Scripts/SnackSpawner.cs deleted file mode 100644 index 8a198e7..0000000 --- a/Assets/LiveOpsExamples/Scripts/SnackSpawner.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace LiveOpsExamples -{ - /// - /// Spawns collectible snacks at random positions inside the configured bounds, - /// picking a random collectible slug (moonberry/acorn/star/snack) and applying - /// its sprite from the library. Mirrors GameScene.spawnCollectible. - /// - /// Phaser spawn margins x∈[115,1165], y∈[118,625] px on a 1280×720 field at - /// 100 PPU map to x∈[-5.25,5.25], y∈[-2.65,2.42] world units (y is flipped). - /// - public class SnackSpawner : MonoBehaviour - { - private static readonly string[] CollectibleSlugs = { "moonberry", "acorn", "star", "snack" }; - - [SerializeField] private Snack prefab; - [SerializeField] private CozyCollectorSpriteLibrary library; - [SerializeField] private Vector2 spawnMin = new Vector2(-5.25f, -2.65f); - [SerializeField] private Vector2 spawnMax = new Vector2(5.25f, 2.42f); - [SerializeField] private Transform parent; - - private readonly List _spawned = new List(); - - public SpriteRenderer Player { get; set; } - - public event Action Collected; - - public Snack Spawn() - { - var slug = CollectibleSlugs[UnityEngine.Random.Range(0, CollectibleSlugs.Length)]; - var position = new Vector3( - UnityEngine.Random.Range(spawnMin.x, spawnMax.x), - UnityEngine.Random.Range(spawnMin.y, spawnMax.y), - 0f); - - var snack = Instantiate(prefab, position, Quaternion.identity, parent); - var sprite = library.ForSlug(slug); - snack.GetComponent().sprite = sprite; - // Phaser setDisplaySize(52, 52) at 100 PPU -> 0.52 x 0.52 world units. - var spriteBounds = sprite.bounds.size; - var scale = new Vector3(0.52f / spriteBounds.x, 0.52f / spriteBounds.y, 1f); - snack.transform.localScale = scale; - // The prefab collider radius is tuned to snack.png; a circle collider's - // world radius scales by the largest transform axis, so retune per sprite. - snack.GetComponent().radius = 0.22f / Mathf.Max(scale.x, scale.y); - snack.Player = Player; - snack.Collected += OnSnackCollected; - _spawned.Add(snack); - return snack; - } - - public void Clear() - { - foreach (var snack in _spawned) - { - if (snack == null) - continue; - - snack.Collected -= OnSnackCollected; - Destroy(snack.gameObject); - } - - _spawned.Clear(); - } - - private void OnSnackCollected(Snack snack) - { - snack.Collected -= OnSnackCollected; - _spawned.Remove(snack); - Collected?.Invoke(snack); - } - } -} diff --git a/Assets/LiveOpsExamples/Scripts/SnackSpawner.cs.meta b/Assets/LiveOpsExamples/Scripts/SnackSpawner.cs.meta deleted file mode 100644 index c21de8b..0000000 --- a/Assets/LiveOpsExamples/Scripts/SnackSpawner.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: ec58b83d93d5b435abaaa64ecc05fe1a \ No newline at end of file diff --git a/Assets/LiveOpsExamples/Scripts/UI.meta b/Assets/LiveOpsExamples/Scripts/UI.meta deleted file mode 100644 index 37c7f8f..0000000 --- a/Assets/LiveOpsExamples/Scripts/UI.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c21c943a5e1bd4f79a2d6bcb2e3f30fb -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/LiveOpsExamples/Scripts/UI/BackpackModalPanel.cs b/Assets/LiveOpsExamples/Scripts/UI/BackpackModalPanel.cs deleted file mode 100644 index 4669826..0000000 --- a/Assets/LiveOpsExamples/Scripts/UI/BackpackModalPanel.cs +++ /dev/null @@ -1,81 +0,0 @@ -using UnityEngine; -using UnityEngine.UIElements; - -namespace LiveOpsExamples -{ - public class BackpackModalPanel : MonoBehaviour - { - [SerializeField] private PanelRenderer panelRenderer; - [SerializeField] private CozyCollectorController controller; - [SerializeField] private VisualTreeAsset backpackItemRowTemplate; - [SerializeField] private CozyCollectorSpriteLibrary spriteLibrary; - - private VisualElement _root; - private ScrollView _itemsScroll; - private VisualElement _emptyNote; - private Button _closeButton; - - private void OnEnable() - { - panelRenderer.RegisterUIReloadCallback(OnUIReload); - controller.ModalChanged += ApplyVisibility; - controller.BackpackChanged += Rebuild; - } - - private void OnDisable() - { - panelRenderer.UnregisterUIReloadCallback(OnUIReload); - controller.ModalChanged -= ApplyVisibility; - controller.BackpackChanged -= Rebuild; - } - - private void OnUIReload(PanelRenderer renderer, VisualElement root) - { - _root = root.Q("backpack-modal"); - _itemsScroll = _root.Q("backpack-items-scroll"); - _emptyNote = _root.Q("backpack-empty"); - _closeButton = _root.Q