Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f10fb3b3aa | ||
|
|
d1c8215ed8 | ||
|
|
d570fddbc8 | ||
|
|
15b06b8f42 | ||
|
|
57fc7e0006 | ||
|
|
964cb23d9d | ||
|
|
bcb870f62e | ||
|
|
ababe380df | ||
|
|
c86f43a806 | ||
|
|
26c0a20520 | ||
|
|
c2124e621c | ||
|
|
010b0437af | ||
|
|
85cc92c1ef | ||
|
|
54ea024850 | ||
|
|
00cec2b99b | ||
|
|
7143d45195 | ||
|
|
d44f141cfa | ||
|
|
06eac2bb28 | ||
|
|
ee894c80cd | ||
|
|
629b5016df |
Vendored
+1
-1
@@ -60,7 +60,7 @@
|
|||||||
"*.asset": "yaml",
|
"*.asset": "yaml",
|
||||||
"*.meta": "yaml",
|
"*.meta": "yaml",
|
||||||
"*.prefab": "yaml",
|
"*.prefab": "yaml",
|
||||||
"*.unity": "yaml",
|
"*.unity": "yaml"
|
||||||
},
|
},
|
||||||
"explorer.fileNesting.enabled": true,
|
"explorer.fileNesting.enabled": true,
|
||||||
"explorer.fileNesting.patterns": {
|
"explorer.fileNesting.patterns": {
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.SceneManagement;
|
||||||
|
|
||||||
|
// Tools -> Fix Camera & HUD: один раз исправить сцену и сохранить.
|
||||||
|
// - HUD_Canvas -> Screen Space Overlay, отвязан от камеры
|
||||||
|
// - с камеры убраны CameraZoom / CameraController / FlyCamera, добавлена CityCamera
|
||||||
|
// - удалены компоненты с "Missing script" (скрипты, которых в проекте уже нет)
|
||||||
|
public static class CameraHUDFixer
|
||||||
|
{
|
||||||
|
// [MenuItem("Tools/Fix Camera & HUD")] -- отключено, см. RestoreOldCamera
|
||||||
|
public static void Fix()
|
||||||
|
{
|
||||||
|
int missing = 0;
|
||||||
|
var hud = GameObject.Find("HUD_Canvas");
|
||||||
|
if (hud != null) missing += GameObjectUtility.RemoveMonoBehavioursWithMissingScript(hud);
|
||||||
|
if (Camera.main != null) missing += GameObjectUtility.RemoveMonoBehavioursWithMissingScript(Camera.main.gameObject);
|
||||||
|
|
||||||
|
int changes = HUDCameraSetup.Apply(true);
|
||||||
|
|
||||||
|
if (hud != null) EditorSceneManager.MarkSceneDirty(hud.scene);
|
||||||
|
else if (Camera.main != null) EditorSceneManager.MarkSceneDirty(Camera.main.gameObject.scene);
|
||||||
|
|
||||||
|
Debug.Log("Камера и HUD исправлены: изменений " + changes + ", удалено пустых скриптов " + missing +
|
||||||
|
". Сохрани сцену (Ctrl+S). Границы карты камеры: компонент CityCamera на Main Camera.");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 43380bdc85562cc4abb95b707e06cfb6
|
||||||
@@ -0,0 +1,337 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.Events;
|
||||||
|
using UnityEditor.SceneManagement;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// Кладётся в Assets/Editor/.
|
||||||
|
// Tools -> Build HUD Panels:
|
||||||
|
// 1) находит HUD_Canvas,
|
||||||
|
// 2) создаёт для каждой кнопки свою панель (заголовок + крестик + область Content),
|
||||||
|
// 3) вешает на панель её скрипт (QuestsPanel, ShopPanel...) -- он сам рисует содержимое в игре,
|
||||||
|
// 4) вешает UIPanelManager и подключает onClick ВСЕХ кнопок по их именам,
|
||||||
|
// 5) добавляет красные значки (HUDBadge) на кнопки, где бывает "что забрать".
|
||||||
|
// Можно запускать повторно -- старые панели пересоздаются.
|
||||||
|
public class HUDPanelsBuilder
|
||||||
|
{
|
||||||
|
class Entry
|
||||||
|
{
|
||||||
|
public string button, id, title; public Type panel; public bool badge;
|
||||||
|
public Entry(string button, string id, string title, Type panel, bool badge)
|
||||||
|
{ this.button = button; this.id = id; this.title = title; this.panel = panel; this.badge = badge; }
|
||||||
|
}
|
||||||
|
|
||||||
|
// имя кнопки в иерархии -> id панели, заголовок, скрипт панели, нужен ли значок
|
||||||
|
static readonly Entry[] Map =
|
||||||
|
{
|
||||||
|
new Entry("RightBtn_Quests", "Quests", "ЗАДАНИЯ", typeof(QuestsPanel), true),
|
||||||
|
new Entry("RightBtn_Events", "Events", "СОБЫТИЯ", typeof(EventsPanel), true),
|
||||||
|
new Entry("RightBtn_Rewards", "Rewards", "НАГРАДЫ", typeof(RewardsPanel), true),
|
||||||
|
new Entry("NavBtn_Mail", "Mail", "ПОЧТА", typeof(MailPanel), true),
|
||||||
|
new Entry("SettingsButton", "Settings", "НАСТРОЙКИ", typeof(SettingsPanel), false),
|
||||||
|
new Entry("PlayerAvatar", "Profile", "ПРОФИЛЬ", typeof(ProfilePanel), false),
|
||||||
|
new Entry("Nav_Hero", "Hero", "ГЕРОЙ", typeof(HeroPanel), true),
|
||||||
|
new Entry("Nav_Battle", "Battle", "БОЙ", typeof(BattlePanel), false),
|
||||||
|
new Entry("Nav_Arena", "Arena", "АРЕНА", typeof(ArenaPanel), true),
|
||||||
|
new Entry("Nav_Troops", "Troops", "ВОЙСКА", typeof(TroopsPanel), false),
|
||||||
|
new Entry("Nav_Shop", "Shop", "МАГАЗИН", typeof(ShopPanel), true),
|
||||||
|
new Entry("Nav_World", "World", null, null, false), // кнопка "МИР" -> сцена большой карты (UIPanelManager.Open)
|
||||||
|
new Entry("Nav_Home", "Home", null, null, false), // без панели: закрывает всё
|
||||||
|
};
|
||||||
|
|
||||||
|
[MenuItem("Tools/Build HUD Panels")]
|
||||||
|
public static void Build()
|
||||||
|
{
|
||||||
|
GameObject canvasGO = GameObject.Find("HUD_Canvas");
|
||||||
|
if (canvasGO == null) { Debug.LogError("Не найден объект HUD_Canvas на сцене."); return; }
|
||||||
|
|
||||||
|
|
||||||
|
// казармы: префаб + данные здания + в список стройки
|
||||||
|
EnsureBarracks();
|
||||||
|
|
||||||
|
// менеджер
|
||||||
|
UIPanelManager manager = canvasGO.GetComponent<UIPanelManager>();
|
||||||
|
if (manager == null) manager = canvasGO.AddComponent<UIPanelManager>();
|
||||||
|
manager.panels.Clear();
|
||||||
|
|
||||||
|
// корень для панелей (пересоздаём)
|
||||||
|
Transform old = canvasGO.transform.Find("Panels");
|
||||||
|
if (old != null) UnityEngine.Object.DestroyImmediate(old.gameObject);
|
||||||
|
GameObject root = new GameObject("Panels", typeof(RectTransform));
|
||||||
|
root.transform.SetParent(canvasGO.transform, false);
|
||||||
|
Stretch(root.GetComponent<RectTransform>(), Vector4.zero);
|
||||||
|
|
||||||
|
// Корень сам не блокирует клики (нет Image), поэтому нижняя/верхняя панели HUD остаются живыми.
|
||||||
|
int wired = 0;
|
||||||
|
string missing = "";
|
||||||
|
foreach (var m in Map)
|
||||||
|
{
|
||||||
|
if (m.title != null)
|
||||||
|
{
|
||||||
|
// карте мира нужно больше места -- её окно почти на весь экран между верхней и нижней панелями
|
||||||
|
Vector4 offsets = m.id == "World" ? new Vector4(16, 145, 16, 195) : new Vector4(30, 250, 30, 230);
|
||||||
|
GameObject panel = CreatePanel(root.transform, m.id, m.title, manager, offsets);
|
||||||
|
if (m.panel != null) panel.AddComponent(m.panel);
|
||||||
|
manager.panels.Add(new UIPanelManager.PanelEntry { id = m.id, panel = panel });
|
||||||
|
}
|
||||||
|
|
||||||
|
Button btn = FindButton(canvasGO.transform, m.button);
|
||||||
|
if (btn == null && m.id == "World") btn = CreateWorldButton(canvasGO.transform, root.transform);
|
||||||
|
if (btn == null) { Debug.LogWarning("Кнопка не найдена: " + m.button); missing += " " + m.button; continue; }
|
||||||
|
|
||||||
|
// убираем старые подписки из Inspector и вешаем свою
|
||||||
|
for (int i = btn.onClick.GetPersistentEventCount() - 1; i >= 0; i--)
|
||||||
|
UnityEventTools.RemovePersistentListener(btn.onClick, i);
|
||||||
|
UnityEventTools.AddStringPersistentListener(btn.onClick, manager.Open, m.id);
|
||||||
|
|
||||||
|
// красный значок "есть что забрать"
|
||||||
|
HUDBadge badge = btn.GetComponent<HUDBadge>();
|
||||||
|
if (m.badge)
|
||||||
|
{
|
||||||
|
if (badge == null) badge = btn.gameObject.AddComponent<HUDBadge>();
|
||||||
|
badge.panelId = m.id;
|
||||||
|
}
|
||||||
|
else if (badge != null) UnityEngine.Object.DestroyImmediate(badge);
|
||||||
|
|
||||||
|
wired++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Кнопка "СТРОЙКА": включает/выключает режим стройки (тап по участку -> выбор здания).
|
||||||
|
// Старое меню стройки прячем: при запуске игры оно больше не открывается.
|
||||||
|
GameObject buildMenu = null;
|
||||||
|
foreach (var t in canvasGO.GetComponentsInChildren<Transform>(true))
|
||||||
|
if (t.name == "BuildMenuPanel") { buildMenu = t.gameObject; break; }
|
||||||
|
if (buildMenu != null) buildMenu.SetActive(false);
|
||||||
|
|
||||||
|
BuildModeController buildMode = canvasGO.GetComponent<BuildModeController>();
|
||||||
|
if (buildMode == null) buildMode = canvasGO.AddComponent<BuildModeController>();
|
||||||
|
Button buildBtn = FindButton(canvasGO.transform, "Nav_Build");
|
||||||
|
if (buildBtn == null)
|
||||||
|
buildBtn = CreateSideButton(canvasGO.transform, root.transform, "Nav_Build", "СТРОЙКА",
|
||||||
|
"Assets/UI/HUD v2/Рюкзак/v1.png", new Vector2(30, 400), new Color(0.55f, 0.4f, 0.2f));
|
||||||
|
for (int i = buildBtn.onClick.GetPersistentEventCount() - 1; i >= 0; i--)
|
||||||
|
UnityEventTools.RemovePersistentListener(buildBtn.onClick, i);
|
||||||
|
UnityEventTools.AddVoidPersistentListener(buildBtn.onClick, buildMode.ToggleMode);
|
||||||
|
buildMode.modeButton = buildBtn;
|
||||||
|
buildMode.legacyBuildMenu = buildMenu;
|
||||||
|
EditorUtility.SetDirty(buildMode);
|
||||||
|
|
||||||
|
// Меню стройки растянуто на весь экран и закрывало все кнопки HUD (ловило клики и белило экран).
|
||||||
|
// Делаем его фон прозрачным и "сквозным" -- кнопки зданий внутри продолжают работать.
|
||||||
|
foreach (string see in new[] { "BuildMenuPanel", "ButtonContainer" })
|
||||||
|
{
|
||||||
|
foreach (var t in canvasGO.GetComponentsInChildren<Transform>(true))
|
||||||
|
{
|
||||||
|
if (t.name != see) continue;
|
||||||
|
var img = t.GetComponent<Image>();
|
||||||
|
if (img == null) continue;
|
||||||
|
var c = img.color; c.a = 0f; img.color = c;
|
||||||
|
img.raycastTarget = false;
|
||||||
|
EditorUtility.SetDirty(img);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorUtility.SetDirty(manager);
|
||||||
|
EditorSceneManager.MarkSceneDirty(canvasGO.scene);
|
||||||
|
Debug.Log("Готово: панелей " + manager.panels.Count + ", подключено кнопок " + wired + " из " + Map.Length +
|
||||||
|
(missing.Length > 0 ? ". Не найдены:" + missing : "") + ". Не забудь сохранить сцену (Ctrl+S).");
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===================== КАЗАРМЫ =====================
|
||||||
|
|
||||||
|
const string BarracksPrefabPath = "Assets/Prefab/Buildings/Barracks.prefab";
|
||||||
|
const string BarracksDataPath = "Assets/Prefab/Buildings/Data_Barracks.asset";
|
||||||
|
|
||||||
|
[MenuItem("Tools/Create Barracks")]
|
||||||
|
public static void EnsureBarracks()
|
||||||
|
{
|
||||||
|
Sprite icon = LoadSprite("Assets/UI/HUD v2/Войска/v1.png");
|
||||||
|
GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>(BarracksPrefabPath);
|
||||||
|
|
||||||
|
if (prefab == null)
|
||||||
|
{
|
||||||
|
// берём готовое здание как шаблон: тот же масштаб, слой, материал, коллайдер
|
||||||
|
string template = "Assets/Prefab/Buildings/Food.prefab";
|
||||||
|
if (AssetDatabase.LoadAssetAtPath<GameObject>(template) == null)
|
||||||
|
{
|
||||||
|
var bmT = UnityEngine.Object.FindAnyObjectByType<BuildManager>();
|
||||||
|
if (bmT != null)
|
||||||
|
foreach (var b in bmT.allBuildings)
|
||||||
|
if (b != null && b.prefab != null) { template = AssetDatabase.GetAssetPath(b.prefab); break; }
|
||||||
|
}
|
||||||
|
if (!AssetDatabase.CopyAsset(template, BarracksPrefabPath))
|
||||||
|
{
|
||||||
|
Debug.LogError("Не удалось создать префаб казарм из " + template);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameObject root = PrefabUtility.LoadPrefabContents(BarracksPrefabPath);
|
||||||
|
root.name = "Barracks";
|
||||||
|
foreach (var c in root.GetComponents<ResourceCollector>()) UnityEngine.Object.DestroyImmediate(c);
|
||||||
|
foreach (var c in root.GetComponents<ResourceProducer>()) UnityEngine.Object.DestroyImmediate(c);
|
||||||
|
foreach (var c in root.GetComponents<BuildingUI>()) UnityEngine.Object.DestroyImmediate(c);
|
||||||
|
var kids = new System.Collections.Generic.List<GameObject>();
|
||||||
|
foreach (Transform ch in root.transform) kids.Add(ch.gameObject); // полоска запаса ресурса -- не нужна
|
||||||
|
foreach (var k in kids) UnityEngine.Object.DestroyImmediate(k);
|
||||||
|
|
||||||
|
var sr = root.GetComponent<SpriteRenderer>();
|
||||||
|
if (sr != null)
|
||||||
|
{
|
||||||
|
if (icon != null)
|
||||||
|
{
|
||||||
|
Vector2 oldSize = sr.sprite != null ? (Vector2)sr.sprite.bounds.size : Vector2.one;
|
||||||
|
sr.sprite = icon;
|
||||||
|
sr.color = Color.white;
|
||||||
|
float k = Mathf.Min(oldSize.x / icon.bounds.size.x, oldSize.y / icon.bounds.size.y);
|
||||||
|
root.transform.localScale = Vector3.Scale(root.transform.localScale, new Vector3(k, k, 1));
|
||||||
|
}
|
||||||
|
else sr.color = new Color(1f, 0.6f, 0.6f); // нет иконки -- хотя бы отличаем цветом
|
||||||
|
|
||||||
|
var box = root.GetComponent<BoxCollider2D>();
|
||||||
|
if (box != null && sr.sprite != null) { box.size = sr.sprite.bounds.size; box.offset = sr.sprite.bounds.center; }
|
||||||
|
}
|
||||||
|
if (root.GetComponent<Barracks>() == null) root.AddComponent<Barracks>();
|
||||||
|
PrefabUtility.SaveAsPrefabAsset(root, BarracksPrefabPath);
|
||||||
|
PrefabUtility.UnloadPrefabContents(root);
|
||||||
|
prefab = AssetDatabase.LoadAssetAtPath<GameObject>(BarracksPrefabPath);
|
||||||
|
Debug.Log("Создан префаб казарм: " + BarracksPrefabPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildingData data = AssetDatabase.LoadAssetAtPath<BuildingData>(BarracksDataPath);
|
||||||
|
if (data == null)
|
||||||
|
{
|
||||||
|
data = ScriptableObject.CreateInstance<BuildingData>();
|
||||||
|
data.buildingName = "Казармы";
|
||||||
|
data.icon = icon;
|
||||||
|
data.prefab = prefab;
|
||||||
|
data.requiredTownHallLevel = 1;
|
||||||
|
data.cost = new[]
|
||||||
|
{
|
||||||
|
new ResourceCost { type = ResourceType.Wood, amount = 300 },
|
||||||
|
new ResourceCost { type = ResourceType.Stone, amount = 200 },
|
||||||
|
};
|
||||||
|
AssetDatabase.CreateAsset(data, BarracksDataPath);
|
||||||
|
AssetDatabase.SaveAssets();
|
||||||
|
Debug.Log("Созданы данные здания: " + BarracksDataPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
var bm = UnityEngine.Object.FindAnyObjectByType<BuildManager>();
|
||||||
|
if (bm != null && !bm.allBuildings.Contains(data))
|
||||||
|
{
|
||||||
|
bm.allBuildings.Add(data);
|
||||||
|
EditorUtility.SetDirty(bm);
|
||||||
|
EditorSceneManager.MarkSceneDirty(bm.gameObject.scene);
|
||||||
|
Debug.Log("Казармы добавлены в список стройки (BuildManager)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Sprite LoadSprite(string path)
|
||||||
|
{
|
||||||
|
foreach (var a in AssetDatabase.LoadAllAssetsAtPath(path))
|
||||||
|
if (a is Sprite) return (Sprite)a;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ищем объект по имени среди всех детей (включая выключенные); Button может быть на нём или внутри
|
||||||
|
static Button FindButton(Transform root, string name)
|
||||||
|
{
|
||||||
|
foreach (var t in root.GetComponentsInChildren<Transform>(true))
|
||||||
|
{
|
||||||
|
if (t.name != name) continue;
|
||||||
|
Button b = t.GetComponent<Button>();
|
||||||
|
if (b == null) b = t.GetComponentInChildren<Button>(true);
|
||||||
|
if (b == null) b = t.gameObject.AddComponent<Button>(); // на случай если там просто Image
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Кнопка "МИР" слева над нижней панелью (если дизайнер ещё не сделал свою с именем Nav_World)
|
||||||
|
static Button CreateWorldButton(Transform canvas, Transform panelsRoot)
|
||||||
|
{
|
||||||
|
return CreateSideButton(canvas, panelsRoot, "Nav_World", "МИР", "Assets/UI/HUD v2/Мир/v1.png",
|
||||||
|
new Vector2(30, 210), new Color(0.2f, 0.45f, 0.3f));
|
||||||
|
}
|
||||||
|
|
||||||
|
static Button CreateSideButton(Transform canvas, Transform panelsRoot, string objName, string label, string spritePath, Vector2 pos, Color fallback)
|
||||||
|
{
|
||||||
|
GameObject go = new GameObject(objName, typeof(RectTransform), typeof(Image), typeof(Button));
|
||||||
|
go.transform.SetParent(canvas, false);
|
||||||
|
go.transform.SetSiblingIndex(panelsRoot.GetSiblingIndex()); // под панелями, чтобы открытая панель её закрывала
|
||||||
|
RectTransform rt = go.GetComponent<RectTransform>();
|
||||||
|
rt.anchorMin = rt.anchorMax = rt.pivot = new Vector2(0, 0);
|
||||||
|
rt.sizeDelta = new Vector2(150, 150);
|
||||||
|
rt.anchoredPosition = pos;
|
||||||
|
|
||||||
|
var img = go.GetComponent<Image>();
|
||||||
|
Sprite sprite = null;
|
||||||
|
foreach (var a in AssetDatabase.LoadAllAssetsAtPath(spritePath))
|
||||||
|
if (a is Sprite) { sprite = (Sprite)a; break; }
|
||||||
|
if (sprite != null) { img.sprite = sprite; img.preserveAspect = true; }
|
||||||
|
else img.color = fallback;
|
||||||
|
|
||||||
|
GameObject t = new GameObject("Label", typeof(RectTransform), typeof(TextMeshProUGUI));
|
||||||
|
t.transform.SetParent(go.transform, false);
|
||||||
|
var tmp = t.GetComponent<TextMeshProUGUI>();
|
||||||
|
tmp.text = label; tmp.fontSize = 30; tmp.fontStyle = FontStyles.Bold;
|
||||||
|
tmp.alignment = TextAlignmentOptions.Center; tmp.color = Color.white; tmp.raycastTarget = false;
|
||||||
|
tmp.outlineWidth = 0.25f; tmp.outlineColor = Color.black;
|
||||||
|
RectTransform tr = t.GetComponent<RectTransform>();
|
||||||
|
tr.anchorMin = new Vector2(0, 0); tr.anchorMax = new Vector2(1, 0); tr.pivot = new Vector2(0.5f, 1);
|
||||||
|
tr.sizeDelta = new Vector2(0, 40); tr.anchoredPosition = new Vector2(0, 8);
|
||||||
|
return go.GetComponent<Button>();
|
||||||
|
}
|
||||||
|
|
||||||
|
static GameObject CreatePanel(Transform parent, string id, string title, UIPanelManager manager, Vector4 offsets)
|
||||||
|
{
|
||||||
|
// окно оставляет сверху и снизу место под TopPanel и BottomNavBar, чтобы они были кликабельны
|
||||||
|
GameObject go = new GameObject("Panel_" + id, typeof(RectTransform), typeof(Image));
|
||||||
|
go.transform.SetParent(parent, false);
|
||||||
|
go.GetComponent<Image>().color = new Color(0.1f, 0.12f, 0.15f, 0.97f);
|
||||||
|
Stretch(go.GetComponent<RectTransform>(), offsets); // left, top, right, bottom
|
||||||
|
|
||||||
|
// заголовок
|
||||||
|
GameObject t = new GameObject("Title", typeof(RectTransform), typeof(TextMeshProUGUI));
|
||||||
|
t.transform.SetParent(go.transform, false);
|
||||||
|
var tmp = t.GetComponent<TextMeshProUGUI>();
|
||||||
|
tmp.text = title; tmp.fontSize = 52; tmp.fontStyle = FontStyles.Bold;
|
||||||
|
tmp.alignment = TextAlignmentOptions.Center; tmp.color = new Color(0.95f, 0.75f, 0.25f);
|
||||||
|
tmp.raycastTarget = false;
|
||||||
|
RectTransform tr = t.GetComponent<RectTransform>();
|
||||||
|
tr.anchorMin = new Vector2(0, 1); tr.anchorMax = new Vector2(1, 1); tr.pivot = new Vector2(0.5f, 1);
|
||||||
|
tr.sizeDelta = new Vector2(0, 110); tr.anchoredPosition = Vector2.zero;
|
||||||
|
|
||||||
|
// область содержимого: сюда скрипт панели рисует списки, кнопки и т.д.
|
||||||
|
GameObject content = new GameObject("Content", typeof(RectTransform));
|
||||||
|
content.transform.SetParent(go.transform, false);
|
||||||
|
Stretch(content.GetComponent<RectTransform>(), new Vector4(20, 120, 20, 20));
|
||||||
|
|
||||||
|
// крестик
|
||||||
|
GameObject c = new GameObject("CloseButton", typeof(RectTransform), typeof(Image), typeof(Button));
|
||||||
|
c.transform.SetParent(go.transform, false);
|
||||||
|
c.GetComponent<Image>().color = new Color(0.6f, 0.15f, 0.15f);
|
||||||
|
RectTransform cr = c.GetComponent<RectTransform>();
|
||||||
|
cr.anchorMin = cr.anchorMax = cr.pivot = new Vector2(1, 1);
|
||||||
|
cr.sizeDelta = new Vector2(90, 90); cr.anchoredPosition = new Vector2(-12, -10);
|
||||||
|
GameObject x = new GameObject("X", typeof(RectTransform), typeof(TextMeshProUGUI));
|
||||||
|
x.transform.SetParent(c.transform, false);
|
||||||
|
var xt = x.GetComponent<TextMeshProUGUI>();
|
||||||
|
xt.text = "X"; xt.fontSize = 44; xt.alignment = TextAlignmentOptions.Center; xt.color = Color.white;
|
||||||
|
xt.raycastTarget = false;
|
||||||
|
Stretch(x.GetComponent<RectTransform>(), Vector4.zero);
|
||||||
|
UnityEventTools.AddVoidPersistentListener(c.GetComponent<Button>().onClick, manager.CloseAll);
|
||||||
|
|
||||||
|
go.SetActive(false);
|
||||||
|
return go;
|
||||||
|
}
|
||||||
|
|
||||||
|
// left, top, right, bottom -- отступы от краёв родителя
|
||||||
|
static void Stretch(RectTransform rt, Vector4 ltrb)
|
||||||
|
{
|
||||||
|
rt.anchorMin = Vector2.zero; rt.anchorMax = Vector2.one;
|
||||||
|
rt.offsetMin = new Vector2(ltrb.x, ltrb.w);
|
||||||
|
rt.offsetMax = new Vector2(-ltrb.z, -ltrb.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 26bcfec97167cdb4b9dee113e5f85abc
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.SceneManagement;
|
||||||
|
|
||||||
|
// HUD ПРИКРЕПЛЁН К КАМЕРЕ (Canvas: Screen Space - Camera):
|
||||||
|
// - HUD рисуется камерой и всегда занимает экран одинаково -- при зуме и перемещении не плывёт и не масштабируется
|
||||||
|
// - карту можно двигать и зумить (CameraController), клики по кнопкам HUD работают
|
||||||
|
// - спрайты внутри HUD (например "Рамка в середине") рисуются правильно -- в этом режиме Canvas живёт в мире перед камерой
|
||||||
|
// - CameraZoom больше не нужен (он масштабировал HUD вручную и делал это в обратную сторону)
|
||||||
|
//
|
||||||
|
// Применяется сам один раз после компиляции, если сцена ещё не в этом режиме. Вручную: Tools -> HUD: Attach To Camera.
|
||||||
|
[InitializeOnLoad]
|
||||||
|
public static class RestoreOldCamera
|
||||||
|
{
|
||||||
|
static readonly Vector2 DesignSize = new Vector2(2007.7732f, 1032.786f); // размер, под который собран HUD
|
||||||
|
|
||||||
|
static RestoreOldCamera() { EditorApplication.delayCall += Auto; }
|
||||||
|
|
||||||
|
static void Auto()
|
||||||
|
{
|
||||||
|
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
||||||
|
var hud = GameObject.Find("HUD_Canvas");
|
||||||
|
var cam = Camera.main;
|
||||||
|
if (hud == null || cam == null) return;
|
||||||
|
var canvas = hud.GetComponent<Canvas>();
|
||||||
|
var sc = hud.GetComponent<CanvasScaler>();
|
||||||
|
bool ok = canvas != null && canvas.renderMode == RenderMode.ScreenSpaceCamera && canvas.worldCamera == cam
|
||||||
|
&& cam.GetComponent<CameraZoom>() == null && cam.GetComponent<CityCamera>() == null
|
||||||
|
&& sc != null && sc.enabled && sc.screenMatchMode == CanvasScaler.ScreenMatchMode.Expand;
|
||||||
|
if (!ok) Apply();
|
||||||
|
}
|
||||||
|
|
||||||
|
[MenuItem("Tools/HUD: Attach To Camera")]
|
||||||
|
public static void Apply()
|
||||||
|
{
|
||||||
|
var cam = Camera.main;
|
||||||
|
var hud = GameObject.Find("HUD_Canvas");
|
||||||
|
if (cam == null || hud == null) { Debug.LogError("Нужны Main Camera и HUD_Canvas"); return; }
|
||||||
|
|
||||||
|
// ---- камера: только CameraController (перемещение + зум) ----
|
||||||
|
foreach (var c in cam.GetComponents<CityCamera>()) Object.DestroyImmediate(c);
|
||||||
|
foreach (var c in cam.GetComponents<CameraZoom>()) Object.DestroyImmediate(c);
|
||||||
|
var ctrl = cam.GetComponent<CameraController>();
|
||||||
|
if (ctrl == null)
|
||||||
|
{
|
||||||
|
ctrl = cam.gameObject.AddComponent<CameraController>();
|
||||||
|
ctrl.moveSpeed = 5f; ctrl.zoomSpeed = 2f; ctrl.minOrthoSize = 2f; ctrl.maxOrthoSize = 50f;
|
||||||
|
}
|
||||||
|
ctrl.enabled = true;
|
||||||
|
cam.orthographic = true;
|
||||||
|
cam.transform.localScale = Vector3.one;
|
||||||
|
cam.transform.rotation = Quaternion.identity;
|
||||||
|
if (cam.orthographicSize < 2f || cam.orthographicSize > 50f) cam.orthographicSize = 10f;
|
||||||
|
|
||||||
|
// ---- HUD: Screen Space - Camera ----
|
||||||
|
var canvas = hud.GetComponent<Canvas>();
|
||||||
|
var rt = (RectTransform)hud.transform;
|
||||||
|
if (rt.parent != null) rt.SetParent(null, false);
|
||||||
|
canvas.renderMode = RenderMode.ScreenSpaceCamera;
|
||||||
|
canvas.worldCamera = cam;
|
||||||
|
canvas.planeDistance = 5f; // между камерой (z=-10) и картой (z=0)
|
||||||
|
canvas.sortingOrder = 100; // поверх зданий
|
||||||
|
rt.localRotation = Quaternion.identity;
|
||||||
|
|
||||||
|
var scaler = hud.GetComponent<CanvasScaler>();
|
||||||
|
if (scaler == null) scaler = hud.AddComponent<CanvasScaler>();
|
||||||
|
scaler.enabled = true;
|
||||||
|
scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
|
||||||
|
scaler.referenceResolution = DesignSize;
|
||||||
|
// Expand: весь HUD (2007x1032) всегда помещается на экран целиком -- и в узком окне, и на широком телефоне
|
||||||
|
scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.Expand;
|
||||||
|
|
||||||
|
// спрайты внутри HUD -- поверх карты
|
||||||
|
foreach (var sr in hud.GetComponentsInChildren<SpriteRenderer>(true))
|
||||||
|
{
|
||||||
|
if (sr.sortingOrder < 100) sr.sortingOrder = 100;
|
||||||
|
if (!sr.gameObject.activeSelf) sr.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorSceneManager.MarkSceneDirty(hud.scene);
|
||||||
|
Debug.Log("HUD прикреплён к камере (Screen Space - Camera), CameraZoom убран. Сохрани сцену: Ctrl+S.");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f4f66fb7b626a0e41af6fe3fe793e917
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
using System.IO;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// Tools -> Сбросить сохранения. Для разработчиков: новая игра одной кнопкой.
|
||||||
|
// - в Play Mode -- тот же сброс, что кнопка в Настройках (все модули + прогресс);
|
||||||
|
// - вне Play Mode -- просто удаляет файлы save.json и progress.json.
|
||||||
|
// Документ: Docs/Modules/Save.md
|
||||||
|
public static class SaveResetMenu
|
||||||
|
{
|
||||||
|
static readonly string[] SaveFiles = { "save.json", "progress.json" };
|
||||||
|
|
||||||
|
[MenuItem("Tools/Сбросить сохранения")]
|
||||||
|
static void ResetSaves()
|
||||||
|
{
|
||||||
|
if (!EditorUtility.DisplayDialog("Сбросить сохранения?",
|
||||||
|
"Ресурсы, здания, Ратуша, войска, походы, задания и почта начнутся заново.\nЭто нельзя отменить.",
|
||||||
|
"Сбросить", "Отмена"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (Application.isPlaying)
|
||||||
|
{
|
||||||
|
GameProgress.Instance.ResetAll();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int deleted = 0;
|
||||||
|
foreach (var name in SaveFiles)
|
||||||
|
{
|
||||||
|
string path = Path.Combine(Application.persistentDataPath, name);
|
||||||
|
if (!File.Exists(path)) continue;
|
||||||
|
File.Delete(path);
|
||||||
|
deleted++;
|
||||||
|
}
|
||||||
|
Debug.Log($"[СОХРАНЕНИЕ] Удалено файлов сохранения: {deleted} ({Application.persistentDataPath}). Следующий запуск -- новая игра.");
|
||||||
|
}
|
||||||
|
|
||||||
|
[MenuItem("Tools/Открыть папку сохранений")]
|
||||||
|
static void OpenSaveFolder()
|
||||||
|
{
|
||||||
|
EditorUtility.RevealInFinder(Application.persistentDataPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 972f2f5a1fa0c38439b03355997f98e9
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEditor;
|
||||||
|
|
||||||
|
// Следит, чтобы сцена карты мира (WorldMap, от Саши) была в Build Settings --
|
||||||
|
// иначе переход город -> карта не работает. Срабатывает сам после каждой компиляции.
|
||||||
|
[InitializeOnLoad]
|
||||||
|
public static class SceneListFixer
|
||||||
|
{
|
||||||
|
const string CityScene = "Assets/Scenes/MVP1.unity";
|
||||||
|
const string WorldScene = "Assets/Scenes/WorldMap.unity";
|
||||||
|
|
||||||
|
static SceneListFixer() { EditorApplication.delayCall += Ensure; }
|
||||||
|
|
||||||
|
static void Ensure()
|
||||||
|
{
|
||||||
|
var scenes = new List<EditorBuildSettingsScene>(EditorBuildSettings.scenes);
|
||||||
|
bool changed = false;
|
||||||
|
foreach (var path in new[] { CityScene, WorldScene })
|
||||||
|
{
|
||||||
|
if (AssetDatabase.LoadAssetAtPath<SceneAsset>(path) == null) continue;
|
||||||
|
if (scenes.Exists(s => s.path == path)) continue;
|
||||||
|
scenes.Add(new EditorBuildSettingsScene(path, true));
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
// город должен быть первым (с него стартует игра)
|
||||||
|
int city = scenes.FindIndex(s => s.path == CityScene);
|
||||||
|
if (city > 0) { var c = scenes[city]; scenes.RemoveAt(city); scenes.Insert(0, c); changed = true; }
|
||||||
|
if (changed)
|
||||||
|
{
|
||||||
|
EditorBuildSettings.scenes = scenes.ToArray();
|
||||||
|
UnityEngine.Debug.Log("[СЦЕНЫ] Build Settings: город + карта мира добавлены");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 89a48f1e99f1cd4469929f3c418ce55b
|
||||||
@@ -0,0 +1,526 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.SceneManagement;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
// Tools -> Build World Map Scene
|
||||||
|
// 1. Создаёт сцену Assets/Scenes/WorldMap.unity: камера, EventSystem, UI карты, WorldMapController.
|
||||||
|
// 2. Ставит MVP1 и WorldMap в Build Settings (иначе SceneManager.LoadScene их не найдёт).
|
||||||
|
// 3. Проверяет, что на кнопке Nav_Battle в городе висит OpenBattleButton.
|
||||||
|
// Можно запускать повторно -- сцена карты пересоздаётся заново.
|
||||||
|
public static class WorldMapSceneBuilder
|
||||||
|
{
|
||||||
|
const string WorldMapScenePath = "Assets/Scenes/WorldMap.unity";
|
||||||
|
const string CityScenePath = "Assets/Scenes/MVP1.unity";
|
||||||
|
|
||||||
|
[MenuItem("Tools/Build World Map Scene")]
|
||||||
|
public static void Build()
|
||||||
|
{
|
||||||
|
if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) return;
|
||||||
|
|
||||||
|
CreateWorldMapScene();
|
||||||
|
UpdateBuildSettings();
|
||||||
|
HookUpCityBattleButton();
|
||||||
|
|
||||||
|
Debug.Log("[КАРТА] Сцена карты мира создана, кнопка БОЙ в городе подключена. Запускай MVP1 и жми БОЙ.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- СЦЕНА КАРТЫ ----------------
|
||||||
|
|
||||||
|
static void CreateWorldMapScene()
|
||||||
|
{
|
||||||
|
var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
|
||||||
|
|
||||||
|
var camGO = new GameObject("Main Camera", typeof(Camera), typeof(MapCameraController));
|
||||||
|
camGO.tag = "MainCamera";
|
||||||
|
camGO.transform.position = new Vector3(0, 0, -10);
|
||||||
|
Camera cam = camGO.GetComponent<Camera>();
|
||||||
|
cam.orthographic = true;
|
||||||
|
cam.orthographicSize = 8f;
|
||||||
|
cam.clearFlags = CameraClearFlags.SolidColor;
|
||||||
|
cam.backgroundColor = new Color(0.12f, 0.16f, 0.12f);
|
||||||
|
|
||||||
|
new GameObject("EventSystem", typeof(EventSystem), typeof(StandaloneInputModule));
|
||||||
|
|
||||||
|
var canvasGO = new GameObject("WorldMap_Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster));
|
||||||
|
canvasGO.GetComponent<Canvas>().renderMode = RenderMode.ScreenSpaceOverlay;
|
||||||
|
CanvasScaler scaler = canvasGO.GetComponent<CanvasScaler>();
|
||||||
|
scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
|
||||||
|
scaler.referenceResolution = new Vector2(1920, 1080);
|
||||||
|
scaler.matchWidthOrHeight = 0.5f;
|
||||||
|
RectTransform canvasRect = canvasGO.GetComponent<RectTransform>();
|
||||||
|
|
||||||
|
var controller = new GameObject("WorldMapController").AddComponent<WorldMapController>();
|
||||||
|
controller.mapCamera = camGO.GetComponent<MapCameraController>();
|
||||||
|
|
||||||
|
// ---- Верхняя панель: назад | войско | мой город ----
|
||||||
|
RectTransform topBar = CreatePanel(canvasRect, "TopBar", new Color(0.08f, 0.08f, 0.1f, 0.85f));
|
||||||
|
AnchorStretch(topBar, top: true, height: 110);
|
||||||
|
|
||||||
|
controller.soldiersText = CreateText(topBar, "SoldiersText", "Войска дома: 30", 40);
|
||||||
|
|
||||||
|
RectTransform back = CreateButton(topBar, "BackButton", "НАЗАД", new Color(0.3f, 0.3f, 0.33f), out _);
|
||||||
|
AnchorSide(back, left: true, new Vector2(220, 80), 20);
|
||||||
|
controller.backButton = back.GetComponent<Button>();
|
||||||
|
|
||||||
|
RectTransform myCity = CreateButton(topBar, "MyCityButton", "МОЙ ГОРОД", new Color(0.25f, 0.45f, 0.8f), out _);
|
||||||
|
AnchorSide(myCity, left: false, new Vector2(280, 80), 20);
|
||||||
|
controller.myCityButton = myCity.GetComponent<Button>();
|
||||||
|
|
||||||
|
// ---- Подсказка (над нижней панелью, правее чата) ----
|
||||||
|
RectTransform hintBar = CreatePanel(canvasRect, "HintBar", new Color(0.08f, 0.08f, 0.1f, 0.75f));
|
||||||
|
SetRect(hintBar, new Vector2(0, 0), new Vector2(1, 0), new Vector2(0.5f, 0), Vector2.zero, Vector2.zero);
|
||||||
|
hintBar.offsetMin = new Vector2(ChatWidth + 24, 172);
|
||||||
|
hintBar.offsetMax = new Vector2(-12, 222);
|
||||||
|
controller.hintText = CreateText(hintBar, "Hint", "", 28);
|
||||||
|
|
||||||
|
// ---- Чат слева внизу ----
|
||||||
|
BuildChat(canvasRect);
|
||||||
|
|
||||||
|
// ---- Нижняя панель: Карта мира | События | Круг | Поселение ----
|
||||||
|
BuildNavBar(canvasRect, controller);
|
||||||
|
|
||||||
|
// ---- Кнопка "Рейтинг" слева ----
|
||||||
|
RectTransform ratingBtn = CreateButton(canvasRect, "RatingButton", "Рейтинг", new Color(0.12f, 0.2f, 0.4f, 0.95f), out _);
|
||||||
|
SetRect(ratingBtn, new Vector2(0, 1), new Vector2(0, 1), new Vector2(0, 1), new Vector2(12, -122), new Vector2(210, 110));
|
||||||
|
controller.ratingButton = ratingBtn.GetComponent<Button>();
|
||||||
|
|
||||||
|
// ---- Панель рейтинга (выше всего, кроме окна атаки и уведомлений) ----
|
||||||
|
controller.ratingPanel = BuildRatingPanel(canvasRect);
|
||||||
|
|
||||||
|
// ---- Окно атаки ----
|
||||||
|
RectTransform attack = CreateCenterPanel(canvasRect, "AttackPanel", new Vector2(900, 640));
|
||||||
|
controller.attackPanel = attack.gameObject;
|
||||||
|
|
||||||
|
RectTransform attackTitle = CreateTextRect(attack, "Title", "Замок", 56);
|
||||||
|
AnchorTop(attackTitle, 110, 20);
|
||||||
|
controller.attackTitleText = attackTitle.GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
RectTransform attackInfo = CreateTextRect(attack, "Info", "", 32);
|
||||||
|
AnchorTop(attackInfo, 170, 130);
|
||||||
|
controller.attackInfoText = attackInfo.GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
RectTransform sendCount = CreateTextRect(attack, "SoldiersToSend", "Отправить: 30 из 30", 36);
|
||||||
|
AnchorTop(sendCount, 60, 310);
|
||||||
|
controller.soldiersToSendText = sendCount.GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
GameObject sliderGO = DefaultControls.CreateSlider(new DefaultControls.Resources());
|
||||||
|
sliderGO.name = "SoldiersSlider";
|
||||||
|
RectTransform sliderRect = sliderGO.GetComponent<RectTransform>();
|
||||||
|
sliderRect.SetParent(attack, false);
|
||||||
|
AnchorTop(sliderRect, 50, 390);
|
||||||
|
sliderRect.offsetMin = new Vector2(80, sliderRect.offsetMin.y);
|
||||||
|
sliderRect.offsetMax = new Vector2(-80, sliderRect.offsetMax.y);
|
||||||
|
StyleSlider(sliderGO);
|
||||||
|
controller.soldiersSlider = sliderGO.GetComponent<Slider>();
|
||||||
|
|
||||||
|
RectTransform send = CreateButton(attack, "SendButton", "В ПОХОД", new Color(0.75f, 0.25f, 0.15f), out _);
|
||||||
|
AnchorBottom(send, new Vector2(320, 100), new Vector2(170, 30));
|
||||||
|
controller.sendButton = send.GetComponent<Button>();
|
||||||
|
|
||||||
|
RectTransform cancel = CreateButton(attack, "CancelButton", "ОТМЕНА", new Color(0.3f, 0.3f, 0.33f), out _);
|
||||||
|
AnchorBottom(cancel, new Vector2(320, 100), new Vector2(-170, 30));
|
||||||
|
controller.cancelButton = cancel.GetComponent<Button>();
|
||||||
|
|
||||||
|
attack.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
// ---- Уведомление ----
|
||||||
|
RectTransform popup = CreateCenterPanel(canvasRect, "PopupPanel", new Vector2(860, 520));
|
||||||
|
controller.popupPanel = popup.gameObject;
|
||||||
|
|
||||||
|
RectTransform popupTitle = CreateTextRect(popup, "Title", "ПОБЕДА", 72);
|
||||||
|
AnchorTop(popupTitle, 120, 20);
|
||||||
|
controller.popupTitleText = popupTitle.GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
RectTransform popupBody = CreateTextRect(popup, "Body", "", 32);
|
||||||
|
popupBody.offsetMin = new Vector2(40, 140);
|
||||||
|
popupBody.offsetMax = new Vector2(-40, -140);
|
||||||
|
controller.popupBodyText = popupBody.GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
RectTransform ok = CreateButton(popup, "OkButton", "OK", new Color(0.2f, 0.5f, 0.25f), out _);
|
||||||
|
AnchorBottom(ok, new Vector2(300, 100), new Vector2(0, 30));
|
||||||
|
controller.popupOkButton = ok.GetComponent<Button>();
|
||||||
|
|
||||||
|
popup.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
EditorSceneManager.SaveScene(scene, WorldMapScenePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- ЧАТ ----------------
|
||||||
|
|
||||||
|
const float ChatWidth = 620f;
|
||||||
|
|
||||||
|
static void BuildChat(RectTransform canvasRect)
|
||||||
|
{
|
||||||
|
RectTransform panel = CreatePanel(canvasRect, "ChatPanel", new Color(0.05f, 0.06f, 0.09f, 0.9f));
|
||||||
|
SetRect(panel, Vector2.zero, Vector2.zero, Vector2.zero, new Vector2(12, 12), new Vector2(ChatWidth, 350));
|
||||||
|
ChatPanel chat = panel.gameObject.AddComponent<ChatPanel>();
|
||||||
|
|
||||||
|
RectTransform worldTab = CreateButton(panel, "WorldTab", "Общий мир", new Color(0.16f, 0.35f, 0.7f), out _);
|
||||||
|
SetRect(worldTab, new Vector2(0, 1), new Vector2(0, 1), new Vector2(0, 1), new Vector2(10, -10), new Vector2(220, 54));
|
||||||
|
chat.worldTabButton = worldTab.GetComponent<Button>();
|
||||||
|
|
||||||
|
RectTransform circleTab = CreateButton(panel, "CircleTab", "Круг", new Color(0.12f, 0.13f, 0.17f), out _);
|
||||||
|
SetRect(circleTab, new Vector2(0, 1), new Vector2(0, 1), new Vector2(0, 1), new Vector2(240, -10), new Vector2(220, 54));
|
||||||
|
chat.circleTabButton = circleTab.GetComponent<Button>();
|
||||||
|
|
||||||
|
RectTransform expand = CreateButton(panel, "ExpandButton", "Развернуть", new Color(0.12f, 0.13f, 0.17f), out TMP_Text expandText);
|
||||||
|
SetRect(expand, new Vector2(1, 1), new Vector2(1, 1), new Vector2(1, 1), new Vector2(-10, -10), new Vector2(150, 54));
|
||||||
|
expandText.fontSize = 24;
|
||||||
|
chat.expandButton = expand.GetComponent<Button>();
|
||||||
|
|
||||||
|
// Лента: текст прижат к низу, старые строки уходят вверх и обрезаются маской
|
||||||
|
var messagesGO = new GameObject("Messages", typeof(RectTransform), typeof(RectMask2D));
|
||||||
|
RectTransform messages = messagesGO.GetComponent<RectTransform>();
|
||||||
|
messages.SetParent(panel, false);
|
||||||
|
messages.anchorMin = Vector2.zero;
|
||||||
|
messages.anchorMax = Vector2.one;
|
||||||
|
messages.offsetMin = new Vector2(14, 86);
|
||||||
|
messages.offsetMax = new Vector2(-14, -74);
|
||||||
|
|
||||||
|
RectTransform messagesText = CreateTextRect(messages, "MessagesText", "", 24, TextAlignmentOptions.BottomLeft);
|
||||||
|
TMP_Text tmp = messagesText.GetComponent<TMP_Text>();
|
||||||
|
tmp.overflowMode = TextOverflowModes.Overflow;
|
||||||
|
chat.messagesText = tmp;
|
||||||
|
|
||||||
|
// Поле ввода
|
||||||
|
GameObject inputGO = TMP_DefaultControls.CreateInputField(new TMP_DefaultControls.Resources());
|
||||||
|
inputGO.name = "InputField";
|
||||||
|
RectTransform inputRect = inputGO.GetComponent<RectTransform>();
|
||||||
|
inputRect.SetParent(panel, false);
|
||||||
|
SetRect(inputRect, Vector2.zero, new Vector2(1, 0), new Vector2(0.5f, 0), Vector2.zero, Vector2.zero);
|
||||||
|
inputRect.offsetMin = new Vector2(12, 12);
|
||||||
|
inputRect.offsetMax = new Vector2(-124, 74);
|
||||||
|
inputGO.GetComponent<Image>().color = new Color(0.12f, 0.13f, 0.17f);
|
||||||
|
|
||||||
|
TMP_InputField input = inputGO.GetComponent<TMP_InputField>();
|
||||||
|
input.pointSize = 26;
|
||||||
|
input.textComponent.color = Color.white;
|
||||||
|
((TMP_Text)input.placeholder).text = "Введите сообщение...";
|
||||||
|
((TMP_Text)input.placeholder).color = new Color(1f, 1f, 1f, 0.35f);
|
||||||
|
chat.inputField = input;
|
||||||
|
|
||||||
|
RectTransform send = CreateButton(panel, "SendButton", ">", new Color(0.2f, 0.45f, 0.85f), out _);
|
||||||
|
SetRect(send, new Vector2(1, 0), new Vector2(1, 0), new Vector2(1, 0), new Vector2(-12, 12), new Vector2(100, 62));
|
||||||
|
chat.sendButton = send.GetComponent<Button>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- НИЖНЯЯ ПАНЕЛЬ ----------------
|
||||||
|
|
||||||
|
static void BuildNavBar(RectTransform canvasRect, WorldMapController controller)
|
||||||
|
{
|
||||||
|
RectTransform bar = CreatePanel(canvasRect, "BottomNavBar", new Color(0.06f, 0.07f, 0.1f, 0.92f));
|
||||||
|
SetRect(bar, Vector2.zero, new Vector2(1, 0), new Vector2(0.5f, 0), Vector2.zero, Vector2.zero);
|
||||||
|
bar.offsetMin = new Vector2(ChatWidth + 24, 12);
|
||||||
|
bar.offsetMax = new Vector2(-12, 162);
|
||||||
|
|
||||||
|
var layout = bar.gameObject.AddComponent<HorizontalLayoutGroup>();
|
||||||
|
layout.padding = new RectOffset(10, 10, 10, 10);
|
||||||
|
layout.spacing = 10;
|
||||||
|
layout.childForceExpandWidth = true;
|
||||||
|
layout.childForceExpandHeight = true;
|
||||||
|
layout.childControlWidth = true;
|
||||||
|
layout.childControlHeight = true;
|
||||||
|
|
||||||
|
Color navColor = new Color(0.14f, 0.16f, 0.22f);
|
||||||
|
controller.worldMapNavButton = CreateButton(bar, "Nav_WorldMap", "Карта мира", navColor, out _).GetComponent<Button>();
|
||||||
|
controller.eventsNavButton = CreateButton(bar, "Nav_Events", "События", navColor, out _).GetComponent<Button>();
|
||||||
|
controller.circleNavButton = CreateButton(bar, "Nav_Circle", "Круг", navColor, out _).GetComponent<Button>();
|
||||||
|
controller.settlementNavButton = CreateButton(bar, "Nav_Settlement", "Поселение", new Color(0.18f, 0.25f, 0.45f), out _).GetComponent<Button>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- РЕЙТИНГ ----------------
|
||||||
|
|
||||||
|
static readonly Color RatingBg = new Color(0.04f, 0.06f, 0.1f, 0.97f);
|
||||||
|
static readonly Color RatingGold = new Color(0.95f, 0.8f, 0.5f);
|
||||||
|
|
||||||
|
const float RatingTableLeft = 340f;
|
||||||
|
const float RatingTableRight = 25f;
|
||||||
|
|
||||||
|
static RatingPanel BuildRatingPanel(RectTransform canvasRect)
|
||||||
|
{
|
||||||
|
RectTransform panel = CreatePanel(canvasRect, "RatingPanel", RatingBg);
|
||||||
|
SetRect(panel, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), Vector2.zero, new Vector2(1640, 920));
|
||||||
|
RatingPanel rating = panel.gameObject.AddComponent<RatingPanel>();
|
||||||
|
|
||||||
|
// Заголовок-баннер
|
||||||
|
RectTransform banner = CreatePanel(panel, "TitleBanner", new Color(0.12f, 0.25f, 0.55f));
|
||||||
|
SetRect(banner, new Vector2(0.5f, 1), new Vector2(0.5f, 1), new Vector2(0.5f, 1), new Vector2(0, -15), new Vector2(640, 90));
|
||||||
|
CreateText(banner, "Title", "Рейтинг", 60).color = RatingGold;
|
||||||
|
|
||||||
|
RectTransform close = CreateButton(panel, "CloseButton", "X", new Color(0.35f, 0.15f, 0.15f), out _);
|
||||||
|
SetRect(close, new Vector2(1, 1), new Vector2(1, 1), new Vector2(1, 1), new Vector2(-15, -15), new Vector2(80, 80));
|
||||||
|
rating.closeButton = close.GetComponent<Button>();
|
||||||
|
|
||||||
|
// Разделы слева -- порядок совпадает с RatingCategory
|
||||||
|
string[] categories = { "Игроки", "Круги", "Мощь", "PvP", "Развитие", "Сезон" };
|
||||||
|
rating.categoryButtons = new Button[categories.Length];
|
||||||
|
for (int i = 0; i < categories.Length; i++)
|
||||||
|
{
|
||||||
|
RectTransform tab = CreateButton(panel, "Category_" + i, categories[i], new Color(0.1f, 0.12f, 0.17f), out _);
|
||||||
|
SetRect(tab, new Vector2(0, 1), new Vector2(0, 1), new Vector2(0, 1), new Vector2(25, -130 - i * 112), new Vector2(290, 100));
|
||||||
|
rating.categoryButtons[i] = tab.GetComponent<Button>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Таблица
|
||||||
|
var tableGO = new GameObject("Table", typeof(RectTransform));
|
||||||
|
RectTransform table = tableGO.GetComponent<RectTransform>();
|
||||||
|
table.SetParent(panel, false);
|
||||||
|
table.anchorMin = Vector2.zero;
|
||||||
|
table.anchorMax = Vector2.one;
|
||||||
|
table.offsetMin = new Vector2(RatingTableLeft, 110);
|
||||||
|
table.offsetMax = new Vector2(-RatingTableRight, -130);
|
||||||
|
|
||||||
|
RectTransform header = CreatePanel(table, "Header", new Color(0.08f, 0.1f, 0.15f));
|
||||||
|
SetRect(header, new Vector2(0, 1), new Vector2(1, 1), new Vector2(0.5f, 1), Vector2.zero, new Vector2(0, 50));
|
||||||
|
Color headerColor = new Color(0.8f, 0.82f, 0.88f);
|
||||||
|
PlaceInRow(CreateTextRect(header, "Place", "Место", 26), 0, 140, 50).GetComponent<TMP_Text>().color = headerColor;
|
||||||
|
TMP_Text nameHeader = PlaceInRow(CreateTextRect(header, "Name", "Игрок", 26, TextAlignmentOptions.Left), 225, 330, 50).GetComponent<TMP_Text>();
|
||||||
|
nameHeader.color = headerColor;
|
||||||
|
rating.nameColumnHeader = nameHeader;
|
||||||
|
TMP_Text circleHeader = PlaceInRow(CreateTextRect(header, "Circle", "Круг", 26, TextAlignmentOptions.Left), 625, 320, 50).GetComponent<TMP_Text>();
|
||||||
|
circleHeader.color = headerColor;
|
||||||
|
rating.circleColumnHeader = circleHeader;
|
||||||
|
PlaceInRow(CreateTextRect(header, "Power", "Мощь", 26), 950, 220, 50).GetComponent<TMP_Text>().color = headerColor;
|
||||||
|
|
||||||
|
rating.rows = new RatingRowView[RatingPanel.PageSize];
|
||||||
|
for (int i = 0; i < rating.rows.Length; i++)
|
||||||
|
{
|
||||||
|
rating.rows[i] = BuildRatingRow(table, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
rating.emptyText = CreateText(table, "EmptyText", "Раздел в разработке", 40);
|
||||||
|
rating.emptyText.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
RectTransform status = CreateTextRect(panel, "StatusText", "", 26, TextAlignmentOptions.Left);
|
||||||
|
SetRect(status, Vector2.zero, Vector2.zero, Vector2.zero, new Vector2(RatingTableLeft, 30), new Vector2(520, 60));
|
||||||
|
rating.statusText = status.GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
// Страницы: < 1 2 3 4 5 > -- по центру под таблицей (а не под всей панелью)
|
||||||
|
float tableCenterX = (RatingTableLeft - RatingTableRight) / 2f;
|
||||||
|
Color pageColor = new Color(0.1f, 0.12f, 0.17f);
|
||||||
|
|
||||||
|
RectTransform prev = CreateButton(panel, "PrevPage", "<", pageColor, out _);
|
||||||
|
SetRect(prev, new Vector2(0.5f, 0), new Vector2(0.5f, 0), new Vector2(0.5f, 0), new Vector2(tableCenterX - 240, 25), new Vector2(64, 64));
|
||||||
|
rating.prevPageButton = prev.GetComponent<Button>();
|
||||||
|
|
||||||
|
rating.pageButtons = new Button[5];
|
||||||
|
for (int i = 0; i < rating.pageButtons.Length; i++)
|
||||||
|
{
|
||||||
|
RectTransform page = CreateButton(panel, "Page_" + i, (i + 1).ToString(), pageColor, out _);
|
||||||
|
SetRect(page, new Vector2(0.5f, 0), new Vector2(0.5f, 0), new Vector2(0.5f, 0), new Vector2(tableCenterX - 150 + i * 75, 25), new Vector2(64, 64));
|
||||||
|
rating.pageButtons[i] = page.GetComponent<Button>();
|
||||||
|
}
|
||||||
|
|
||||||
|
RectTransform next = CreateButton(panel, "NextPage", ">", pageColor, out _);
|
||||||
|
SetRect(next, new Vector2(0.5f, 0), new Vector2(0.5f, 0), new Vector2(0.5f, 0), new Vector2(tableCenterX + 240, 25), new Vector2(64, 64));
|
||||||
|
rating.nextPageButton = next.GetComponent<Button>();
|
||||||
|
|
||||||
|
panel.gameObject.SetActive(false);
|
||||||
|
return rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
static RatingRowView BuildRatingRow(RectTransform table, int index)
|
||||||
|
{
|
||||||
|
const float rowHeight = 54f;
|
||||||
|
var view = new RatingRowView();
|
||||||
|
|
||||||
|
RectTransform row = CreatePanel(table, "Row_" + (index + 1), new Color(0.07f, 0.09f, 0.13f));
|
||||||
|
SetRect(row, new Vector2(0, 1), new Vector2(1, 1), new Vector2(0.5f, 1), new Vector2(0, -56 - index * 58), new Vector2(0, rowHeight));
|
||||||
|
view.root = row.gameObject;
|
||||||
|
view.background = row.GetComponent<Image>();
|
||||||
|
|
||||||
|
RectTransform medal = CreatePanel(row, "Medal", Color.white);
|
||||||
|
PlaceInRow(medal, 45, 50, 50);
|
||||||
|
view.medal = medal.GetComponent<Image>();
|
||||||
|
view.placeText = PlaceInRow(CreateTextRect(row, "Place", "1", 30), 0, 140, rowHeight).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
RectTransform avatar = CreatePanel(row, "Avatar", Color.gray);
|
||||||
|
PlaceInRow(avatar, 150, 48, 48);
|
||||||
|
view.avatar = avatar.GetComponent<Image>();
|
||||||
|
view.avatarLetter = CreateText(avatar, "Letter", "В", 28);
|
||||||
|
|
||||||
|
view.nameText = PlaceInRow(CreateTextRect(row, "Name", "Игрок", 30, TextAlignmentOptions.Left), 225, 330, rowHeight).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
RectTransform circleBanner = CreatePanel(row, "CircleBanner", Color.blue);
|
||||||
|
PlaceInRow(circleBanner, 570, 36, 46);
|
||||||
|
view.circleBanner = circleBanner.GetComponent<Image>();
|
||||||
|
view.circleText = PlaceInRow(CreateTextRect(row, "Circle", "Круг", 28, TextAlignmentOptions.Left), 625, 320, rowHeight).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
TMP_Text power = PlaceInRow(CreateTextRect(row, "Power", "0", 28), 950, 220, rowHeight).GetComponent<TMP_Text>();
|
||||||
|
power.color = RatingGold;
|
||||||
|
view.powerText = power;
|
||||||
|
|
||||||
|
RectTransform inspect = CreateButton(row, "InspectButton", "?", new Color(0.18f, 0.2f, 0.27f), out _);
|
||||||
|
PlaceInRow(inspect, 1190, 56, 44);
|
||||||
|
view.inspectButton = inspect.GetComponent<Button>();
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Элемент строки: прижат к левому краю строки с отступом x, по вертикали по центру
|
||||||
|
static RectTransform PlaceInRow(RectTransform rt, float x, float width, float height)
|
||||||
|
{
|
||||||
|
SetRect(rt, new Vector2(0, 0.5f), new Vector2(0, 0.5f), new Vector2(0, 0.5f), new Vector2(x, 0), new Vector2(width, height));
|
||||||
|
return rt;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetRect(RectTransform rt, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, Vector2 position, Vector2 size)
|
||||||
|
{
|
||||||
|
rt.anchorMin = anchorMin;
|
||||||
|
rt.anchorMax = anchorMax;
|
||||||
|
rt.pivot = pivot;
|
||||||
|
rt.sizeDelta = size;
|
||||||
|
rt.anchoredPosition = position;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- BUILD SETTINGS ----------------
|
||||||
|
|
||||||
|
static void UpdateBuildSettings()
|
||||||
|
{
|
||||||
|
var scenes = new List<EditorBuildSettingsScene>
|
||||||
|
{
|
||||||
|
new EditorBuildSettingsScene(CityScenePath, true),
|
||||||
|
new EditorBuildSettingsScene(WorldMapScenePath, true)
|
||||||
|
};
|
||||||
|
|
||||||
|
// Остальные уже добавленные сцены сохраняем (кроме удалённых файлов, например старой Battle)
|
||||||
|
foreach (var existing in EditorBuildSettings.scenes)
|
||||||
|
{
|
||||||
|
if (existing.path == CityScenePath || existing.path == WorldMapScenePath) continue;
|
||||||
|
if (!File.Exists(existing.path)) continue;
|
||||||
|
scenes.Add(existing);
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorBuildSettings.scenes = scenes.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- КНОПКА В ГОРОДЕ ----------------
|
||||||
|
|
||||||
|
static void HookUpCityBattleButton()
|
||||||
|
{
|
||||||
|
var city = EditorSceneManager.OpenScene(CityScenePath, OpenSceneMode.Single);
|
||||||
|
|
||||||
|
GameObject navBattle = GameObject.Find("Nav_Battle");
|
||||||
|
if (navBattle == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[КАРТА] В сцене MVP1 не найден объект Nav_Battle -- повесь OpenBattleButton на кнопку БОЙ вручную.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (navBattle.GetComponent<OpenBattleButton>() == null)
|
||||||
|
{
|
||||||
|
Undo.AddComponent<OpenBattleButton>(navBattle); // RequireComponent сам добавит Button, если его нет
|
||||||
|
EditorSceneManager.MarkSceneDirty(city);
|
||||||
|
EditorSceneManager.SaveScene(city);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- HELPERS ----------------
|
||||||
|
|
||||||
|
static RectTransform CreatePanel(RectTransform parent, string name, Color color)
|
||||||
|
{
|
||||||
|
var go = new GameObject(name, typeof(RectTransform), typeof(Image));
|
||||||
|
go.transform.SetParent(parent, false);
|
||||||
|
go.GetComponent<Image>().color = color;
|
||||||
|
return go.GetComponent<RectTransform>();
|
||||||
|
}
|
||||||
|
|
||||||
|
static RectTransform CreateCenterPanel(RectTransform parent, string name, Vector2 size)
|
||||||
|
{
|
||||||
|
RectTransform rt = CreatePanel(parent, name, new Color(0.05f, 0.05f, 0.07f, 0.94f));
|
||||||
|
rt.anchorMin = rt.anchorMax = new Vector2(0.5f, 0.5f);
|
||||||
|
rt.sizeDelta = size;
|
||||||
|
return rt;
|
||||||
|
}
|
||||||
|
|
||||||
|
static RectTransform CreateTextRect(RectTransform parent, string name, string content, int fontSize,
|
||||||
|
TextAlignmentOptions alignment = TextAlignmentOptions.Center)
|
||||||
|
{
|
||||||
|
var go = new GameObject(name, typeof(RectTransform), typeof(TextMeshProUGUI));
|
||||||
|
go.transform.SetParent(parent, false);
|
||||||
|
var tmp = go.GetComponent<TextMeshProUGUI>();
|
||||||
|
tmp.text = content;
|
||||||
|
tmp.fontSize = fontSize;
|
||||||
|
tmp.color = Color.white;
|
||||||
|
tmp.alignment = alignment;
|
||||||
|
tmp.raycastTarget = false;
|
||||||
|
RectTransform rt = go.GetComponent<RectTransform>();
|
||||||
|
rt.anchorMin = Vector2.zero;
|
||||||
|
rt.anchorMax = Vector2.one;
|
||||||
|
rt.offsetMin = Vector2.zero;
|
||||||
|
rt.offsetMax = Vector2.zero;
|
||||||
|
return rt;
|
||||||
|
}
|
||||||
|
|
||||||
|
static TMP_Text CreateText(RectTransform parent, string name, string content, int fontSize)
|
||||||
|
{
|
||||||
|
return CreateTextRect(parent, name, content, fontSize).GetComponent<TMP_Text>();
|
||||||
|
}
|
||||||
|
|
||||||
|
static RectTransform CreateButton(RectTransform parent, string name, string label, Color color, out TMP_Text labelText)
|
||||||
|
{
|
||||||
|
var go = new GameObject(name, typeof(RectTransform), typeof(Image), typeof(Button));
|
||||||
|
go.transform.SetParent(parent, false);
|
||||||
|
go.GetComponent<Image>().color = color;
|
||||||
|
RectTransform rt = go.GetComponent<RectTransform>();
|
||||||
|
labelText = CreateText(rt, "Label", label, 36);
|
||||||
|
return rt;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void StyleSlider(GameObject sliderGO)
|
||||||
|
{
|
||||||
|
Image[] images = sliderGO.GetComponentsInChildren<Image>();
|
||||||
|
foreach (var img in images)
|
||||||
|
{
|
||||||
|
if (img.name == "Background") img.color = new Color(0.25f, 0.25f, 0.28f);
|
||||||
|
else if (img.name == "Fill") img.color = new Color(0.3f, 0.55f, 1f);
|
||||||
|
else if (img.name == "Handle") img.color = Color.white;
|
||||||
|
}
|
||||||
|
// Ручка крупнее -- удобнее тянуть пальцем
|
||||||
|
Transform handle = sliderGO.transform.Find("Handle Slide Area/Handle");
|
||||||
|
if (handle != null) ((RectTransform)handle).sizeDelta = new Vector2(50, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnchorStretch(RectTransform rt, bool top, float height)
|
||||||
|
{
|
||||||
|
float y = top ? 1 : 0;
|
||||||
|
rt.anchorMin = new Vector2(0, y);
|
||||||
|
rt.anchorMax = new Vector2(1, y);
|
||||||
|
rt.pivot = new Vector2(0.5f, y);
|
||||||
|
rt.sizeDelta = new Vector2(0, height);
|
||||||
|
rt.anchoredPosition = Vector2.zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnchorSide(RectTransform rt, bool left, Vector2 size, float offset)
|
||||||
|
{
|
||||||
|
float x = left ? 0 : 1;
|
||||||
|
rt.anchorMin = new Vector2(x, 0.5f);
|
||||||
|
rt.anchorMax = new Vector2(x, 0.5f);
|
||||||
|
rt.pivot = new Vector2(x, 0.5f);
|
||||||
|
rt.sizeDelta = size;
|
||||||
|
rt.anchoredPosition = new Vector2(left ? offset : -offset, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Растянуть по ширине родителя, прижать к верху с отступом
|
||||||
|
static void AnchorTop(RectTransform rt, float height, float topOffset)
|
||||||
|
{
|
||||||
|
rt.anchorMin = new Vector2(0, 1);
|
||||||
|
rt.anchorMax = new Vector2(1, 1);
|
||||||
|
rt.pivot = new Vector2(0.5f, 1);
|
||||||
|
rt.sizeDelta = new Vector2(0, height);
|
||||||
|
rt.anchoredPosition = new Vector2(0, -topOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void AnchorBottom(RectTransform rt, Vector2 size, Vector2 offset)
|
||||||
|
{
|
||||||
|
rt.anchorMin = rt.anchorMax = new Vector2(0.5f, 0);
|
||||||
|
rt.pivot = new Vector2(0.5f, 0);
|
||||||
|
rt.sizeDelta = size;
|
||||||
|
rt.anchoredPosition = offset;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5fea028791c631d4c88cccc887d23df9
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 56f3d86a40782da40b881f23b1905060
|
guid: 04b2a7da63f2e5e40bb387e8bbebd0e7
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5194b2d04b025424f97b0d83f0c6bdcc
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &8587519695404222676
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5056236775830869539}
|
||||||
|
- component: {fileID: 7776370013680216338}
|
||||||
|
- component: {fileID: 1708035113988781431}
|
||||||
|
- component: {fileID: 2152423632773446457}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Barracks
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5056236775830869539
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -3.48, y: -1.22, z: 0}
|
||||||
|
m_LocalScale: {x: 0.16310804, y: 0.15743585, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &7776370013680216338
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: 1052350730647309974, guid: 555b437beb16a374ea82b63948439f4e, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!61 &1708035113988781431
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
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_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 23.292307, y: 16.615385}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 20, y: 12.54}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &2152423632773446457
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 96f3807928801df4a840181e38da1317, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::Barracks
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bd259e52fed42bc48a1352e78ce97819
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
%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: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_Barracks
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u041A\u0430\u0437\u0430\u0440\u043C\u044B"
|
||||||
|
icon: {fileID: 2801366364622282508, guid: b35488e828328a54f88edf516b780ea5, type: 3}
|
||||||
|
prefab: {fileID: 8587519695404222676, guid: bd259e52fed42bc48a1352e78ce97819, type: 3}
|
||||||
|
requiredTownHallLevel: 1
|
||||||
|
cost:
|
||||||
|
- type: 2
|
||||||
|
amount: 300
|
||||||
|
- type: 3
|
||||||
|
amount: 200
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 16e55e952b334ec488bbee6b42448828
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_Food
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u0415\u0434\u0430"
|
||||||
|
icon: {fileID: 0}
|
||||||
|
prefab: {fileID: 8587519695404222676, guid: 995641ce1713f0543b5967de3a3b601c, type: 3}
|
||||||
|
requiredTownHallLevel: 1
|
||||||
|
cost:
|
||||||
|
- type: 2
|
||||||
|
amount: 100
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 22e88ea411e586447bbb5a7ef6dfca16
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_GoldMine
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u0417\u043E\u043B\u043E\u0442\u043E"
|
||||||
|
icon: {fileID: 0}
|
||||||
|
prefab: {fileID: 355219734635798756, guid: e150a7924d55dcb4b91a78e0830b419f, type: 3}
|
||||||
|
requiredTownHallLevel: 2
|
||||||
|
cost:
|
||||||
|
- type: 3
|
||||||
|
amount: 50
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9ff3668409f5d03459e5439bad8ab2c2
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_Kamenolomnia
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u041A\u0430\u043C\u0435\u043D\u044C"
|
||||||
|
icon: {fileID: 0}
|
||||||
|
prefab: {fileID: 2201762762010450727, guid: 49403fe7cb5651a448b48615a085342c, type: 3}
|
||||||
|
requiredTownHallLevel: 1
|
||||||
|
cost:
|
||||||
|
- type: 2
|
||||||
|
amount: 50
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 455e55b6ce585c64798e6e92189eccbd
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
%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: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_Kristall
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u041A\u0440\u0438\u0441\u0442\u0430\u043B\u043B"
|
||||||
|
icon: {fileID: 0}
|
||||||
|
prefab: {fileID: 7385155700126818636, guid: f24705ebbb7ea11458ddc9d7860aaf57, type: 3}
|
||||||
|
requiredTownHallLevel: 6
|
||||||
|
cost:
|
||||||
|
- type: 2
|
||||||
|
amount: 2000
|
||||||
|
- type: 3
|
||||||
|
amount: 3200
|
||||||
|
- type: 5
|
||||||
|
amount: 12000
|
||||||
|
- type: 4
|
||||||
|
amount: 1600
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fa9bf839732c77849aafecff9090a47c
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
%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: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_Lesopilka
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u041B\u0435\u0441"
|
||||||
|
icon: {fileID: 0}
|
||||||
|
prefab: {fileID: 295848160926721670, guid: bf7bc0815d543dd47944d9157ef313e7, type: 3}
|
||||||
|
requiredTownHallLevel: 1
|
||||||
|
cost: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8b95b82532099bc488024991025a9cca
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
%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: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_People
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u041D\u0430\u0441\u0435\u043B\u0435\u043D\u0438\u0435"
|
||||||
|
icon: {fileID: 0}
|
||||||
|
prefab: {fileID: 6959817872365076538, guid: d8aefa6e68bd204419ffaeb287dea407, type: 3}
|
||||||
|
requiredTownHallLevel: 1
|
||||||
|
cost:
|
||||||
|
- type: 2
|
||||||
|
amount: 100
|
||||||
|
- type: 1
|
||||||
|
amount: 200
|
||||||
|
- type: 3
|
||||||
|
amount: 150
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 184fe08ef84b141408ea8a5a1b2df34e
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
%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: 6ce7334b9f0b4914ba6750d2a2d35155, type: 3}
|
||||||
|
m_Name: Data_Shaxta
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingData
|
||||||
|
buildingName: "\u041C\u0435\u0442\u0430\u043B\u043B"
|
||||||
|
icon: {fileID: 0}
|
||||||
|
prefab: {fileID: 8005614407148533590, guid: 198e0c7292623ea4194c29ec7a96a148, type: 3}
|
||||||
|
requiredTownHallLevel: 3
|
||||||
|
cost:
|
||||||
|
- type: 2
|
||||||
|
amount: 600
|
||||||
|
- type: 3
|
||||||
|
amount: 550
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d532fc647f7aa5548ac381061942d96c
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,831 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &738263358134584207
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4002742518979284527}
|
||||||
|
- component: {fileID: 8064382219512370799}
|
||||||
|
- component: {fileID: 330444905078661864}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4002742518979284527
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738263358134584207}
|
||||||
|
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: 1927015835945780662}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8064382219512370799
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738263358134584207}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &330444905078661864
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738263358134584207}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &1343612136204390768
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3793951204597816762}
|
||||||
|
- component: {fileID: 5506546141177425958}
|
||||||
|
- component: {fileID: 6781712769009624993}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3793951204597816762
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1343612136204390768}
|
||||||
|
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: 2872642912252838387}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5506546141177425958
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1343612136204390768}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6781712769009624993
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1343612136204390768}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &3006475650658068385
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4156983239259992225}
|
||||||
|
- component: {fileID: 2426570912027666968}
|
||||||
|
- component: {fileID: 7793491659634111299}
|
||||||
|
- component: {fileID: 3086347143011804087}
|
||||||
|
- component: {fileID: 8366624895868613416}
|
||||||
|
- component: {fileID: 4191623656792219752}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Canvas (2)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4156983239259992225
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3006475650658068385}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.01928367, y: 0.036809552, z: 0.019999897}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 3726670482220635953}
|
||||||
|
m_Father: {fileID: 5056236775830869539}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: -0.06, y: 1.35}
|
||||||
|
m_SizeDelta: {x: 213.4607, y: 61.0907}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &2426570912027666968
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3006475650658068385}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &7793491659634111299
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3006475650658068385}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 100
|
||||||
|
m_PresetInfoIsWorld: 1
|
||||||
|
--- !u!114 &3086347143011804087
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3006475650658068385}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!23 &8366624895868613416
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3006475650658068385}
|
||||||
|
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 &4191623656792219752
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3006475650658068385}
|
||||||
|
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: 0/100
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 260
|
||||||
|
m_fontSizeBase: 260
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
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.5778427, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 8366624895868613416}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!1 &3605793066128359476
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1927015835945780662}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1927015835945780662
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3605793066128359476}
|
||||||
|
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: 4002742518979284527}
|
||||||
|
m_Father: {fileID: 3726670482220635953}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: -5, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &5347143667423215869
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8228770704062114076}
|
||||||
|
- component: {fileID: 7921213300567708335}
|
||||||
|
- component: {fileID: 3141608278938106867}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8228770704062114076
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5347143667423215869}
|
||||||
|
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: 3726670482220635953}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7921213300567708335
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5347143667423215869}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &3141608278938106867
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5347143667423215869}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &5574349607421089541
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2872642912252838387}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle Slide Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2872642912252838387
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5574349607421089541}
|
||||||
|
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: 3793951204597816762}
|
||||||
|
m_Father: {fileID: 3726670482220635953}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &7095574789492268473
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3726670482220635953}
|
||||||
|
- component: {fileID: 2968453288331483779}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Slider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3726670482220635953
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7095574789492268473}
|
||||||
|
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: 8228770704062114076}
|
||||||
|
- {fileID: 1927015835945780662}
|
||||||
|
- {fileID: 2872642912252838387}
|
||||||
|
m_Father: {fileID: 4156983239259992225}
|
||||||
|
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: 33.08, y: -2.425}
|
||||||
|
m_SizeDelta: {x: 216.16, y: 24.85}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &2968453288331483779
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7095574789492268473}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 6781712769009624993}
|
||||||
|
m_FillRect: {fileID: 4002742518979284527}
|
||||||
|
m_HandleRect: {fileID: 3793951204597816762}
|
||||||
|
m_Direction: 0
|
||||||
|
m_MinValue: 0
|
||||||
|
m_MaxValue: 1
|
||||||
|
m_WholeNumbers: 0
|
||||||
|
m_Value: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &8587519695404222676
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5056236775830869539}
|
||||||
|
- component: {fileID: 7776370013680216338}
|
||||||
|
- component: {fileID: 1133597438062959687}
|
||||||
|
- component: {fileID: 1471241643215355356}
|
||||||
|
- component: {fileID: 1708035113988781431}
|
||||||
|
- component: {fileID: 4191590240474693017}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Food
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5056236775830869539
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -3.48, y: -1.22, z: 0}
|
||||||
|
m_LocalScale: {x: 1.1417562, y: 1.1020509, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 4156983239259992225}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &7776370013680216338
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: -767853006991775525, guid: 0f4911df226c33e40975fb78c06568f5, type: 3}
|
||||||
|
m_Color: {r: 0.8627452, g: 0.8627452, b: 0.8627452, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!114 &1133597438062959687
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
m_Enabled: 0
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: eb8009d4824ec6f4392a50d60eead242, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceProducer
|
||||||
|
resourceType: 1
|
||||||
|
amountPerTick: 3
|
||||||
|
tickInterval: 4
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!114 &1471241643215355356
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 836781aedea7fe547acba94b7fd9aabc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceCollector
|
||||||
|
resourceType: 1
|
||||||
|
amountPerClick: 10
|
||||||
|
maxCapacity: 100
|
||||||
|
currentStock: 0
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!61 &1708035113988781431
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
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_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 3.382857, y: 3.0857143}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 2.5, y: 2}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &4191590240474693017
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8587519695404222676}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 03e94b2f819b2884eb838f4c768e5d17, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingUI
|
||||||
|
building: {fileID: 1471241643215355356}
|
||||||
|
stokText: {fileID: 4191623656792219752}
|
||||||
|
progressBar: {fileID: 2968453288331483779}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 995641ce1713f0543b5967de3a3b601c
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,813 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &355219734635798756
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4808484725654848156}
|
||||||
|
- component: {fileID: 5186404306068258023}
|
||||||
|
- component: {fileID: 5709127527925679652}
|
||||||
|
- component: {fileID: 1072887893553875685}
|
||||||
|
- component: {fileID: 5409824492356627158}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: GoldMine
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4808484725654848156
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 355219734635798756}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -16, y: -2.45, z: 0}
|
||||||
|
m_LocalScale: {x: 2.0187285, y: 1.7424189, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5749015153972777127}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &5186404306068258023
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 355219734635798756}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: 6491965565530788803, guid: 7eac2cc728cf1a54f962afb35703891e, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!114 &5709127527925679652
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 355219734635798756}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 836781aedea7fe547acba94b7fd9aabc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceCollector
|
||||||
|
resourceType: 5
|
||||||
|
amountPerClick: 10
|
||||||
|
maxCapacity: 100
|
||||||
|
currentStock: 0
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!61 &1072887893553875685
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 355219734635798756}
|
||||||
|
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_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1.6914285, y: 1.5371429}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1.2, y: 1.2}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &5409824492356627158
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 355219734635798756}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 03e94b2f819b2884eb838f4c768e5d17, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingUI
|
||||||
|
building: {fileID: 5709127527925679652}
|
||||||
|
stokText: {fileID: 5676831441011161224}
|
||||||
|
progressBar: {fileID: 2746946344350271564}
|
||||||
|
--- !u!1 &1126231918971048261
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5749015153972777127}
|
||||||
|
- component: {fileID: 3074505336809281977}
|
||||||
|
- component: {fileID: 8582245639805834012}
|
||||||
|
- component: {fileID: 3720488835216638398}
|
||||||
|
- component: {fileID: 1210843985261880390}
|
||||||
|
- component: {fileID: 5676831441011161224}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Canvas (2)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5749015153972777127
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1126231918971048261}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.010856532, y: 0.023091167, z: 0.02}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5653634108450285178}
|
||||||
|
m_Father: {fileID: 4808484725654848156}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: -0.31, y: 0.98}
|
||||||
|
m_SizeDelta: {x: 213.4607, y: 61.0907}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &3074505336809281977
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1126231918971048261}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &8582245639805834012
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1126231918971048261}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 100
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &3720488835216638398
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1126231918971048261}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!23 &1210843985261880390
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1126231918971048261}
|
||||||
|
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 &5676831441011161224
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1126231918971048261}
|
||||||
|
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: 0/100
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 260
|
||||||
|
m_fontSizeBase: 260
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
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.5778427, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 1210843985261880390}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!1 &1435064537008746086
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 577155313112453847}
|
||||||
|
- component: {fileID: 5412168892413979765}
|
||||||
|
- component: {fileID: 6009320542041345824}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &577155313112453847
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1435064537008746086}
|
||||||
|
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: 5653634108450285178}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5412168892413979765
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1435064537008746086}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6009320542041345824
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1435064537008746086}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &1923220760602023216
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8624740838421467304}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle Slide Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8624740838421467304
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1923220760602023216}
|
||||||
|
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: 900962119107375790}
|
||||||
|
m_Father: {fileID: 5653634108450285178}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &3264413081520743742
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1484526957430814939}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1484526957430814939
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3264413081520743742}
|
||||||
|
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: 1806860104537654056}
|
||||||
|
m_Father: {fileID: 5653634108450285178}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: -5, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &3301128183540283068
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5653634108450285178}
|
||||||
|
- component: {fileID: 2746946344350271564}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Slider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5653634108450285178
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3301128183540283068}
|
||||||
|
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: 577155313112453847}
|
||||||
|
- {fileID: 1484526957430814939}
|
||||||
|
- {fileID: 8624740838421467304}
|
||||||
|
m_Father: {fileID: 5749015153972777127}
|
||||||
|
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: 33.08, y: -2.425}
|
||||||
|
m_SizeDelta: {x: 216.16, y: 24.85}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &2746946344350271564
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3301128183540283068}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 3205612178821969769}
|
||||||
|
m_FillRect: {fileID: 1806860104537654056}
|
||||||
|
m_HandleRect: {fileID: 900962119107375790}
|
||||||
|
m_Direction: 0
|
||||||
|
m_MinValue: 0
|
||||||
|
m_MaxValue: 1
|
||||||
|
m_WholeNumbers: 0
|
||||||
|
m_Value: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &4906795694658300487
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1806860104537654056}
|
||||||
|
- component: {fileID: 2796826311491354681}
|
||||||
|
- component: {fileID: 5293240414597355417}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1806860104537654056
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4906795694658300487}
|
||||||
|
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: 1484526957430814939}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &2796826311491354681
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4906795694658300487}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &5293240414597355417
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4906795694658300487}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &6808632974895968247
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 900962119107375790}
|
||||||
|
- component: {fileID: 3444417998701724978}
|
||||||
|
- component: {fileID: 3205612178821969769}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &900962119107375790
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6808632974895968247}
|
||||||
|
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: 8624740838421467304}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3444417998701724978
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6808632974895968247}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &3205612178821969769
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6808632974895968247}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e150a7924d55dcb4b91a78e0830b419f
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,813 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &969884032122716155
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3969154243212091243}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle Slide Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3969154243212091243
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 969884032122716155}
|
||||||
|
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: 310966372095626978}
|
||||||
|
m_Father: {fileID: 8652593581461747968}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &1581342931589966566
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 310966372095626978}
|
||||||
|
- component: {fileID: 1501310501853857812}
|
||||||
|
- component: {fileID: 8858725208427347718}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &310966372095626978
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1581342931589966566}
|
||||||
|
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: 3969154243212091243}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &1501310501853857812
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1581342931589966566}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &8858725208427347718
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1581342931589966566}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &2201762762010450727
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1691270400269877361}
|
||||||
|
- component: {fileID: 902405702411589216}
|
||||||
|
- component: {fileID: 6081852666575568307}
|
||||||
|
- component: {fileID: 6066509456273779269}
|
||||||
|
- component: {fileID: 257481779865871796}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Kamenolomnia
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1691270400269877361
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2201762762010450727}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -24.86, y: -0.2, z: 0}
|
||||||
|
m_LocalScale: {x: 1.6223953, y: 1.9534804, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 6491323138505718067}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &902405702411589216
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2201762762010450727}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: 4535865847468002376, guid: 6aa747c9218e809439e10ede0685b401, type: 3}
|
||||||
|
m_Color: {r: 0.8274511, g: 0.8274511, b: 0.8274511, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!114 &6081852666575568307
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2201762762010450727}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 836781aedea7fe547acba94b7fd9aabc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceCollector
|
||||||
|
resourceType: 3
|
||||||
|
amountPerClick: 10
|
||||||
|
maxCapacity: 100
|
||||||
|
currentStock: 0
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!61 &6066509456273779269
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2201762762010450727}
|
||||||
|
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.00000011920929, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1.622, y: 1.08}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1.65, y: 1.1}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &257481779865871796
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2201762762010450727}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 03e94b2f819b2884eb838f4c768e5d17, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingUI
|
||||||
|
building: {fileID: 6081852666575568307}
|
||||||
|
stokText: {fileID: 8911905189307943166}
|
||||||
|
progressBar: {fileID: 8435780551198638127}
|
||||||
|
--- !u!1 &3212626260908745787
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6856921113830922206}
|
||||||
|
- component: {fileID: 7675630323752410891}
|
||||||
|
- component: {fileID: 2351731012890206024}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6856921113830922206
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3212626260908745787}
|
||||||
|
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: 8652593581461747968}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7675630323752410891
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3212626260908745787}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &2351731012890206024
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3212626260908745787}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &3340173628128296496
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8654331807705166329}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8654331807705166329
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3340173628128296496}
|
||||||
|
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: 582854950046736703}
|
||||||
|
m_Father: {fileID: 8652593581461747968}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: -5, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &6192811279082683132
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 582854950046736703}
|
||||||
|
- component: {fileID: 8249385852799821456}
|
||||||
|
- component: {fileID: 7373747027848728310}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &582854950046736703
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6192811279082683132}
|
||||||
|
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: 8654331807705166329}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8249385852799821456
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6192811279082683132}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &7373747027848728310
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6192811279082683132}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &6363204751130955412
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8652593581461747968}
|
||||||
|
- component: {fileID: 8435780551198638127}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Slider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8652593581461747968
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6363204751130955412}
|
||||||
|
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: 6856921113830922206}
|
||||||
|
- {fileID: 8654331807705166329}
|
||||||
|
- {fileID: 3969154243212091243}
|
||||||
|
m_Father: {fileID: 6491323138505718067}
|
||||||
|
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: 33.08, y: -2.425}
|
||||||
|
m_SizeDelta: {x: 216.16, y: 24.85}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &8435780551198638127
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6363204751130955412}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 8858725208427347718}
|
||||||
|
m_FillRect: {fileID: 582854950046736703}
|
||||||
|
m_HandleRect: {fileID: 310966372095626978}
|
||||||
|
m_Direction: 0
|
||||||
|
m_MinValue: 0
|
||||||
|
m_MaxValue: 1
|
||||||
|
m_WholeNumbers: 0
|
||||||
|
m_Value: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &6484039534567758818
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6491323138505718067}
|
||||||
|
- component: {fileID: 462060466348873135}
|
||||||
|
- component: {fileID: 4402419616689163873}
|
||||||
|
- component: {fileID: 3951695076526408292}
|
||||||
|
- component: {fileID: 5237439105164938095}
|
||||||
|
- component: {fileID: 8911905189307943166}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Canvas (2)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6491323138505718067
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6484039534567758818}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.015614046, y: 0.022903124, z: 0.02}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 8652593581461747968}
|
||||||
|
m_Father: {fileID: 1691270400269877361}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: -0.15474153, y: 0.7714305}
|
||||||
|
m_SizeDelta: {x: 213.4607, y: 61.0907}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &462060466348873135
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6484039534567758818}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &4402419616689163873
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6484039534567758818}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 100
|
||||||
|
m_PresetInfoIsWorld: 1
|
||||||
|
--- !u!114 &3951695076526408292
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6484039534567758818}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!23 &5237439105164938095
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6484039534567758818}
|
||||||
|
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 &8911905189307943166
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6484039534567758818}
|
||||||
|
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: 0/100
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 260
|
||||||
|
m_fontSizeBase: 260
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
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.5778427, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 5237439105164938095}
|
||||||
|
m_maskType: 0
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 49403fe7cb5651a448b48615a085342c
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,831 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &308417238507269890
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4443656703844098059}
|
||||||
|
- component: {fileID: 3578602112558971809}
|
||||||
|
- component: {fileID: 6491125982777116289}
|
||||||
|
- component: {fileID: 7428043993242197720}
|
||||||
|
- component: {fileID: 8876229628118969147}
|
||||||
|
- component: {fileID: 4809400745550651630}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Canvas (2)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4443656703844098059
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 308417238507269890}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.010077807, y: 0.022694908, z: 0.019999897}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 4322642769442097139}
|
||||||
|
m_Father: {fileID: 6428279736336967697}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: -0.034, y: 1}
|
||||||
|
m_SizeDelta: {x: 213.4607, y: 61.0907}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &3578602112558971809
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 308417238507269890}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &6491125982777116289
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 308417238507269890}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 100
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &7428043993242197720
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 308417238507269890}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!23 &8876229628118969147
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 308417238507269890}
|
||||||
|
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 &4809400745550651630
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 308417238507269890}
|
||||||
|
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: 0/100
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 260
|
||||||
|
m_fontSizeBase: 260
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
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.5778427, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 8876229628118969147}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!1 &718444822100953595
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2219371244321850613}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle Slide Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2219371244321850613
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 718444822100953595}
|
||||||
|
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: 7131657856732036943}
|
||||||
|
m_Father: {fileID: 4322642769442097139}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &1347052513874559717
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5394567590597037228}
|
||||||
|
- component: {fileID: 5006164066123729041}
|
||||||
|
- component: {fileID: 6956128874796247178}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5394567590597037228
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1347052513874559717}
|
||||||
|
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: 4322642769442097139}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5006164066123729041
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1347052513874559717}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6956128874796247178
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1347052513874559717}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &1754615061363553275
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7131657856732036943}
|
||||||
|
- component: {fileID: 5730540684975491652}
|
||||||
|
- component: {fileID: 960580518922019974}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7131657856732036943
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1754615061363553275}
|
||||||
|
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: 2219371244321850613}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5730540684975491652
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1754615061363553275}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &960580518922019974
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1754615061363553275}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &2536985253622400011
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4322642769442097139}
|
||||||
|
- component: {fileID: 4741032704856435982}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Slider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4322642769442097139
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2536985253622400011}
|
||||||
|
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: 5394567590597037228}
|
||||||
|
- {fileID: 3406416985991052905}
|
||||||
|
- {fileID: 2219371244321850613}
|
||||||
|
m_Father: {fileID: 4443656703844098059}
|
||||||
|
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: 33.08, y: -2.425}
|
||||||
|
m_SizeDelta: {x: 216.16, y: 24.85}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &4741032704856435982
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2536985253622400011}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 960580518922019974}
|
||||||
|
m_FillRect: {fileID: 5352715714053848194}
|
||||||
|
m_HandleRect: {fileID: 7131657856732036943}
|
||||||
|
m_Direction: 0
|
||||||
|
m_MinValue: 0
|
||||||
|
m_MaxValue: 1
|
||||||
|
m_WholeNumbers: 0
|
||||||
|
m_Value: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &5502092000955230044
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3406416985991052905}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3406416985991052905
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5502092000955230044}
|
||||||
|
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: 5352715714053848194}
|
||||||
|
m_Father: {fileID: 4322642769442097139}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: -5, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &7385155700126818636
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6428279736336967697}
|
||||||
|
- component: {fileID: 1583778620634197361}
|
||||||
|
- component: {fileID: 5959045861198059140}
|
||||||
|
- component: {fileID: 3238156261450020092}
|
||||||
|
- component: {fileID: 6835409609226383739}
|
||||||
|
- component: {fileID: 6451544488071506654}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Kristall
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &6428279736336967697
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7385155700126818636}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 1.6, y: 2.1, z: 0}
|
||||||
|
m_LocalScale: {x: 2.0135546, y: 1.9665718, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 4443656703844098059}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &1583778620634197361
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7385155700126818636}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: 4647002068681719999, guid: b59c87f910a58c5459dc08f48515abaa, type: 3}
|
||||||
|
m_Color: {r: 0.8274511, g: 0.8274511, b: 0.8274511, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!114 &5959045861198059140
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7385155700126818636}
|
||||||
|
m_Enabled: 0
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: eb8009d4824ec6f4392a50d60eead242, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceProducer
|
||||||
|
resourceType: 6
|
||||||
|
amountPerTick: 3
|
||||||
|
tickInterval: 4
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!114 &3238156261450020092
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7385155700126818636}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 836781aedea7fe547acba94b7fd9aabc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceCollector
|
||||||
|
resourceType: 6
|
||||||
|
amountPerClick: 10
|
||||||
|
maxCapacity: 100
|
||||||
|
currentStock: 0
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!61 &6835409609226383739
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7385155700126818636}
|
||||||
|
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_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 15.72, y: 10.8}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &6451544488071506654
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7385155700126818636}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 03e94b2f819b2884eb838f4c768e5d17, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingUI
|
||||||
|
building: {fileID: 3238156261450020092}
|
||||||
|
stokText: {fileID: 4809400745550651630}
|
||||||
|
progressBar: {fileID: 4741032704856435982}
|
||||||
|
--- !u!1 &8091735289944365453
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5352715714053848194}
|
||||||
|
- component: {fileID: 5999212797332437909}
|
||||||
|
- component: {fileID: 858267319036784839}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5352715714053848194
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8091735289944365453}
|
||||||
|
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: 3406416985991052905}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5999212797332437909
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8091735289944365453}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &858267319036784839
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8091735289944365453}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f24705ebbb7ea11458ddc9d7860aaf57
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,817 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &295848160926721670
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8218986922259218719}
|
||||||
|
- component: {fileID: 1626548957784810666}
|
||||||
|
- component: {fileID: 5306320879243393515}
|
||||||
|
- component: {fileID: 4347759638798865807}
|
||||||
|
- component: {fileID: 8080049013686760202}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Lesopilka
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8218986922259218719
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 295848160926721670}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1.6224002, y: 2.837443, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5579120603098066213}
|
||||||
|
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: -19.849152, y: -0.30836427}
|
||||||
|
m_SizeDelta: {x: 2.2826, y: 1.0159}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!212 &1626548957784810666
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 295848160926721670}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: -2103617111491369785, guid: 73513117b87e55849b59b2a21a09cc71, type: 3}
|
||||||
|
m_Color: {r: 0.8274511, g: 0.8274511, b: 0.8274511, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!114 &5306320879243393515
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 295848160926721670}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 836781aedea7fe547acba94b7fd9aabc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceCollector
|
||||||
|
resourceType: 2
|
||||||
|
amountPerClick: 10
|
||||||
|
maxCapacity: 100
|
||||||
|
currentStock: 0
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!61 &4347759638798865807
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 295848160926721670}
|
||||||
|
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_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1.8461539, y: 1.6430769}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1.5, y: 1.2}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &8080049013686760202
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 295848160926721670}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 03e94b2f819b2884eb838f4c768e5d17, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingUI
|
||||||
|
building: {fileID: 5306320879243393515}
|
||||||
|
stokText: {fileID: 3881444792252716484}
|
||||||
|
progressBar: {fileID: 8635198783164890612}
|
||||||
|
--- !u!1 &763731568768391115
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7241778671202181995}
|
||||||
|
- component: {fileID: 8635198783164890612}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Slider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7241778671202181995
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 763731568768391115}
|
||||||
|
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: 2782416422371965892}
|
||||||
|
- {fileID: 3245991593120377230}
|
||||||
|
- {fileID: 7246166311783535450}
|
||||||
|
m_Father: {fileID: 5579120603098066213}
|
||||||
|
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: 33.08, y: -2.239}
|
||||||
|
m_SizeDelta: {x: 216.16, y: 25.223}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &8635198783164890612
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 763731568768391115}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 167073955797870126}
|
||||||
|
m_FillRect: {fileID: 6144247887862302617}
|
||||||
|
m_HandleRect: {fileID: 5641726130355626710}
|
||||||
|
m_Direction: 0
|
||||||
|
m_MinValue: 0
|
||||||
|
m_MaxValue: 1
|
||||||
|
m_WholeNumbers: 0
|
||||||
|
m_Value: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &1301949588430767328
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5579120603098066213}
|
||||||
|
- component: {fileID: 1374701000118954752}
|
||||||
|
- component: {fileID: 1557042209516711472}
|
||||||
|
- component: {fileID: 6507110458437413086}
|
||||||
|
- component: {fileID: 1583811796485460241}
|
||||||
|
- component: {fileID: 3881444792252716484}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Canvas
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5579120603098066213
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1301949588430767328}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.02, y: 0.02, z: 0.02}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 7241778671202181995}
|
||||||
|
m_Father: {fileID: 8218986922259218719}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0.95, y: 1.44}
|
||||||
|
m_SizeDelta: {x: 213.4607, y: 61.0907}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &1374701000118954752
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1301949588430767328}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &1557042209516711472
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1301949588430767328}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 100
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &6507110458437413086
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1301949588430767328}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!23 &1583811796485460241
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1301949588430767328}
|
||||||
|
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 &3881444792252716484
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1301949588430767328}
|
||||||
|
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: 0/100
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 260
|
||||||
|
m_fontSizeBase: 260
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
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.5778427, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 1583811796485460241}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!1 &1330858007547630774
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7246166311783535450}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle Slide Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7246166311783535450
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1330858007547630774}
|
||||||
|
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: 5641726130355626710}
|
||||||
|
m_Father: {fileID: 7241778671202181995}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &3939521458353665635
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5641726130355626710}
|
||||||
|
- component: {fileID: 6219326034010900823}
|
||||||
|
- component: {fileID: 167073955797870126}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5641726130355626710
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3939521458353665635}
|
||||||
|
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: 7246166311783535450}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &6219326034010900823
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3939521458353665635}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &167073955797870126
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3939521458353665635}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &5249085410511434409
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3245991593120377230}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3245991593120377230
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5249085410511434409}
|
||||||
|
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: 6144247887862302617}
|
||||||
|
m_Father: {fileID: 7241778671202181995}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: -5, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &6355493401388111109
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2782416422371965892}
|
||||||
|
- component: {fileID: 5314180381471706409}
|
||||||
|
- component: {fileID: 8839952233946098354}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2782416422371965892
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6355493401388111109}
|
||||||
|
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: 7241778671202181995}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5314180381471706409
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6355493401388111109}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &8839952233946098354
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6355493401388111109}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &6985532879478739689
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6144247887862302617}
|
||||||
|
- component: {fileID: 1418222646644384381}
|
||||||
|
- component: {fileID: 6527831730433201755}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6144247887862302617
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6985532879478739689}
|
||||||
|
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: 3245991593120377230}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &1418222646644384381
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6985532879478739689}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6527831730433201755
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6985532879478739689}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bf7bc0815d543dd47944d9157ef313e7
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,813 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &888065131884256076
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2800474039428411781}
|
||||||
|
- component: {fileID: 3946903823023915250}
|
||||||
|
- component: {fileID: 4695968121406322393}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2800474039428411781
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 888065131884256076}
|
||||||
|
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: 5261766043013034418}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3946903823023915250
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 888065131884256076}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &4695968121406322393
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 888065131884256076}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &1515500894503721065
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 9128744184370430097}
|
||||||
|
- component: {fileID: 7362341572727941915}
|
||||||
|
- component: {fileID: 3253308405779028863}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &9128744184370430097
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1515500894503721065}
|
||||||
|
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: 5913247723073291300}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7362341572727941915
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1515500894503721065}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &3253308405779028863
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1515500894503721065}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &1652417071818933787
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7368589938815255286}
|
||||||
|
- component: {fileID: 2635063965737862624}
|
||||||
|
- component: {fileID: 4856851583400535072}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7368589938815255286
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1652417071818933787}
|
||||||
|
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: 8808706617047054436}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &2635063965737862624
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1652417071818933787}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &4856851583400535072
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1652417071818933787}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &1998845356432122333
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8808706617047054436}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8808706617047054436
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1998845356432122333}
|
||||||
|
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: 7368589938815255286}
|
||||||
|
m_Father: {fileID: 5913247723073291300}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: -5, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &3804170935388087576
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1206898736526421615}
|
||||||
|
- component: {fileID: 5452419515943717409}
|
||||||
|
- component: {fileID: 3515853544020916043}
|
||||||
|
- component: {fileID: 4109876596211566975}
|
||||||
|
- component: {fileID: 6763315523887852349}
|
||||||
|
- component: {fileID: 6446373148616658521}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Canvas (3)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1206898736526421615
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3804170935388087576}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.013578291, y: 0.023382349, z: 0.019999897}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5913247723073291300}
|
||||||
|
m_Father: {fileID: 8381781505187442674}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0.07, y: 0.86}
|
||||||
|
m_SizeDelta: {x: 213.4607, y: 61.0907}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &5452419515943717409
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3804170935388087576}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &3515853544020916043
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3804170935388087576}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 100
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &4109876596211566975
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3804170935388087576}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!23 &6763315523887852349
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3804170935388087576}
|
||||||
|
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 &6446373148616658521
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3804170935388087576}
|
||||||
|
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: 0/100
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 260
|
||||||
|
m_fontSizeBase: 260
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
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.5778427, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 6763315523887852349}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!1 &5869788358976099833
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5913247723073291300}
|
||||||
|
- component: {fileID: 1065437750742842432}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Slider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5913247723073291300
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5869788358976099833}
|
||||||
|
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: 9128744184370430097}
|
||||||
|
- {fileID: 8808706617047054436}
|
||||||
|
- {fileID: 5261766043013034418}
|
||||||
|
m_Father: {fileID: 1206898736526421615}
|
||||||
|
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: 33.08, y: -2.425}
|
||||||
|
m_SizeDelta: {x: 216.16, y: 24.85}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1065437750742842432
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5869788358976099833}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 4695968121406322393}
|
||||||
|
m_FillRect: {fileID: 7368589938815255286}
|
||||||
|
m_HandleRect: {fileID: 2800474039428411781}
|
||||||
|
m_Direction: 0
|
||||||
|
m_MinValue: 0
|
||||||
|
m_MaxValue: 1
|
||||||
|
m_WholeNumbers: 0
|
||||||
|
m_Value: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &6959817872365076538
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8381781505187442674}
|
||||||
|
- component: {fileID: 4052048471279866}
|
||||||
|
- component: {fileID: 7603893054635625423}
|
||||||
|
- component: {fileID: 6686164845870214523}
|
||||||
|
- component: {fileID: 8733527051286464462}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: People
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &8381781505187442674
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6959817872365076538}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 1.48, y: -2.44, z: 0}
|
||||||
|
m_LocalScale: {x: 1.7595457, y: 2.1260598, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 1206898736526421615}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &4052048471279866
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6959817872365076538}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: 9167447843336648964, guid: 62ae8b9f63d362c4883bd7909d40f2bf, type: 3}
|
||||||
|
m_Color: {r: 0.9607844, g: 0.9607844, b: 0.9607844, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!114 &7603893054635625423
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6959817872365076538}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 836781aedea7fe547acba94b7fd9aabc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceCollector
|
||||||
|
resourceType: 0
|
||||||
|
amountPerClick: 10
|
||||||
|
maxCapacity: 100
|
||||||
|
currentStock: 0
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!61 &6686164845870214523
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6959817872365076538}
|
||||||
|
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_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 2.368, y: 2.16}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 2, y: 2}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &8733527051286464462
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6959817872365076538}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 03e94b2f819b2884eb838f4c768e5d17, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingUI
|
||||||
|
building: {fileID: 7603893054635625423}
|
||||||
|
stokText: {fileID: 6446373148616658521}
|
||||||
|
progressBar: {fileID: 1065437750742842432}
|
||||||
|
--- !u!1 &7087647542009113485
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5261766043013034418}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle Slide Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5261766043013034418
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7087647542009113485}
|
||||||
|
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: 2800474039428411781}
|
||||||
|
m_Father: {fileID: 5913247723073291300}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d8aefa6e68bd204419ffaeb287dea407
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,813 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3477693277770485176
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 9049021842245786191}
|
||||||
|
- component: {fileID: 6798716856179431755}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Slider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &9049021842245786191
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3477693277770485176}
|
||||||
|
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: 7392134504014982642}
|
||||||
|
- {fileID: 4877085052740413173}
|
||||||
|
- {fileID: 4099470492338002646}
|
||||||
|
m_Father: {fileID: 7767093088671555243}
|
||||||
|
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: 33.08, y: -2.425}
|
||||||
|
m_SizeDelta: {x: 216.16, y: 24.85}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &6798716856179431755
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3477693277770485176}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 281306229817890815}
|
||||||
|
m_FillRect: {fileID: 2773622439927167709}
|
||||||
|
m_HandleRect: {fileID: 2500375828274013755}
|
||||||
|
m_Direction: 0
|
||||||
|
m_MinValue: 0
|
||||||
|
m_MaxValue: 1
|
||||||
|
m_WholeNumbers: 0
|
||||||
|
m_Value: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &3910855990794239310
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2773622439927167709}
|
||||||
|
- component: {fileID: 8619355614463974451}
|
||||||
|
- component: {fileID: 5892695595717621851}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2773622439927167709
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3910855990794239310}
|
||||||
|
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: 4877085052740413173}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8619355614463974451
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3910855990794239310}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &5892695595717621851
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3910855990794239310}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &6031403639323220171
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4877085052740413173}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Fill Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4877085052740413173
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6031403639323220171}
|
||||||
|
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: 2773622439927167709}
|
||||||
|
m_Father: {fileID: 9049021842245786191}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: -5, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &7343233607063551713
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2500375828274013755}
|
||||||
|
- component: {fileID: 6895100105936511138}
|
||||||
|
- component: {fileID: 281306229817890815}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2500375828274013755
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7343233607063551713}
|
||||||
|
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: 4099470492338002646}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &6895100105936511138
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7343233607063551713}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &281306229817890815
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7343233607063551713}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &8001413377479014276
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4099470492338002646}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Handle Slide Area
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4099470492338002646
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8001413377479014276}
|
||||||
|
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: 2500375828274013755}
|
||||||
|
m_Father: {fileID: 9049021842245786191}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -20, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &8005614407148533590
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 418225002888223939}
|
||||||
|
- component: {fileID: 4598832958593301086}
|
||||||
|
- component: {fileID: 2720790236691513585}
|
||||||
|
- component: {fileID: 2564761440770285527}
|
||||||
|
- component: {fileID: 2796556761884381038}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Shaxta
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &418225002888223939
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8005614407148533590}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -24.91, y: -3.52, z: 0}
|
||||||
|
m_LocalScale: {x: 1.671882, y: 1.7337389, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 7767093088671555243}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &4598832958593301086
|
||||||
|
SpriteRenderer:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8005614407148533590}
|
||||||
|
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: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 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: 2
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_Sprite: {fileID: -7706097715734163884, guid: 7c124dd4bd789a24d95865fa9862169b, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
--- !u!114 &2720790236691513585
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8005614407148533590}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 836781aedea7fe547acba94b7fd9aabc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::ResourceCollector
|
||||||
|
resourceType: 4
|
||||||
|
amountPerClick: 10
|
||||||
|
maxCapacity: 100
|
||||||
|
currentStock: 0
|
||||||
|
level: 1
|
||||||
|
perLevelMultiplier: 1.2
|
||||||
|
--- !u!61 &2564761440770285527
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8005614407148533590}
|
||||||
|
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_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 2.6311111, y: 2.4}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 2, y: 2}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &2796556761884381038
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8005614407148533590}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 03e94b2f819b2884eb838f4c768e5d17, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::BuildingUI
|
||||||
|
building: {fileID: 2720790236691513585}
|
||||||
|
stokText: {fileID: 4777902828861520343}
|
||||||
|
progressBar: {fileID: 6798716856179431755}
|
||||||
|
--- !u!1 &8966666087013359468
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7392134504014982642}
|
||||||
|
- component: {fileID: 625637881806047824}
|
||||||
|
- component: {fileID: 6938675845369349677}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7392134504014982642
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8966666087013359468}
|
||||||
|
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: 9049021842245786191}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.25}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.75}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &625637881806047824
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8966666087013359468}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6938675845369349677
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8966666087013359468}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &9167349175870114390
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7767093088671555243}
|
||||||
|
- component: {fileID: 2239592075709300590}
|
||||||
|
- component: {fileID: 4291138224655557414}
|
||||||
|
- component: {fileID: 6923797281547489874}
|
||||||
|
- component: {fileID: 4994502127451470438}
|
||||||
|
- component: {fileID: 4777902828861520343}
|
||||||
|
m_Layer: 3
|
||||||
|
m_Name: Canvas (1)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7767093088671555243
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9167349175870114390}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.01424164, y: 0.02386495, z: 0.02}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 9049021842245786191}
|
||||||
|
m_Father: {fileID: 418225002888223939}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: -0.30724525, y: 0.7990217}
|
||||||
|
m_SizeDelta: {x: 213.4607, y: 61.0907}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &2239592075709300590
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9167349175870114390}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &4291138224655557414
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9167349175870114390}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 100
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &6923797281547489874
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9167349175870114390}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!23 &4994502127451470438
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9167349175870114390}
|
||||||
|
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 &4777902828861520343
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9167349175870114390}
|
||||||
|
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: 0/100
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 260
|
||||||
|
m_fontSizeBase: 260
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
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.5778427, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 4994502127451470438}
|
||||||
|
m_maskType: 0
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 198e0c7292623ea4194c29ec7a96a148
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 00652149b8607fc499a0406a826811ee
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,536 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &325422458062166425
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2603866786527873297}
|
||||||
|
- component: {fileID: 4638465306092719133}
|
||||||
|
- component: {fileID: 8856817474958427356}
|
||||||
|
- component: {fileID: 5954913169102562839}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: BuildingButton
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2603866786527873297
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 325422458062166425}
|
||||||
|
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: 5360392765729382484}
|
||||||
|
- {fileID: 7148463949653114205}
|
||||||
|
- {fileID: 8193145004195366051}
|
||||||
|
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: 628.51, y: -39.77}
|
||||||
|
m_SizeDelta: {x: 181.02, y: 79.54}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &4638465306092719133
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 325422458062166425}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &8856817474958427356
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 325422458062166425}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0.381132, g: 0.31569237, b: 0.31569237, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &5954913169102562839
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 325422458062166425}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 8856817474958427356}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!1 &1339680859893674440
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8193145004195366051}
|
||||||
|
- component: {fileID: 5650023763325699801}
|
||||||
|
- component: {fileID: 1691647246842355621}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: NameText
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8193145004195366051
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1339680859893674440}
|
||||||
|
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: 2603866786527873297}
|
||||||
|
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: 2.4907, y: 0}
|
||||||
|
m_SizeDelta: {x: 126.2, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5650023763325699801
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1339680859893674440}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &1691647246842355621
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1339680859893674440}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text:
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 36
|
||||||
|
m_fontSizeBase: 36
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!1 &2818511910305682941
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5360392765729382484}
|
||||||
|
- component: {fileID: 3198155674833771624}
|
||||||
|
- component: {fileID: 1435884234621093427}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Text (TMP)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5360392765729382484
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2818511910305682941}
|
||||||
|
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: 2603866786527873297}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 2.4919968, y: 0}
|
||||||
|
m_SizeDelta: {x: -54.8234, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3198155674833771624
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2818511910305682941}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &1435884234621093427
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2818511910305682941}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text:
|
||||||
|
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: 4281479730
|
||||||
|
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 24
|
||||||
|
m_fontSizeBase: 24
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!1 &3674648620887989720
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7148463949653114205}
|
||||||
|
- component: {fileID: 5562570438576188084}
|
||||||
|
- component: {fileID: 6127251531067287972}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: ConstText
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7148463949653114205
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3674648620887989720}
|
||||||
|
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: 2603866786527873297}
|
||||||
|
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: 2.4912, y: 0}
|
||||||
|
m_SizeDelta: {x: 126.2, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &5562570438576188084
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3674648620887989720}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6127251531067287972
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3674648620887989720}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text:
|
||||||
|
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: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 36
|
||||||
|
m_fontSizeBase: 36
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ee8f2c0bebc1dd648a804386d277d7ea
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,352 +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: 9
|
|
||||||
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: 3
|
|
||||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
|
||||||
m_SkyboxMaterial: {fileID: 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_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
|
||||||
--- !u!157 &3
|
|
||||||
LightmapSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 12
|
|
||||||
m_GIWorkflowMode: 1
|
|
||||||
m_GISettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_EnvironmentLightingMode: 0
|
|
||||||
m_EnableBakedLightmaps: 0
|
|
||||||
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_FinalGather: 0
|
|
||||||
m_FinalGatherFiltering: 1
|
|
||||||
m_FinalGatherRayCount: 256
|
|
||||||
m_ReflectionCompression: 2
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_BakeBackend: 1
|
|
||||||
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: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_ExportTrainingData: 0
|
|
||||||
m_TrainingDataDestination: TrainingData
|
|
||||||
m_LightProbeSampleCountMultiplier: 4
|
|
||||||
m_LightingDataAsset: {fileID: 0}
|
|
||||||
m_LightingSettings: {fileID: 0}
|
|
||||||
--- !u!196 &4
|
|
||||||
NavMeshSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_BuildSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
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
|
|
||||||
accuratePlacement: 0
|
|
||||||
maxJobWorkers: 0
|
|
||||||
preserveTilesOutsideBounds: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_NavMeshData: {fileID: 0}
|
|
||||||
--- !u!1 &519420028
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 519420032}
|
|
||||||
- component: {fileID: 519420031}
|
|
||||||
- component: {fileID: 519420029}
|
|
||||||
- component: {fileID: 519420030}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Main Camera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &519420029
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 519420028}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!114 &519420030
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 519420028}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_RenderShadows: 1
|
|
||||||
m_RequiresDepthTextureOption: 2
|
|
||||||
m_RequiresOpaqueTextureOption: 2
|
|
||||||
m_CameraType: 0
|
|
||||||
m_Cameras: []
|
|
||||||
m_RendererIndex: -1
|
|
||||||
m_VolumeLayerMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 1
|
|
||||||
m_VolumeTrigger: {fileID: 0}
|
|
||||||
m_RenderPostProcessing: 0
|
|
||||||
m_Antialiasing: 0
|
|
||||||
m_AntialiasingQuality: 2
|
|
||||||
m_StopNaN: 0
|
|
||||||
m_Dithering: 0
|
|
||||||
m_ClearDepth: 1
|
|
||||||
m_AllowXRRendering: 1
|
|
||||||
m_RequiresDepthTexture: 0
|
|
||||||
m_RequiresColorTexture: 0
|
|
||||||
m_Version: 2
|
|
||||||
--- !u!20 &519420031
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 519420028}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 2
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FOVAxisMode: 0
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 34
|
|
||||||
orthographic: 1
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -1
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 0
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 0
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 0
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &519420032
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 519420028}
|
|
||||||
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_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &619394800
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 619394802}
|
|
||||||
- component: {fileID: 619394801}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Global Light 2D
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &619394801
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 619394800}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_ComponentVersion: 1
|
|
||||||
m_LightType: 4
|
|
||||||
m_BlendStyleIndex: 0
|
|
||||||
m_FalloffIntensity: 0.5
|
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_Intensity: 1
|
|
||||||
m_LightVolumeIntensity: 1
|
|
||||||
m_LightVolumeIntensityEnabled: 0
|
|
||||||
m_ApplyToSortingLayers: 00000000
|
|
||||||
m_LightCookieSprite: {fileID: 0}
|
|
||||||
m_DeprecatedPointLightCookieSprite: {fileID: 0}
|
|
||||||
m_LightOrder: 0
|
|
||||||
m_OverlapOperation: 0
|
|
||||||
m_NormalMapDistance: 3
|
|
||||||
m_NormalMapQuality: 2
|
|
||||||
m_UseNormalMap: 0
|
|
||||||
m_ShadowIntensityEnabled: 0
|
|
||||||
m_ShadowIntensity: 0.75
|
|
||||||
m_ShadowVolumeIntensityEnabled: 0
|
|
||||||
m_ShadowVolumeIntensity: 0.75
|
|
||||||
m_Vertices:
|
|
||||||
- position: {x: 0.9985302, y: 0.9985302, z: 0}
|
|
||||||
color: {r: 0.70710677, g: 0.70710677, b: 0, a: 0}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: 0.9985302, y: 0.9985302, z: 0}
|
|
||||||
color: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: -0.9985302, y: 0.9985302, z: 0}
|
|
||||||
color: {r: -0.70710677, g: 0.70710677, b: 0, a: 0}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: -0.9985302, y: 0.9985302, z: 0}
|
|
||||||
color: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: -0.99853003, y: -0.9985304, z: 0}
|
|
||||||
color: {r: -0.70710665, g: -0.7071069, b: 0, a: 0}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: -0.99853003, y: -0.9985304, z: 0}
|
|
||||||
color: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: 0.99853003, y: -0.9985304, z: 0}
|
|
||||||
color: {r: 0.70710665, g: -0.7071069, b: 0, a: 0}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: 0.99853003, y: -0.9985304, z: 0}
|
|
||||||
color: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
- position: {x: 0, y: 0, z: 0}
|
|
||||||
color: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
uv: {x: 0, y: 0}
|
|
||||||
m_Triangles: 030001000800020000000100030002000100050003000800040002000300050004000300070005000800060004000500070006000500010007000800000006000700010000000700
|
|
||||||
m_LocalBounds:
|
|
||||||
m_Center: {x: 0, y: -0.00000011920929, z: 0}
|
|
||||||
m_Extent: {x: 0.9985302, y: 0.99853027, z: 0}
|
|
||||||
m_PointLightInnerAngle: 360
|
|
||||||
m_PointLightOuterAngle: 360
|
|
||||||
m_PointLightInnerRadius: 0
|
|
||||||
m_PointLightOuterRadius: 1
|
|
||||||
m_ShapeLightParametricSides: 5
|
|
||||||
m_ShapeLightParametricAngleOffset: 0
|
|
||||||
m_ShapeLightParametricRadius: 1
|
|
||||||
m_ShapeLightFalloffSize: 0.5
|
|
||||||
m_ShapeLightFalloffOffset: {x: 0, y: 0}
|
|
||||||
m_ShapePath:
|
|
||||||
- {x: -0.5, y: -0.5, z: 0}
|
|
||||||
- {x: 0.5, y: -0.5, z: 0}
|
|
||||||
- {x: 0.5, y: 0.5, z: 0}
|
|
||||||
- {x: -0.5, y: 0.5, z: 0}
|
|
||||||
--- !u!4 &619394802
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 619394800}
|
|
||||||
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_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8c9cfa26abfee488c85f1582747f6a02
|
guid: baa48fafda29f4247b2910dc9622c97a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bb59bee2c4134da4b8a13896c9b2e177
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// ТОЧКА СБОРКИ МОДУЛЕЙ (слой приложения). Документ: Docs/Modules/README.md
|
||||||
|
//
|
||||||
|
// Здесь и только здесь модули соединяются с остальной игрой:
|
||||||
|
// 1. регистрируются реализации контрактов, которые не регистрируются сами;
|
||||||
|
// 2. события модулей подключаются к системам, которые ещё не разнесены по модулям (GameProgress, Казармы).
|
||||||
|
// Модули друг о друге ничего не знают -- всю "проводку" видно в одном файле.
|
||||||
|
public static class GameModules
|
||||||
|
{
|
||||||
|
// После SubsystemRegistration (там ядро очищается) и раньше любых Awake
|
||||||
|
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)]
|
||||||
|
static void Register()
|
||||||
|
{
|
||||||
|
// Боевая система -- чистый C#, сама зарегистрироваться не может
|
||||||
|
GameServices.Register<IBattleSystem>(new BattleSystem());
|
||||||
|
|
||||||
|
// Армия -- чистый C#, единственное место хранения войск (секция "army")
|
||||||
|
var army = new ArmyService();
|
||||||
|
GameServices.Register<IArmy>(army);
|
||||||
|
SaveRegistry.Register(army);
|
||||||
|
EventBus.Subscribe<TroopsChangedEvent>(_ => { if (GameProgress.HasInstance) GameProgress.Instance.MarkChanged(); });
|
||||||
|
EventBus.Subscribe<GameLoadedEvent>(_ => MigrateLegacyArmy(army));
|
||||||
|
|
||||||
|
// Круг -- чистый C#, сам сохраняет, в каком Круге игрок (секция "circle")
|
||||||
|
var circle = new CircleService();
|
||||||
|
GameServices.Register<ICircle>(circle);
|
||||||
|
SaveRegistry.Register(circle);
|
||||||
|
|
||||||
|
// Чат -- чистый C#; история живёт, пока открыта игра (между сценами тоже)
|
||||||
|
GameServices.Register<IChat>(new ChatService(System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()));
|
||||||
|
|
||||||
|
// Казармы появляются в списке стройки кодом -- до восстановления зданий из сохранения
|
||||||
|
EventBus.Subscribe<SettlementRestoringEvent>(_ => BarracksBootstrap.Ensure());
|
||||||
|
|
||||||
|
// Статистика для заданий (GameProgress) -- по событиям Мира
|
||||||
|
EventBus.Subscribe<MarchStartedEvent>(OnMarchStarted);
|
||||||
|
EventBus.Subscribe<MarchReturnedEvent>(OnMarchReturned);
|
||||||
|
|
||||||
|
// Окно "ВОЙСКО ВЕРНУЛОСЬ" в городе
|
||||||
|
MarchReturnPopup.Reset();
|
||||||
|
EventBus.Subscribe<MarchReturnedEvent>(MarchReturnPopup.OnMarchReturned);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Сцена загружена, Awake всех объектов прошли, Start -- ещё нет (сохранение грузится в Start)
|
||||||
|
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
|
||||||
|
static void MigrateLegacyMarches()
|
||||||
|
{
|
||||||
|
// Раньше походы хранились в progress.json (GameProgress.Data.sashaMarches).
|
||||||
|
// Теперь их сохраняет модуль Мира в save.json, секция "world". Переносим один раз.
|
||||||
|
var data = GameProgress.Instance.Data;
|
||||||
|
if (data.sashaMarches == null || data.sashaMarches.Count == 0 || MarchManager.Instance == null) return;
|
||||||
|
|
||||||
|
// Если в save.json уже есть секция "world", загрузка сохранения заменит эти походы на сохранённые
|
||||||
|
MarchManager.Instance.LoadMarches(new System.Collections.Generic.List<Bogatyri.World.MarchData>(data.sashaMarches));
|
||||||
|
|
||||||
|
// Из progress.json убираем, только когда походы уже записаны в save.json -- иначе вылет игры их потеряет
|
||||||
|
EventBus.Subscribe<GameSavedEvent>(ClearLegacyMarches);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ClearLegacyMarches(GameSavedEvent e)
|
||||||
|
{
|
||||||
|
EventBus.Unsubscribe<GameSavedEvent>(ClearLegacyMarches);
|
||||||
|
GameProgress.Instance.Data.sashaMarches.Clear();
|
||||||
|
GameProgress.Instance.MarkChanged();
|
||||||
|
Debug.Log("[МОДУЛИ] Походы перенесены из progress.json в модуль Мира.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Раньше войска хранились в progress.json (GameProgress.Data.troops и sashaMarchUnits моста ArmyBridge).
|
||||||
|
// Теперь -- в модуле Армии, save.json, секция "army". Переносим один раз, после загрузки сохранения.
|
||||||
|
static void MigrateLegacyArmy(ArmyService army)
|
||||||
|
{
|
||||||
|
var data = GameProgress.Instance.Data;
|
||||||
|
if (data.armyInModule) return;
|
||||||
|
|
||||||
|
if (!army.RestoredFromSave)
|
||||||
|
{
|
||||||
|
var legacyMarches = new System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<int, int[]>>();
|
||||||
|
foreach (var m in data.sashaMarchUnits)
|
||||||
|
legacyMarches.Add(new System.Collections.Generic.KeyValuePair<int, int[]>(m.marchId, m.units));
|
||||||
|
army.ImportLegacy(data.troops, legacyMarches);
|
||||||
|
Debug.Log($"[МОДУЛИ] Войска перенесены из progress.json в модуль Армии: в городе {army.SoldiersAtHome}, в походах {army.TroopsInMarches}.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Из progress.json убираем, только когда войска уже записаны в save.json -- иначе вылет игры их потеряет
|
||||||
|
if (army.RestoredFromSave) ClearLegacyArmy(default);
|
||||||
|
else EventBus.Subscribe<GameSavedEvent>(ClearLegacyArmy);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ClearLegacyArmy(GameSavedEvent e)
|
||||||
|
{
|
||||||
|
EventBus.Unsubscribe<GameSavedEvent>(ClearLegacyArmy);
|
||||||
|
var data = GameProgress.Instance.Data;
|
||||||
|
data.armyInModule = true;
|
||||||
|
System.Array.Clear(data.troops, 0, data.troops.Length);
|
||||||
|
data.sashaMarchUnits.Clear();
|
||||||
|
GameProgress.Instance.MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void OnMarchStarted(MarchStartedEvent e)
|
||||||
|
{
|
||||||
|
var data = GameProgress.Instance.Data;
|
||||||
|
data.marchesSent++;
|
||||||
|
data.dailyMarches++;
|
||||||
|
GameProgress.Instance.MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void OnMarchReturned(MarchReturnedEvent e)
|
||||||
|
{
|
||||||
|
if (!e.Victory) return;
|
||||||
|
GameProgress.Instance.Data.worldWins++;
|
||||||
|
GameProgress.Instance.MarkChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2afadf4e4024d5c48a2c26eddb75cbb1
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class CameraController : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("Настройки перемещения")]
|
||||||
|
public float moveSpeed = 10f;
|
||||||
|
|
||||||
|
[Header("Настройки зума")]
|
||||||
|
public float zoomSpeed = 2f; // скорость изменения размера
|
||||||
|
public float minOrthoSize = 2f; // минимальный размер (максимальное приближение)
|
||||||
|
public float maxOrthoSize = 50f; // максимальный размер (максимальное удаление)
|
||||||
|
|
||||||
|
private Vector3 _lastMousePosition;
|
||||||
|
private bool _isDragging = false;
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
// --- Перемещение по зажатой левой кнопке мыши ---
|
||||||
|
if (Input.GetMouseButtonDown(0) && !UIBlocker.IsPointerOverUI()) // не тащим камеру, когда листаем панель
|
||||||
|
{
|
||||||
|
_lastMousePosition = Input.mousePosition;
|
||||||
|
_isDragging = true;
|
||||||
|
}
|
||||||
|
else if (Input.GetMouseButtonUp(0))
|
||||||
|
{
|
||||||
|
_isDragging = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_isDragging)
|
||||||
|
{
|
||||||
|
Vector3 currentMousePosition = Input.mousePosition;
|
||||||
|
Vector3 delta = currentMousePosition - _lastMousePosition;
|
||||||
|
|
||||||
|
// Двигаем камеру (инвертируем Y, потому что экранные координаты вверх, а мир вниз)
|
||||||
|
transform.position += new Vector3(-delta.x, delta.y, 0) * moveSpeed * Time.deltaTime;
|
||||||
|
|
||||||
|
_lastMousePosition = currentMousePosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Зум по колёсику мыши ---
|
||||||
|
float scroll = Input.GetAxis("Mouse ScrollWheel");
|
||||||
|
if (scroll != 0f && !UIBlocker.IsPointerOverUI())
|
||||||
|
{
|
||||||
|
Camera cam = GetComponent<Camera>();
|
||||||
|
float targetSize = cam.orthographicSize - scroll * zoomSpeed;
|
||||||
|
|
||||||
|
// Ограничиваем зум диапазоном
|
||||||
|
targetSize = Mathf.Clamp(targetSize, minOrthoSize, maxOrthoSize);
|
||||||
|
cam.orthographicSize = targetSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 772c25e1ad11ec84191ddd62a2559d77
|
||||||
@@ -0,0 +1,161 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// КАМЕРА ГОРОДА (как в мобильных стратегиях):
|
||||||
|
// - перетаскивание одним пальцем / левой кнопкой мыши -- двигает карту
|
||||||
|
// - щипок двумя пальцами / колёсико мыши -- приближение и отдаление (к точке под пальцем/курсором)
|
||||||
|
// - камера не уезжает за границы карты (bounds)
|
||||||
|
// - над интерфейсом (HUD, панели) ничего не делает
|
||||||
|
// - без поворотов и наклонов: изометрия уже нарисована в спрайтах
|
||||||
|
// Вешается на Main Camera вместо CameraController / CameraZoom / FlyCamera.
|
||||||
|
[RequireComponent(typeof(Camera))]
|
||||||
|
public class CityCamera : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("Зум (orthographic size)")]
|
||||||
|
public float minZoom = 3f;
|
||||||
|
public float maxZoom = 14f;
|
||||||
|
public float wheelZoomSpeed = 2.5f;
|
||||||
|
public float zoomSmooth = 12f;
|
||||||
|
|
||||||
|
[Header("Границы карты (мировые координаты). Пусто = посчитать по объектам сцены")]
|
||||||
|
public bool autoBounds = true;
|
||||||
|
public Rect bounds = new Rect(-25, -15, 50, 30);
|
||||||
|
[Tooltip("Запас за краем карты, чтобы край не прилипал к экрану")]
|
||||||
|
public float boundsPadding = 4f;
|
||||||
|
|
||||||
|
[Header("Инерция после свайпа")]
|
||||||
|
public float inertiaDamping = 6f;
|
||||||
|
|
||||||
|
Camera cam;
|
||||||
|
float targetZoom;
|
||||||
|
Vector3 lastWorld;
|
||||||
|
bool dragging;
|
||||||
|
Vector3 velocity;
|
||||||
|
float lastPinchDist;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
cam = GetComponent<Camera>();
|
||||||
|
cam.orthographic = true;
|
||||||
|
transform.rotation = Quaternion.identity;
|
||||||
|
transform.localScale = Vector3.one; // старый CameraZoom масштабировал камеру -- сбрасываем
|
||||||
|
targetZoom = Mathf.Clamp(cam.orthographicSize, minZoom, maxZoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (autoBounds) CalculateBounds();
|
||||||
|
ClampPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Границы по всем спрайтам и тайлмапам сцены (кроме UI)
|
||||||
|
public void CalculateBounds()
|
||||||
|
{
|
||||||
|
bool any = false;
|
||||||
|
Bounds b = new Bounds();
|
||||||
|
foreach (var r in FindObjectsByType<Renderer>(FindObjectsSortMode.None))
|
||||||
|
{
|
||||||
|
string tn = r.GetType().Name;
|
||||||
|
if (tn != "SpriteRenderer" && tn != "TilemapRenderer") continue; // только карта и здания
|
||||||
|
if (r.gameObject.layer == 5) continue; // UI
|
||||||
|
if (r.GetComponentInParent<Canvas>() != null) continue; // всё, что внутри интерфейса
|
||||||
|
if (!any) { b = r.bounds; any = true; } else b.Encapsulate(r.bounds);
|
||||||
|
}
|
||||||
|
if (any) bounds = new Rect(b.min.x, b.min.y, b.size.x, b.size.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
bool overUI = UIBlocker.IsPointerOverUI();
|
||||||
|
|
||||||
|
if (Input.touchCount >= 2) HandlePinch();
|
||||||
|
else HandleDrag(overUI);
|
||||||
|
|
||||||
|
// колёсико мыши -- зум к курсору
|
||||||
|
float wheel = Input.GetAxis("Mouse ScrollWheel");
|
||||||
|
if (Mathf.Abs(wheel) > 0.001f && !overUI)
|
||||||
|
ZoomTowards(Input.mousePosition, targetZoom - wheel * wheelZoomSpeed * 4f);
|
||||||
|
|
||||||
|
// плавный зум
|
||||||
|
if (Mathf.Abs(cam.orthographicSize - targetZoom) > 0.001f)
|
||||||
|
{
|
||||||
|
Vector3 before = cam.ScreenToWorldPoint(zoomAnchor);
|
||||||
|
cam.orthographicSize = Mathf.Lerp(cam.orthographicSize, targetZoom, Time.unscaledDeltaTime * zoomSmooth);
|
||||||
|
Vector3 after = cam.ScreenToWorldPoint(zoomAnchor);
|
||||||
|
transform.position += before - after; // точка под пальцем остаётся на месте
|
||||||
|
}
|
||||||
|
|
||||||
|
// инерция
|
||||||
|
if (!dragging && velocity.sqrMagnitude > 0.0001f)
|
||||||
|
{
|
||||||
|
transform.position += velocity * Time.unscaledDeltaTime;
|
||||||
|
velocity = Vector3.Lerp(velocity, Vector3.zero, Time.unscaledDeltaTime * inertiaDamping);
|
||||||
|
}
|
||||||
|
|
||||||
|
ClampPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 zoomAnchor;
|
||||||
|
|
||||||
|
void ZoomTowards(Vector3 screenPoint, float zoom)
|
||||||
|
{
|
||||||
|
zoomAnchor = screenPoint;
|
||||||
|
targetZoom = Mathf.Clamp(zoom, minZoom, maxZoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleDrag(bool overUI)
|
||||||
|
{
|
||||||
|
if (Input.GetMouseButtonDown(0))
|
||||||
|
{
|
||||||
|
dragging = !overUI; // начали тащить на интерфейсе -- карту не двигаем
|
||||||
|
velocity = Vector3.zero;
|
||||||
|
lastWorld = cam.ScreenToWorldPoint(Input.mousePosition);
|
||||||
|
}
|
||||||
|
if (Input.GetMouseButtonUp(0)) dragging = false;
|
||||||
|
if (!dragging || !Input.GetMouseButton(0)) return;
|
||||||
|
|
||||||
|
Vector3 now = cam.ScreenToWorldPoint(Input.mousePosition);
|
||||||
|
Vector3 delta = lastWorld - now;
|
||||||
|
delta.z = 0;
|
||||||
|
transform.position += delta;
|
||||||
|
if (Time.unscaledDeltaTime > 0) velocity = Vector3.Lerp(velocity, delta / Time.unscaledDeltaTime, 0.5f);
|
||||||
|
lastWorld = cam.ScreenToWorldPoint(Input.mousePosition); // после сдвига камеры
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandlePinch()
|
||||||
|
{
|
||||||
|
dragging = false;
|
||||||
|
velocity = Vector3.zero;
|
||||||
|
Touch a = Input.GetTouch(0), b = Input.GetTouch(1);
|
||||||
|
float dist = Vector2.Distance(a.position, b.position);
|
||||||
|
if (a.phase == TouchPhase.Began || b.phase == TouchPhase.Began || lastPinchDist <= 0f)
|
||||||
|
{
|
||||||
|
lastPinchDist = dist;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (dist > 1f)
|
||||||
|
{
|
||||||
|
float ratio = lastPinchDist / dist;
|
||||||
|
ZoomTowards((a.position + b.position) * 0.5f, targetZoom * ratio);
|
||||||
|
}
|
||||||
|
lastPinchDist = dist;
|
||||||
|
if (a.phase == TouchPhase.Ended || b.phase == TouchPhase.Ended) lastPinchDist = 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClampPosition()
|
||||||
|
{
|
||||||
|
float halfH = cam.orthographicSize;
|
||||||
|
float halfW = halfH * cam.aspect;
|
||||||
|
Rect r = new Rect(bounds.xMin - boundsPadding, bounds.yMin - boundsPadding,
|
||||||
|
bounds.width + boundsPadding * 2, bounds.height + boundsPadding * 2);
|
||||||
|
Vector3 p = transform.position;
|
||||||
|
p.x = r.width > halfW * 2 ? Mathf.Clamp(p.x, r.xMin + halfW, r.xMax - halfW) : r.center.x;
|
||||||
|
p.y = r.height > halfH * 2 ? Mathf.Clamp(p.y, r.yMin + halfH, r.yMax - halfH) : r.center.y;
|
||||||
|
transform.position = p;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDrawGizmosSelected()
|
||||||
|
{
|
||||||
|
Gizmos.color = Color.cyan;
|
||||||
|
Gizmos.DrawWireCube(bounds.center, bounds.size);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d9530f2e8714d3746b25452c7fd56cd3
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
// Отвязывает HUD от камеры и ставит одну нормальную камеру.
|
||||||
|
//
|
||||||
|
// Было: HUD_Canvas в режиме World Space был дочерним объектом камеры, а CameraZoom масштабировал
|
||||||
|
// саму камеру, чтобы HUD не уменьшался при зуме. Поэтому HUD ехал, дрожал и масштабировался криво.
|
||||||
|
// Стало: HUD_Canvas -- Screen Space Overlay (всегда приклеен к экрану, камера на него не влияет),
|
||||||
|
// на камере -- только CityCamera (перетаскивание, щипок, колёсико, границы карты).
|
||||||
|
//
|
||||||
|
// Работает в двух местах:
|
||||||
|
// - при запуске игры (автоматически), если сцену ещё не исправили в редакторе;
|
||||||
|
// - Tools -> Fix Camera & HUD (или Build HUD Panels) -- исправляет и сохраняет сцену навсегда.
|
||||||
|
public static class HUDCameraSetup
|
||||||
|
{
|
||||||
|
// ОТКЛЮЧЕНО по просьбе команды: камера и HUD вернулись к прежней схеме (Tools -> Restore Old Camera & HUD).
|
||||||
|
// Автоисправление при запуске больше не выполняется.
|
||||||
|
static void AutoFix()
|
||||||
|
{
|
||||||
|
// и при каждой следующей загрузке города (возврат с карты мира)
|
||||||
|
UnityEngine.SceneManagement.SceneManager.sceneLoaded += (s, m) => Apply(false);
|
||||||
|
|
||||||
|
int changes = Apply(false);
|
||||||
|
if (changes > 0)
|
||||||
|
Debug.Log("[КАМЕРА/HUD] Исправлено при запуске: " + changes +
|
||||||
|
". Чтобы сохранить в сцене навсегда -- Tools -> Fix Camera & HUD");
|
||||||
|
}
|
||||||
|
|
||||||
|
// editMode = true -- вызывается из редактора: лишние компоненты удаляются, а не выключаются
|
||||||
|
public static int Apply(bool editMode)
|
||||||
|
{
|
||||||
|
int changes = 0;
|
||||||
|
|
||||||
|
// ---------- HUD ----------
|
||||||
|
var hudGO = GameObject.Find("HUD_Canvas");
|
||||||
|
if (hudGO != null)
|
||||||
|
{
|
||||||
|
var canvas = hudGO.GetComponent<Canvas>();
|
||||||
|
var rt = (RectTransform)hudGO.transform;
|
||||||
|
if (canvas != null && canvas.renderMode != RenderMode.ScreenSpaceOverlay)
|
||||||
|
{
|
||||||
|
Vector2 designSize = rt.sizeDelta; // размер, под который дизайнер расставил HUD
|
||||||
|
if (designSize.x < 100 || designSize.y < 100) designSize = new Vector2(1080, 1920);
|
||||||
|
|
||||||
|
if (hudGO.transform.parent != null) hudGO.transform.SetParent(null, false);
|
||||||
|
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||||||
|
canvas.sortingOrder = 100;
|
||||||
|
rt.localScale = Vector3.one;
|
||||||
|
rt.localRotation = Quaternion.identity;
|
||||||
|
|
||||||
|
var scaler = hudGO.GetComponent<CanvasScaler>();
|
||||||
|
if (scaler == null) scaler = hudGO.AddComponent<CanvasScaler>();
|
||||||
|
scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
|
||||||
|
scaler.referenceResolution = designSize; // HUD выглядит так же, как его собрал дизайнер
|
||||||
|
scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight;
|
||||||
|
scaler.matchWidthOrHeight = 1f; // как было в мире: высота HUD = высота экрана
|
||||||
|
changes++;
|
||||||
|
}
|
||||||
|
// высота HUD = высота экрана (так HUD выглядел, пока был привязан к камере)
|
||||||
|
var sc = hudGO.GetComponent<CanvasScaler>();
|
||||||
|
if (sc != null && canvas != null && canvas.renderMode == RenderMode.ScreenSpaceOverlay && sc.matchWidthOrHeight != 1f)
|
||||||
|
{ sc.matchWidthOrHeight = 1f; changes++; }
|
||||||
|
changes += ConvertSpritesToImages(hudGO, editMode);
|
||||||
|
changes += RemoveOrDisable(hudGO, "HUDWorldSpaceSync", editMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- КАМЕРА ----------
|
||||||
|
var cam = Camera.main;
|
||||||
|
if (cam != null)
|
||||||
|
{
|
||||||
|
changes += RemoveOrDisable(cam.gameObject, "CameraZoom", editMode);
|
||||||
|
changes += RemoveOrDisable(cam.gameObject, "CameraController", editMode);
|
||||||
|
changes += RemoveOrDisable(cam.gameObject, "FlyCamera", editMode);
|
||||||
|
if (cam.transform.localScale != Vector3.one) { cam.transform.localScale = Vector3.one; changes++; }
|
||||||
|
if (cam.transform.rotation != Quaternion.identity) { cam.transform.rotation = Quaternion.identity; changes++; }
|
||||||
|
if (cam.GetComponent<CityCamera>() == null) { cam.gameObject.AddComponent<CityCamera>(); changes++; }
|
||||||
|
}
|
||||||
|
return changes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// В экранном Canvas обычные SpriteRenderer не рисуются как часть интерфейса -- они улетают в мир
|
||||||
|
// огромными картинками (отсюда белая "клетка" на весь экран). Переделываем их в UI Image того же размера.
|
||||||
|
static int ConvertSpritesToImages(GameObject hud, bool editMode)
|
||||||
|
{
|
||||||
|
int n = 0;
|
||||||
|
foreach (var sr in hud.GetComponentsInChildren<SpriteRenderer>(true))
|
||||||
|
{
|
||||||
|
if (sr.sprite == null) { sr.enabled = false; continue; }
|
||||||
|
var t = sr.transform;
|
||||||
|
var parent = t.parent as RectTransform;
|
||||||
|
if (parent == null) { sr.enabled = false; continue; }
|
||||||
|
|
||||||
|
var go = new GameObject(t.name + "_UI", typeof(RectTransform), typeof(Image));
|
||||||
|
var rt = (RectTransform)go.transform;
|
||||||
|
rt.SetParent(parent, false);
|
||||||
|
rt.SetSiblingIndex(t.GetSiblingIndex());
|
||||||
|
rt.anchorMin = rt.anchorMax = parent.pivot; // localPosition считается от pivot родителя
|
||||||
|
rt.pivot = new Vector2(0.5f, 0.5f);
|
||||||
|
Vector2 size = Vector2.Scale(sr.sprite.bounds.size, new Vector2(Mathf.Abs(t.localScale.x), Mathf.Abs(t.localScale.y)));
|
||||||
|
rt.sizeDelta = size;
|
||||||
|
rt.localPosition = t.localPosition + (Vector3)Vector2.Scale(sr.sprite.bounds.center, t.localScale);
|
||||||
|
rt.localRotation = t.localRotation;
|
||||||
|
var img = go.GetComponent<Image>();
|
||||||
|
img.sprite = sr.sprite;
|
||||||
|
img.color = sr.color;
|
||||||
|
img.raycastTarget = false;
|
||||||
|
img.preserveAspect = false;
|
||||||
|
|
||||||
|
if (editMode) Object.DestroyImmediate(t.gameObject);
|
||||||
|
else t.gameObject.SetActive(false);
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Компоненты ищем по имени класса: часть из них (FlyCamera, HUDWorldSpaceSync) в проекте уже нет
|
||||||
|
static int RemoveOrDisable(GameObject go, string typeName, bool editMode)
|
||||||
|
{
|
||||||
|
int n = 0;
|
||||||
|
foreach (var mb in go.GetComponents<MonoBehaviour>())
|
||||||
|
{
|
||||||
|
if (mb == null || mb.GetType().Name != typeName) continue;
|
||||||
|
if (editMode) Object.DestroyImmediate(mb);
|
||||||
|
else if (mb.enabled) mb.enabled = false;
|
||||||
|
else continue;
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 256165dd8ffe7dc4490c9e5b9796b782
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3baf0cc9c3e937b43b5085d21429d613
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using TMPro;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
// Заполняет меню стройки кнопками для каждого доступного здания.
|
||||||
|
// Вешается на пустой объект-контейнер меню (например BuildMenuPanel).
|
||||||
|
|
||||||
|
|
||||||
|
public class BuildMenuUi : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("Ссылки")]
|
||||||
|
public Transform buttonContainer; //Куда савить снопки
|
||||||
|
public GameObject buildingButtonPrefab; //Преваб одной кнопки здания
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
RefreshMenu();
|
||||||
|
}
|
||||||
|
void OnEnable()
|
||||||
|
{
|
||||||
|
if (BuildManager.Instance == null) return;
|
||||||
|
RefreshMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RefreshMenu()
|
||||||
|
{
|
||||||
|
//Чистка старых кнопок перед сборкой списка
|
||||||
|
foreach (Transform child in buttonContainer)
|
||||||
|
{
|
||||||
|
Destroy(child.gameObject);
|
||||||
|
}
|
||||||
|
List<BuildingData> available = BuildManager.Instance.GetAvailableBuildings();
|
||||||
|
foreach (var building in available)
|
||||||
|
{
|
||||||
|
GameObject btnGO = Instantiate(buildingButtonPrefab, buttonContainer);
|
||||||
|
|
||||||
|
Transform iconT = btnGO.transform.Find("Icon");
|
||||||
|
Transform nameT = btnGO.transform.Find("NameText");
|
||||||
|
Transform costT = btnGO.transform.Find("CostText");
|
||||||
|
|
||||||
|
if (iconT != null) iconT.GetComponent<Image>().sprite = building.icon;
|
||||||
|
if (nameT != null) nameT.GetComponent<TMP_Text>().text = building.buildingName;
|
||||||
|
if (costT != null) costT.GetComponent<TMP_Text>().text = building.GetCostText();
|
||||||
|
Button btn = btnGO.GetComponent<Button>();
|
||||||
|
BuildingData capturedBuilding = building; // важно для замыкания в цикле
|
||||||
|
btn.onClick.AddListener(() =>
|
||||||
|
{
|
||||||
|
BuildManager.Instance.StartPlacing(capturedBuilding);
|
||||||
|
gameObject.SetActive(false); // закрываем меню после выбора, идём размещать здание
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e52ef64e91883de4c94450d91e119b48
|
||||||
@@ -1,49 +1,35 @@
|
|||||||
using System;
|
|
||||||
<<<<<<< HEAD
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
=======
|
|
||||||
using Unity.VisualScripting;
|
|
||||||
using UnityEditor.Build.Player;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.InputSystem.LowLevel;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
>>>>>>> origin/main
|
|
||||||
|
|
||||||
public class BuildingUI : MonoBehaviour
|
public class BuildingUI : MonoBehaviour
|
||||||
{
|
{
|
||||||
[Header("Настройки")]
|
[Header("Настройки")]
|
||||||
|
public ResourceCollector building;
|
||||||
public ResourceCollector building;
|
public TMP_Text stokText;
|
||||||
<<<<<<< HEAD
|
public Slider progressBar;
|
||||||
public TMP_Text stokText;
|
|
||||||
=======
|
|
||||||
public Text stokText;
|
|
||||||
>>>>>>> origin/main
|
|
||||||
public Slider progressBar;
|
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
if (building == null)
|
if (building == null)
|
||||||
{
|
{
|
||||||
Debug.LogError("Ошибка BuildingUI: не назначено здание (Buildint)!");
|
Debug.LogError("Ошибка BuildingUI: не назначено здание (Building)!");
|
||||||
enabled = false;
|
enabled = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UpdateUI();
|
UpdateUI();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
UpdateUI();
|
UpdateUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateUI()
|
void UpdateUI()
|
||||||
{
|
{
|
||||||
if (stokText != null)
|
if (stokText != null)
|
||||||
{
|
{
|
||||||
stokText.text = $"{building.GetCurrentStock():F1} / {building.GetMaxCapacity()}";
|
stokText.text = $"{building.GetCurrentStock():F1} / {building.GetMaxCapacity()}";
|
||||||
|
|
||||||
}
|
}
|
||||||
if (progressBar != null)
|
if (progressBar != null)
|
||||||
{
|
{
|
||||||
@@ -51,5 +37,4 @@ public class BuildingUI : MonoBehaviour
|
|||||||
progressBar.value = Mathf.Clamp01(fill);
|
progressBar.value = Mathf.Clamp01(fill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
@@ -1,160 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
using System.Collections;
|
|
||||||
<<<<<<< HEAD
|
|
||||||
using System;
|
|
||||||
=======
|
|
||||||
>>>>>>> origin/main
|
|
||||||
|
|
||||||
public class ResourceCollector : MonoBehaviour
|
|
||||||
{
|
|
||||||
[Header("Что производит это здание")]
|
|
||||||
public ResourceType resourceType;
|
|
||||||
|
|
||||||
[Tooltip("База награды за клик (используется для расчета множителя уровня)")]
|
|
||||||
public float amountPerClick = 10f;
|
|
||||||
|
|
||||||
[Header("Параметры хранилища")]
|
|
||||||
[Tooltip("Максимальная вместимость")]
|
|
||||||
public float maxCapacity = 100f;
|
|
||||||
|
|
||||||
[Tooltip("Текущий запас (меняется автоматически)")]
|
|
||||||
public float currentStock = 0f;
|
|
||||||
|
|
||||||
[Header("Уровень здания")]
|
|
||||||
public int level = 1;
|
|
||||||
public float perLevelMultiplier = 1.2f;
|
|
||||||
|
|
||||||
private ResourceManager _manager;
|
|
||||||
private bool isRecharging = false;
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
|
||||||
_manager = ResourceManager.Instance;
|
|
||||||
if (_manager == null)
|
|
||||||
{
|
|
||||||
Debug.LogError($"{gameObject.name}: ResourceManager не найден!");
|
|
||||||
enabled = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
currentStock = 0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
// НОВЫЙ МЕТОД: Чтобы UI мог спрашивать: "Сколько там сейчас?"
|
|
||||||
public float GetCurrentStock()
|
|
||||||
{
|
|
||||||
return currentStock;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float GetMaxCapacity()
|
|
||||||
{
|
|
||||||
return maxCapacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnMouseDown()
|
|
||||||
{
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// Если уже идёт восстановление — ничего не делаем
|
|
||||||
if (isRecharging)
|
|
||||||
{
|
|
||||||
Debug.Log($"[КЛИК] {gameObject.name}: уже идёт восстановление, ждём.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Если запас есть — забираем ресурсы
|
|
||||||
if (currentStock > 0)
|
|
||||||
{
|
|
||||||
float finalAmount = amountPerClick * Mathf.Pow(perLevelMultiplier, level - 1);
|
|
||||||
float reward = currentStock; // берём всё, что накопилось
|
|
||||||
|
|
||||||
_manager.AddResource(resourceType, reward);
|
|
||||||
|
|
||||||
currentStock = 0f;
|
|
||||||
Debug.Log($"[СБОР] Получено {reward:F1} {resourceType}. Запас сброшен в 0.");
|
|
||||||
|
|
||||||
// Сразу запускаем восстановление после сбора
|
|
||||||
=======
|
|
||||||
if (currentStock <= 0)
|
|
||||||
{
|
|
||||||
Debug.Log($"[КЛИК] {gameObject.name} пуст. Идет восстановление...");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
float finalAmount = amountPerClick * Mathf.Pow(perLevelMultiplier, level - 1);
|
|
||||||
|
|
||||||
// Отдаем всё, что накопилось
|
|
||||||
float reward = currentStock;
|
|
||||||
|
|
||||||
_manager.AddResource(resourceType, reward);
|
|
||||||
|
|
||||||
// СБРОС В НОЛЬ
|
|
||||||
currentStock = 0f;
|
|
||||||
|
|
||||||
Debug.Log($"[СБОР] Получено {reward:F1} {resourceType}. Запас сброшен в 0.");
|
|
||||||
|
|
||||||
>>>>>>> origin/main
|
|
||||||
if (!isRecharging)
|
|
||||||
{
|
|
||||||
StartCoroutine(RechargeRoutine());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
<<<<<<< HEAD
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Если запаса нет и восстановление ещё не запущено — запускаем его
|
|
||||||
Debug.Log($"[КЛИК] {gameObject.name} пуст, запускаем восстановление.");
|
|
||||||
if (!isRecharging)
|
|
||||||
{
|
|
||||||
StartCoroutine(RechargeRoutine());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
System.Collections.IEnumerator RechargeRoutine()
|
|
||||||
{
|
|
||||||
if (isRecharging) yield break;
|
|
||||||
isRecharging = true;
|
|
||||||
|
|
||||||
float rechargeRate = 5f; // единиц в секунду
|
|
||||||
float timeToFill = (maxCapacity - currentStock) / rechargeRate;
|
|
||||||
|
|
||||||
float elapsed = 0f;
|
|
||||||
while (elapsed < timeToFill)
|
|
||||||
{
|
|
||||||
elapsed += Time.deltaTime;
|
|
||||||
float progress = Mathf.Clamp01(elapsed / timeToFill);
|
|
||||||
currentStock = Mathf.Lerp(currentStock, maxCapacity, progress);
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
currentStock = maxCapacity;
|
|
||||||
isRecharging = false;
|
|
||||||
Debug.Log($"[ГОТОВО] {gameObject.name} полностью заполнен!");
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
|
|
||||||
System.Collections.IEnumerator RechargeRoutine()
|
|
||||||
{
|
|
||||||
if (isRecharging) yield break;
|
|
||||||
isRecharging = true;
|
|
||||||
|
|
||||||
float rechargeRate = 5f; // Единиц в секунду
|
|
||||||
|
|
||||||
while (currentStock < maxCapacity)
|
|
||||||
{
|
|
||||||
currentStock += rechargeRate * Time.deltaTime;
|
|
||||||
if (currentStock > maxCapacity) currentStock = maxCapacity;
|
|
||||||
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
isRecharging = false;
|
|
||||||
Debug.Log($"[ГОТОВО] {gameObject.name} полностью заполнен!");
|
|
||||||
}
|
|
||||||
>>>>>>> origin/main
|
|
||||||
|
|
||||||
public void Upgrade()
|
|
||||||
{
|
|
||||||
level++;
|
|
||||||
Debug.Log($"[АПГРЕЙД] Уровень {level}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
// Центральное хранилище всех ресурсов игрока.
|
|
||||||
// Один объект на сцену (Singleton) -- любой скрипт обращается через ResourceManager.Instance
|
|
||||||
|
|
||||||
public enum ResourceType
|
|
||||||
{
|
|
||||||
Power, // "сила" -- как в референсе HUD
|
|
||||||
Food,
|
|
||||||
Wood,
|
|
||||||
Stone,
|
|
||||||
Iron,
|
|
||||||
Gold,
|
|
||||||
Gems
|
|
||||||
}
|
|
||||||
|
|
||||||
public class ResourceManager : MonoBehaviour
|
|
||||||
{
|
|
||||||
public static ResourceManager Instance { get; private set; }
|
|
||||||
|
|
||||||
// Событие: вызывается каждый раз, когда любой ресурс меняется.
|
|
||||||
// UI подписывается на него, чтобы обновлять текст автоматически, без Update() каждый кадр.
|
|
||||||
public event Action<ResourceType, float> OnResourceChanged;
|
|
||||||
|
|
||||||
[Header("Стартовые значения (для теста/баланса)")]
|
|
||||||
public float startWood = 0f;
|
|
||||||
public float startStone = 0f;
|
|
||||||
public float startIron = 0f;
|
|
||||||
public float startFood = 0f;
|
|
||||||
public float startGold = 0f;
|
|
||||||
public float startGems = 0f;
|
|
||||||
public float startPower = 0f;
|
|
||||||
|
|
||||||
private Dictionary<ResourceType, float> resources = new Dictionary<ResourceType, float>();
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
|
||||||
// Классический паттерн Singleton: если уже есть экземпляр -- уничтожаем дубликат
|
|
||||||
if (Instance != null && Instance != this)
|
|
||||||
{
|
|
||||||
Destroy(gameObject);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Instance = this;
|
|
||||||
DontDestroyOnLoad(gameObject); // менеджер ресурсов должен жить между сценами (меню -> игра)
|
|
||||||
|
|
||||||
resources[ResourceType.Wood] = startWood;
|
|
||||||
resources[ResourceType.Stone] = startStone;
|
|
||||||
resources[ResourceType.Iron] = startIron;
|
|
||||||
resources[ResourceType.Food] = startFood;
|
|
||||||
resources[ResourceType.Gold] = startGold;
|
|
||||||
resources[ResourceType.Gems] = startGems;
|
|
||||||
resources[ResourceType.Power] = startPower;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Добавить ресурс (можно и отрицательное число -- для трат)
|
|
||||||
public void AddResource(ResourceType type, float amount)
|
|
||||||
{
|
|
||||||
if (!resources.ContainsKey(type))
|
|
||||||
resources[type] = 0f;
|
|
||||||
|
|
||||||
resources[type] += amount;
|
|
||||||
if (resources[type] < 0f) resources[type] = 0f; // ресурс не уходит в минус
|
|
||||||
|
|
||||||
OnResourceChanged?.Invoke(type, resources[type]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Проверить, хватает ли ресурса (для трат/построек в будущем)
|
|
||||||
public bool HasEnough(ResourceType type, float amount)
|
|
||||||
{
|
|
||||||
return GetResource(type) >= amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Попробовать потратить -- вернёт false, если не хватило (и ничего не спишет)
|
|
||||||
public bool TrySpend(ResourceType type, float amount)
|
|
||||||
{
|
|
||||||
if (!HasEnough(type, amount)) return false;
|
|
||||||
AddResource(type, -amount);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float GetResource(ResourceType type)
|
|
||||||
{
|
|
||||||
return resources.TryGetValue(type, out float value) ? value : 0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a1ddaca768e77fb4eb13bdb65900c14c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f4d34c90fa3d07d4c8f7b6cd6dcc3864
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// КАЗАРМЫ -- здание для найма войск.
|
||||||
|
// - Без казарм нанимать войска нельзя.
|
||||||
|
// - Каждые казармы дают +1 место в очереди обучения (1 казармы = 3 места, максимум 5).
|
||||||
|
// - Нажатие на казармы открывает панель "Войска" (найм).
|
||||||
|
// - Над зданием подпись: что сейчас обучается и сколько осталось.
|
||||||
|
// Вешается на префаб Barracks (его создаёт Tools -> Build HUD Panels).
|
||||||
|
public class Barracks : MonoBehaviour
|
||||||
|
{
|
||||||
|
public static readonly List<Barracks> All = new List<Barracks>();
|
||||||
|
public static int Count { get { return All.Count; } }
|
||||||
|
|
||||||
|
// Размер очереди обучения в зависимости от числа казарм
|
||||||
|
public static int QueueSize { get { return Count == 0 ? 0 : Mathf.Min(5, 2 + Count); } }
|
||||||
|
|
||||||
|
TextMeshPro label;
|
||||||
|
float next;
|
||||||
|
|
||||||
|
void OnEnable() { if (!All.Contains(this)) All.Add(this); }
|
||||||
|
void OnDisable() { All.Remove(this); }
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
// подпись над зданием (обычный 3D-текст, не UI)
|
||||||
|
var go = new GameObject("BarracksLabel");
|
||||||
|
go.transform.SetParent(transform, false);
|
||||||
|
var sr = GetComponent<SpriteRenderer>();
|
||||||
|
float top = sr != null && sr.sprite != null ? sr.sprite.bounds.max.y : 1f;
|
||||||
|
go.transform.localPosition = new Vector3(0, top + 0.15f, 0);
|
||||||
|
label = go.AddComponent<TextMeshPro>();
|
||||||
|
label.fontSize = 3f;
|
||||||
|
label.alignment = TextAlignmentOptions.Center;
|
||||||
|
label.rectTransform.sizeDelta = new Vector2(6f, 1.2f);
|
||||||
|
label.color = Color.white;
|
||||||
|
label.outlineWidth = 0.2f;
|
||||||
|
label.outlineColor = Color.black;
|
||||||
|
var r = label.GetComponent<MeshRenderer>();
|
||||||
|
if (r != null) r.sortingOrder = (sr != null ? sr.sortingOrder : 0) + 10;
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (Time.unscaledTime < next) return;
|
||||||
|
next = Time.unscaledTime + 0.5f;
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Refresh()
|
||||||
|
{
|
||||||
|
if (label == null) return;
|
||||||
|
var d = GameProgress.Instance.Data;
|
||||||
|
if (d.training.Count == 0)
|
||||||
|
{
|
||||||
|
label.text = "Казармы\n<size=70%>нажмите, чтобы нанять</size>";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var o = d.training[0];
|
||||||
|
label.text = "Казармы\n<size=70%>" + GameData.Troops[o.troopIndex].name + " ×" + o.count + " " +
|
||||||
|
GameData.FormatTime(GameProgress.Instance.TrainingSecondsLeft(o)) +
|
||||||
|
(d.training.Count > 1 ? " (+" + (d.training.Count - 1) + ")" : "") + "</size>";
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnMouseDown()
|
||||||
|
{
|
||||||
|
if (UIBlocker.IsPointerOverUI()) return;
|
||||||
|
if (BuildModeController.Instance != null && BuildModeController.Instance.IsActive) return;
|
||||||
|
if (UIPanelManager.Instance != null) UIPanelManager.Instance.Open("Troops");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 96f3807928801df4a840181e38da1317
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// Добавляет "Казармы" в список стройки САМ при запуске сцены -- даже если никто не запускал
|
||||||
|
// Tools -> Build HUD Panels. Если в BuildManager уже есть здание "Казармы" (из Data_Barracks.asset),
|
||||||
|
// ничего не делает.
|
||||||
|
//
|
||||||
|
// Срабатывает после Awake всех объектов, но ДО Start -- то есть раньше, чем GameBootstrap загрузит
|
||||||
|
// сохранение. Поэтому построенные казармы корректно восстанавливаются из save.json.
|
||||||
|
public static class BarracksBootstrap
|
||||||
|
{
|
||||||
|
public const string BarracksName = "Казармы";
|
||||||
|
static GameObject runtimeTemplate;
|
||||||
|
|
||||||
|
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
|
||||||
|
static void Init()
|
||||||
|
{
|
||||||
|
Ensure();
|
||||||
|
// при каждом новом входе в город (например, возврат с карты мира) -- снова добавить в новый BuildManager
|
||||||
|
UnityEngine.SceneManagement.SceneManager.sceneLoaded += (s, m) => Ensure();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Ensure()
|
||||||
|
{
|
||||||
|
var bm = BuildManager.Instance != null ? BuildManager.Instance : Object.FindAnyObjectByType<BuildManager>();
|
||||||
|
if (bm == null || bm.allBuildings == null) return;
|
||||||
|
|
||||||
|
BuildingData template = null;
|
||||||
|
foreach (var b in bm.allBuildings)
|
||||||
|
{
|
||||||
|
if (b == null) continue;
|
||||||
|
if (b.buildingName == BarracksName) return; // уже есть
|
||||||
|
if (template == null && b.prefab != null) template = b;
|
||||||
|
}
|
||||||
|
if (template == null) { Debug.LogWarning("[КАЗАРМЫ] Нет ни одного здания-шаблона в BuildManager"); return; }
|
||||||
|
|
||||||
|
// Префаб-шаблон в памяти: копия обычного здания без сбора ресурсов, с компонентом Barracks
|
||||||
|
if (runtimeTemplate == null)
|
||||||
|
{
|
||||||
|
runtimeTemplate = Object.Instantiate(template.prefab);
|
||||||
|
runtimeTemplate.name = "Barracks";
|
||||||
|
runtimeTemplate.SetActive(false);
|
||||||
|
Object.DontDestroyOnLoad(runtimeTemplate);
|
||||||
|
foreach (var c in runtimeTemplate.GetComponents<ResourceCollector>()) Object.DestroyImmediate(c);
|
||||||
|
foreach (var c in runtimeTemplate.GetComponents<ResourceProducer>()) Object.DestroyImmediate(c);
|
||||||
|
foreach (var c in runtimeTemplate.GetComponents<BuildingUI>()) Object.DestroyImmediate(c);
|
||||||
|
for (int i = runtimeTemplate.transform.childCount - 1; i >= 0; i--)
|
||||||
|
Object.DestroyImmediate(runtimeTemplate.transform.GetChild(i).gameObject); // полоска запаса ресурса
|
||||||
|
var sr = runtimeTemplate.GetComponent<SpriteRenderer>();
|
||||||
|
if (sr != null) sr.color = new Color(1f, 0.55f, 0.55f); // пока нет арта -- отличаем цветом
|
||||||
|
runtimeTemplate.AddComponent<Barracks>();
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = ScriptableObject.CreateInstance<BuildingData>();
|
||||||
|
data.name = "Data_Barracks_Runtime";
|
||||||
|
data.buildingName = BarracksName;
|
||||||
|
data.icon = template.icon;
|
||||||
|
data.prefab = runtimeTemplate;
|
||||||
|
data.requiredTownHallLevel = 1;
|
||||||
|
data.cost = new[]
|
||||||
|
{
|
||||||
|
new ResourceCost { type = ResourceType.Wood, amount = 300 },
|
||||||
|
new ResourceCost { type = ResourceType.Stone, amount = 200 },
|
||||||
|
};
|
||||||
|
bm.allBuildings.Add(data);
|
||||||
|
Debug.Log("[КАЗАРМЫ] Добавлены в список стройки");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 27c12847dd0a97744aab16c30fab3f66
|
||||||
@@ -0,0 +1,234 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// НОВАЯ СХЕМА СТРОЙКИ (как в Rise of Kingdoms):
|
||||||
|
// 1. Кнопка "СТРОЙКА" включает режим строительства -- появляются свободные участки и подсказка сверху.
|
||||||
|
// 2. Тап по свободному участку -> окно со зданиями (цена, что доступно по уровню Ратуши).
|
||||||
|
// 3. "Построить" -> здание встаёт на участок. Режим остаётся включённым, можно строить дальше.
|
||||||
|
// 4. Кнопка "ВЫЙТИ" (та же кнопка или в подсказке) -- выключает режим, участки снова прячутся.
|
||||||
|
// Вне режима пустые участки не видны и не мешают, при запуске игры ничего не открывается.
|
||||||
|
//
|
||||||
|
// Вешается билдером (Tools -> Build HUD Panels) на HUD_Canvas, кнопка Nav_Build вызывает ToggleMode().
|
||||||
|
public class BuildModeController : MonoBehaviour
|
||||||
|
{
|
||||||
|
public static BuildModeController Instance { get; private set; }
|
||||||
|
|
||||||
|
[Tooltip("Кнопка HUD, которая включает/выключает режим (надпись меняется сама)")]
|
||||||
|
public Button modeButton;
|
||||||
|
[Tooltip("Старое меню стройки -- прячем, оно больше не используется")]
|
||||||
|
public GameObject legacyBuildMenu;
|
||||||
|
|
||||||
|
public bool IsActive { get; private set; }
|
||||||
|
|
||||||
|
GameObject banner;
|
||||||
|
GameObject chooser;
|
||||||
|
Vector2 downPos;
|
||||||
|
bool downOverUI;
|
||||||
|
float nextVisualRefresh;
|
||||||
|
|
||||||
|
static readonly Color SlotColor = new Color(0.3f, 1f, 0.4f, 0.75f);
|
||||||
|
|
||||||
|
void Awake() { Instance = this; }
|
||||||
|
void OnDestroy() { if (Instance == this) Instance = null; }
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (legacyBuildMenu != null) legacyBuildMenu.SetActive(false);
|
||||||
|
SetMode(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ToggleMode() { SetMode(!IsActive); }
|
||||||
|
|
||||||
|
public void SetMode(bool active)
|
||||||
|
{
|
||||||
|
IsActive = active;
|
||||||
|
CloseChooser();
|
||||||
|
ApplySlotVisuals();
|
||||||
|
UpdateButtonLabel();
|
||||||
|
|
||||||
|
if (banner != null) { Destroy(banner); banner = null; }
|
||||||
|
if (active)
|
||||||
|
{
|
||||||
|
if (UIPanelManager.Instance != null) UIPanelManager.Instance.CloseAll();
|
||||||
|
banner = CreateBanner();
|
||||||
|
if (FreeSlots().Count == 0) UIKit.Toast("Свободных участков нет. Улучшайте Ратушу и сносите старое.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (Time.unscaledTime >= nextVisualRefresh)
|
||||||
|
{
|
||||||
|
nextVisualRefresh = Time.unscaledTime + 0.3f;
|
||||||
|
ApplySlotVisuals(); // участки могли освободиться/заняться (снос, загрузка сохранения)
|
||||||
|
}
|
||||||
|
if (!IsActive) return;
|
||||||
|
// открыли любую панель HUD -- выходим из режима стройки
|
||||||
|
if (UIPanelManager.Instance != null && UIPanelManager.Instance.CurrentId != "") { SetMode(false); return; }
|
||||||
|
if (chooser != null) return;
|
||||||
|
|
||||||
|
// Тап = нажали и отпустили почти на том же месте (чтобы перетаскивание камеры не считалось тапом)
|
||||||
|
if (Input.GetMouseButtonDown(0))
|
||||||
|
{
|
||||||
|
downPos = Input.mousePosition;
|
||||||
|
downOverUI = UIBlocker.IsPointerOverUI();
|
||||||
|
}
|
||||||
|
if (Input.GetMouseButtonUp(0))
|
||||||
|
{
|
||||||
|
Vector2 up = Input.mousePosition;
|
||||||
|
if (downOverUI || UIBlocker.IsPointerOverUI() || (up - downPos).magnitude > 25f) return;
|
||||||
|
HandleTap(up);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleTap(Vector2 screenPos)
|
||||||
|
{
|
||||||
|
if (BuildManager.Instance == null) return;
|
||||||
|
var slot = BuildManager.Instance.SlotAtScreen(screenPos);
|
||||||
|
if (slot == null) return;
|
||||||
|
if (slot.isOccupied)
|
||||||
|
{
|
||||||
|
var id = slot.occupyingBuilding != null ? slot.occupyingBuilding.GetComponent<PlacedBuildingId>() : null;
|
||||||
|
UIKit.Toast("Участок занят" + (id != null ? ": " + id.buildingName : ""));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
OpenChooser(slot);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- участки ----------------
|
||||||
|
|
||||||
|
List<BuildSlot> FreeSlots()
|
||||||
|
{
|
||||||
|
var list = new List<BuildSlot>();
|
||||||
|
foreach (var s in FindObjectsByType<BuildSlot>(FindObjectsSortMode.None)) if (!s.isOccupied) list.Add(s);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ApplySlotVisuals()
|
||||||
|
{
|
||||||
|
foreach (var s in FindObjectsByType<BuildSlot>(FindObjectsSortMode.None))
|
||||||
|
{
|
||||||
|
var sr = s.GetComponent<SpriteRenderer>();
|
||||||
|
if (sr == null) continue;
|
||||||
|
bool show = IsActive && !s.isOccupied;
|
||||||
|
if (sr.enabled != show) sr.enabled = show;
|
||||||
|
if (show) sr.color = SlotColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- окно выбора здания ----------------
|
||||||
|
|
||||||
|
void OpenChooser(BuildSlot slot)
|
||||||
|
{
|
||||||
|
CloseChooser();
|
||||||
|
var bm = BuildManager.Instance;
|
||||||
|
GameObject root;
|
||||||
|
var card = UIKit.Modal("Что построить?", out root);
|
||||||
|
chooser = root;
|
||||||
|
|
||||||
|
// окно фиксированного размера с прокруткой, чтобы влезало на любом экране
|
||||||
|
var fit = card.GetComponent<ContentSizeFitter>();
|
||||||
|
if (fit != null) DestroyImmediate(fit);
|
||||||
|
card.anchorMin = new Vector2(0.08f, 0.08f); card.anchorMax = new Vector2(0.92f, 0.92f);
|
||||||
|
card.offsetMin = Vector2.zero; card.offsetMax = Vector2.zero;
|
||||||
|
|
||||||
|
int th = TownHall.Instance != null ? TownHall.Instance.currentLevel : 1;
|
||||||
|
UIKit.Text(card, "Участок: " + slot.name + " • Ратуша " + th + " ур.", 24, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
|
||||||
|
var holder = UIKit.Make("ListHolder", card);
|
||||||
|
UIKit.Size(holder, -1, -1).flexibleHeight = 1;
|
||||||
|
ScrollRect scroll;
|
||||||
|
var list = UIKit.ScrollList(holder, out scroll, 10);
|
||||||
|
|
||||||
|
// доступные сверху, закрытые по уровню Ратуши -- ниже
|
||||||
|
var all = new List<BuildingData>(bm.allBuildings);
|
||||||
|
all.RemoveAll(b => b == null);
|
||||||
|
all.Sort((a, b) => a.requiredTownHallLevel.CompareTo(b.requiredTownHallLevel));
|
||||||
|
|
||||||
|
foreach (var data in all)
|
||||||
|
{
|
||||||
|
var d = data;
|
||||||
|
bool locked = d.requiredTownHallLevel > th;
|
||||||
|
bool afford = !locked && d.CanAfford();
|
||||||
|
|
||||||
|
var row = UIKit.Row(list, 120, 14, locked ? UIKit.Theme.CardDark : UIKit.Theme.Card, 10);
|
||||||
|
var icon = UIKit.Box(row, d.icon != null ? Color.white : UIKit.Theme.Gray);
|
||||||
|
if (d.icon != null) { icon.sprite = d.icon; icon.preserveAspect = true; }
|
||||||
|
UIKit.Size(icon, 100, 100);
|
||||||
|
|
||||||
|
var info = UIKit.Card(row, new Color(0, 0, 0, 0), 0, 4);
|
||||||
|
UIKit.Size(info, -1, -1, 1);
|
||||||
|
UIKit.Text(info, d.buildingName, 30, locked ? UIKit.Theme.TextDim : UIKit.Theme.Text).fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(info, locked ? "Откроется на Ратуше " + d.requiredTownHallLevel + " уровня" : CostText(d), 24,
|
||||||
|
locked ? UIKit.Theme.Gold : UIKit.Theme.TextDim);
|
||||||
|
|
||||||
|
string label = locked ? "Закрыто" : (afford ? "Построить" : "Мало ресурсов");
|
||||||
|
var b = UIKit.Button(row, label, afford ? UIKit.Theme.Green : UIKit.Theme.Gray, () =>
|
||||||
|
{
|
||||||
|
if (BuildManager.Instance.BuildOnSlot(d, slot))
|
||||||
|
{
|
||||||
|
UIKit.Toast("Построено: " + d.buildingName);
|
||||||
|
CloseChooser();
|
||||||
|
ApplySlotVisuals();
|
||||||
|
if (FreeSlots().Count == 0) SetMode(false);
|
||||||
|
}
|
||||||
|
else UIKit.Toast(GameProgress.Instance.MissingText(ToRewards(d.cost)));
|
||||||
|
}, 230, 90, 26);
|
||||||
|
b.interactable = !locked;
|
||||||
|
}
|
||||||
|
|
||||||
|
UIKit.Button(card, "Отмена", UIKit.Theme.Gray, CloseChooser, -1, 90, 30);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CloseChooser()
|
||||||
|
{
|
||||||
|
if (chooser != null) Destroy(chooser);
|
||||||
|
chooser = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static RewardItem[] ToRewards(ResourceCost[] cost)
|
||||||
|
{
|
||||||
|
if (cost == null) return new RewardItem[0];
|
||||||
|
var r = new RewardItem[cost.Length];
|
||||||
|
for (int i = 0; i < cost.Length; i++) r[i] = new RewardItem(cost[i].type, Mathf.CeilToInt(cost[i].amount));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Цена по-русски, красным -- чего не хватает
|
||||||
|
static string CostText(BuildingData d)
|
||||||
|
{
|
||||||
|
if (d.cost == null || d.cost.Length == 0) return "Бесплатно";
|
||||||
|
var parts = new List<string>();
|
||||||
|
foreach (var c in d.cost)
|
||||||
|
{
|
||||||
|
bool ok = ResourceManager.Instance != null && ResourceManager.Instance.HasEnough(c.type, c.amount);
|
||||||
|
parts.Add("<color=" + (ok ? "#9be59b" : "#ff7a7a") + ">" + GameData.Short(c.amount) + "</color> " + GameData.ResName(c.type));
|
||||||
|
}
|
||||||
|
return string.Join(", ", parts.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------- подсказка сверху и кнопка ----------------
|
||||||
|
|
||||||
|
GameObject CreateBanner()
|
||||||
|
{
|
||||||
|
// полоска сверху экрана (не модальная: остальной экран остаётся кликабельным)
|
||||||
|
var bar = UIKit.Row(UIKit.Overlay, -1, 16, new Color(0.1f, 0.25f, 0.12f, 0.92f), 14);
|
||||||
|
bar.name = "BuildModeBanner";
|
||||||
|
bar.anchorMin = new Vector2(0.15f, 1); bar.anchorMax = new Vector2(0.85f, 1);
|
||||||
|
bar.pivot = new Vector2(0.5f, 1);
|
||||||
|
bar.sizeDelta = new Vector2(0, 110); bar.anchoredPosition = new Vector2(0, -150);
|
||||||
|
var t = UIKit.Text(bar, "РЕЖИМ СТРОЙКИ: нажмите на зелёный участок", 30, Color.white, TextAlignmentOptions.Left);
|
||||||
|
UIKit.Size(t, -1, -1, 1);
|
||||||
|
UIKit.Button(bar, "Выйти", UIKit.Theme.Red, () => SetMode(false), 180, 80, 28);
|
||||||
|
return bar.gameObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateButtonLabel()
|
||||||
|
{
|
||||||
|
if (modeButton == null) return;
|
||||||
|
var t = modeButton.GetComponentInChildren<TextMeshProUGUI>();
|
||||||
|
if (t != null) t.text = IsActive ? "ГОТОВО" : "СТРОЙКА";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c6e7cd0571b63f04088968696ac03a6a
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 20c276885f20df54494e440a5e240f50
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,312 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// ВСЕ ИГРОВЫЕ ТАБЛИЦЫ В ОДНОМ МЕСТЕ: задания, войска, награды, магазин, событие.
|
||||||
|
// Баланс правится здесь -- числа, названия, награды. Логика лежит в GameProgress и панелях.
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class RewardItem
|
||||||
|
{
|
||||||
|
public ResourceType type;
|
||||||
|
public int amount;
|
||||||
|
public RewardItem() { }
|
||||||
|
public RewardItem(ResourceType type, int amount) { this.type = type; this.amount = amount; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QuestKind
|
||||||
|
{
|
||||||
|
TownHallLevel, // улучшить Ратушу до уровня N
|
||||||
|
BuildingsBuilt, // построить N зданий
|
||||||
|
Collect, // собрать N ресурса
|
||||||
|
BattlesWon, // выиграть N боёв
|
||||||
|
TroopsTrained, // обучить N воинов
|
||||||
|
HeroLevel, // герой N уровня
|
||||||
|
ArenaFights, // N боёв на арене
|
||||||
|
PlayerLevel, // уровень игрока N
|
||||||
|
Login, // зайти в игру (ежедневное)
|
||||||
|
WorldMarches, // отправить N походов на глобальной карте
|
||||||
|
WorldWins, // победить N раз на глобальной карте
|
||||||
|
BarracksBuilt // построить N казарм
|
||||||
|
}
|
||||||
|
|
||||||
|
public class QuestDef
|
||||||
|
{
|
||||||
|
public string id;
|
||||||
|
public string title;
|
||||||
|
public QuestKind kind;
|
||||||
|
public ResourceType resource;
|
||||||
|
public int target;
|
||||||
|
public int xp;
|
||||||
|
public RewardItem[] rewards;
|
||||||
|
|
||||||
|
public QuestDef(string id, string title, QuestKind kind, int target, int xp, params RewardItem[] rewards)
|
||||||
|
{
|
||||||
|
this.id = id; this.title = title; this.kind = kind; this.target = target; this.xp = xp; this.rewards = rewards;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuestDef Res(ResourceType r) { resource = r; return this; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TroopDef
|
||||||
|
{
|
||||||
|
public string name;
|
||||||
|
public string description;
|
||||||
|
public int power; // сила одного воина
|
||||||
|
public float secondsPerUnit; // время обучения одного
|
||||||
|
public int requiredTownHall;
|
||||||
|
public RewardItem[] cost; // цена одного воина
|
||||||
|
public Color color;
|
||||||
|
|
||||||
|
public TroopDef(string name, string description, int power, float seconds, int th, Color color, params RewardItem[] cost)
|
||||||
|
{
|
||||||
|
this.name = name; this.description = description; this.power = power; secondsPerUnit = seconds;
|
||||||
|
requiredTownHall = th; this.color = color; this.cost = cost;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ShopItemDef
|
||||||
|
{
|
||||||
|
public string id;
|
||||||
|
public string title;
|
||||||
|
public RewardItem[] gives;
|
||||||
|
public ResourceType priceType;
|
||||||
|
public int price; // 0 = бесплатно
|
||||||
|
public int dailyLimit; // 0 = без лимита
|
||||||
|
public bool comingSoon; // покупка за реальные деньги -- пока недоступна
|
||||||
|
public string priceLabel;
|
||||||
|
|
||||||
|
public ShopItemDef(string id, string title, ResourceType priceType, int price, int dailyLimit, params RewardItem[] gives)
|
||||||
|
{
|
||||||
|
this.id = id; this.title = title; this.priceType = priceType; this.price = price; this.dailyLimit = dailyLimit; this.gives = gives;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class GameData
|
||||||
|
{
|
||||||
|
// ---------- Названия ресурсов на русском ----------
|
||||||
|
public static string ResName(ResourceType t)
|
||||||
|
{
|
||||||
|
switch (t)
|
||||||
|
{
|
||||||
|
case ResourceType.Population: return "Люди";
|
||||||
|
case ResourceType.Food: return "Еда";
|
||||||
|
case ResourceType.Wood: return "Дерево";
|
||||||
|
case ResourceType.Stone: return "Камень";
|
||||||
|
case ResourceType.Iron: return "Железо";
|
||||||
|
case ResourceType.Gold: return "Золото";
|
||||||
|
case ResourceType.Gems: return "Кристаллы";
|
||||||
|
case ResourceType.Power: return "Сила";
|
||||||
|
}
|
||||||
|
return t.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Color ResColor(ResourceType t)
|
||||||
|
{
|
||||||
|
switch (t)
|
||||||
|
{
|
||||||
|
case ResourceType.Food: return new Color(0.85f, 0.45f, 0.3f);
|
||||||
|
case ResourceType.Wood: return new Color(0.6f, 0.4f, 0.2f);
|
||||||
|
case ResourceType.Stone: return new Color(0.6f, 0.6f, 0.65f);
|
||||||
|
case ResourceType.Iron: return new Color(0.45f, 0.55f, 0.7f);
|
||||||
|
case ResourceType.Gold: return new Color(1f, 0.8f, 0.2f);
|
||||||
|
case ResourceType.Gems: return new Color(0.4f, 0.85f, 1f);
|
||||||
|
case ResourceType.Power: return new Color(1f, 0.4f, 0.3f);
|
||||||
|
}
|
||||||
|
return new Color(0.8f, 0.8f, 0.8f);
|
||||||
|
}
|
||||||
|
|
||||||
|
static RewardItem R(ResourceType t, int a) { return new RewardItem(t, a); }
|
||||||
|
|
||||||
|
// ---------- Опыт игрока ----------
|
||||||
|
public static int XpToNextLevel(int level) { return 100 + (level - 1) * 80; }
|
||||||
|
public const int MaxPlayerLevel = 60;
|
||||||
|
|
||||||
|
// ---------- Основные задания (цепочка) ----------
|
||||||
|
public static readonly List<QuestDef> MainQuests = new List<QuestDef>
|
||||||
|
{
|
||||||
|
new QuestDef("m_collect_wood_1", "Собрать 200 дерева", QuestKind.Collect, 200, 30, R(ResourceType.Gold, 200)).Res(ResourceType.Wood),
|
||||||
|
new QuestDef("m_collect_food_1", "Собрать 200 еды", QuestKind.Collect, 200, 30, R(ResourceType.Gold, 200)).Res(ResourceType.Food),
|
||||||
|
new QuestDef("m_build_1", "Построить первое здание", QuestKind.BuildingsBuilt, 1, 50, R(ResourceType.Wood, 300), R(ResourceType.Stone, 200)),
|
||||||
|
new QuestDef("m_barracks", "Построить Казармы", QuestKind.BarracksBuilt, 1, 50, R(ResourceType.Food, 300), R(ResourceType.Wood, 200)),
|
||||||
|
new QuestDef("m_train_10", "Обучить 10 воинов", QuestKind.TroopsTrained, 10, 50, R(ResourceType.Food, 400)),
|
||||||
|
new QuestDef("m_battle_1", "Выиграть первый бой", QuestKind.BattlesWon, 1, 60, R(ResourceType.Gems, 30)),
|
||||||
|
new QuestDef("m_world_send", "Отправить армию в поход на карте мира", QuestKind.WorldMarches, 1, 60, R(ResourceType.Food, 500)),
|
||||||
|
new QuestDef("m_world_win", "Разграбить поселение на карте мира", QuestKind.WorldWins, 1, 100, R(ResourceType.Gems, 50), R(ResourceType.Gold, 500)),
|
||||||
|
new QuestDef("m_hero_3", "Герой 3 уровня", QuestKind.HeroLevel, 3, 60, R(ResourceType.Gold, 500)),
|
||||||
|
new QuestDef("m_th_2", "Ратуша 2 уровня", QuestKind.TownHallLevel, 2, 100, R(ResourceType.Gems, 50), R(ResourceType.Stone, 500)),
|
||||||
|
new QuestDef("m_build_3", "Построить 3 здания", QuestKind.BuildingsBuilt, 3, 80, R(ResourceType.Wood, 600), R(ResourceType.Iron, 200)),
|
||||||
|
new QuestDef("m_arena_1", "Сразиться на арене", QuestKind.ArenaFights, 1, 60, R(ResourceType.Gems, 20)),
|
||||||
|
new QuestDef("m_collect_stone_1", "Собрать 1000 камня", QuestKind.Collect, 1000, 80, R(ResourceType.Gold, 800)).Res(ResourceType.Stone),
|
||||||
|
new QuestDef("m_train_100", "Обучить 100 воинов", QuestKind.TroopsTrained, 100, 120, R(ResourceType.Food, 1500), R(ResourceType.Gems, 30)),
|
||||||
|
new QuestDef("m_battle_5", "Выиграть 5 боёв", QuestKind.BattlesWon, 5, 150, R(ResourceType.Gems, 60)),
|
||||||
|
new QuestDef("m_player_5", "Достигнуть 5 уровня", QuestKind.PlayerLevel, 5, 100, R(ResourceType.Gems, 100)),
|
||||||
|
new QuestDef("m_th_3", "Ратуша 3 уровня", QuestKind.TownHallLevel, 3, 200, R(ResourceType.Gems, 100), R(ResourceType.Iron, 800)),
|
||||||
|
new QuestDef("m_hero_10", "Герой 10 уровня", QuestKind.HeroLevel, 10, 200, R(ResourceType.Gold, 3000)),
|
||||||
|
new QuestDef("m_battle_15", "Выиграть 15 боёв", QuestKind.BattlesWon, 15, 300, R(ResourceType.Gems, 150)),
|
||||||
|
new QuestDef("m_th_5", "Ратуша 5 уровня", QuestKind.TownHallLevel, 5, 400, R(ResourceType.Gems, 250)),
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------- Ежедневные задания (сбрасываются каждый день) ----------
|
||||||
|
public static readonly List<QuestDef> DailyQuests = new List<QuestDef>
|
||||||
|
{
|
||||||
|
new QuestDef("d_login", "Зайти в игру", QuestKind.Login, 1, 10, R(ResourceType.Gold, 100)),
|
||||||
|
new QuestDef("d_wood", "Собрать 300 дерева", QuestKind.Collect, 300, 20, R(ResourceType.Food, 200)).Res(ResourceType.Wood),
|
||||||
|
new QuestDef("d_food", "Собрать 300 еды", QuestKind.Collect, 300, 20, R(ResourceType.Wood, 200)).Res(ResourceType.Food),
|
||||||
|
new QuestDef("d_train", "Обучить 20 воинов", QuestKind.TroopsTrained, 20, 25, R(ResourceType.Iron, 150)),
|
||||||
|
new QuestDef("d_battle", "Выиграть 1 бой", QuestKind.BattlesWon, 1, 30, R(ResourceType.Gems, 10)),
|
||||||
|
new QuestDef("d_arena", "2 боя на арене", QuestKind.ArenaFights, 2, 30, R(ResourceType.Gems, 10)),
|
||||||
|
new QuestDef("d_world", "Отправить поход на карте мира", QuestKind.WorldMarches, 1, 25, R(ResourceType.Gold, 200)),
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------- Войска ----------
|
||||||
|
public static readonly List<TroopDef> Troops = new List<TroopDef>
|
||||||
|
{
|
||||||
|
new TroopDef("Пехота", "Дешёвые и надёжные бойцы ближнего боя.", 4, 3f, 1, new Color(0.55f, 0.6f, 0.7f),
|
||||||
|
R(ResourceType.Food, 20), R(ResourceType.Wood, 10)),
|
||||||
|
new TroopDef("Лучники", "Бьют издалека, хороши против пехоты.", 5, 4f, 1, new Color(0.45f, 0.7f, 0.4f),
|
||||||
|
R(ResourceType.Food, 15), R(ResourceType.Wood, 25)),
|
||||||
|
new TroopDef("Кавалерия", "Быстрые и сильные всадники.", 9, 7f, 2, new Color(0.75f, 0.55f, 0.3f),
|
||||||
|
R(ResourceType.Food, 40), R(ResourceType.Iron, 15)),
|
||||||
|
new TroopDef("Осадные", "Катапульты: огромная сила, долгая сборка.", 16, 12f, 3, new Color(0.7f, 0.35f, 0.35f),
|
||||||
|
R(ResourceType.Wood, 60), R(ResourceType.Stone, 40), R(ResourceType.Iron, 30)),
|
||||||
|
};
|
||||||
|
// Размер очереди обучения зависит от числа казарм: см. Barracks.QueueSize
|
||||||
|
|
||||||
|
// ---------- Герой ----------
|
||||||
|
public static int HeroMaxLevel(int townHallLevel) { return Mathf.Min(50, Mathf.Max(1, townHallLevel) * 5); }
|
||||||
|
public static int HeroAttack(int lvl) { return 10 + (lvl - 1) * 5; }
|
||||||
|
public static int HeroDefense(int lvl) { return 8 + (lvl - 1) * 4; }
|
||||||
|
public static int HeroArmyBonusPercent(int lvl) { return lvl * 2; }
|
||||||
|
public static int HeroPower(int lvl) { return 60 + lvl * 40; }
|
||||||
|
public static RewardItem[] HeroUpgradeCost(int lvl)
|
||||||
|
{
|
||||||
|
float m = Mathf.Pow(1.35f, lvl - 1);
|
||||||
|
return new[] { R(ResourceType.Gold, Mathf.RoundToInt(100 * m)), R(ResourceType.Food, Mathf.RoundToInt(150 * m)) };
|
||||||
|
}
|
||||||
|
public static readonly int[] HeroSkillLevels = { 1, 5, 10, 20, 35 };
|
||||||
|
public static readonly string[] HeroSkillNames =
|
||||||
|
{
|
||||||
|
"Боевой клич: +5% к силе армии",
|
||||||
|
"Железная стена: +10% защиты войск",
|
||||||
|
"Вдохновение: +10% к наградам за бой",
|
||||||
|
"Стратег: потери в бою -20%",
|
||||||
|
"Легенда: +15% к силе армии",
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------- Кампания (вкладка "Бой") ----------
|
||||||
|
public static readonly string[] EnemyNames =
|
||||||
|
{
|
||||||
|
"Лагерь разбойников", "Волчье логово", "Застава мародёров", "Гоблинский форт", "Тёмная роща",
|
||||||
|
"Пиратская бухта", "Крепость орков", "Проклятые руины", "Логово тролля", "Цитадель некроманта"
|
||||||
|
};
|
||||||
|
public static string StageName(int stage) { return EnemyNames[(stage - 1) % EnemyNames.Length] + (stage > EnemyNames.Length ? " II" : ""); }
|
||||||
|
public static int StageEnemyPower(int stage) { return Mathf.RoundToInt(80f * Mathf.Pow(1.22f, stage - 1)); }
|
||||||
|
public static RewardItem[] StageRewards(int stage)
|
||||||
|
{
|
||||||
|
return new[]
|
||||||
|
{
|
||||||
|
R(ResourceType.Gold, 60 + stage * 25),
|
||||||
|
R(ResourceType.Food, 80 + stage * 30),
|
||||||
|
R(ResourceType.Iron, 20 + stage * 10),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
public static int StageXp(int stage) { return 20 + stage * 6; }
|
||||||
|
public static int StageGems(int stage) { return stage % 5 == 0 ? 25 : 0; } // каждый 5-й этап -- кристаллы
|
||||||
|
|
||||||
|
// ---------- Арена ----------
|
||||||
|
public const int ArenaMaxTickets = 5;
|
||||||
|
public const int ArenaTicketMinutes = 20;
|
||||||
|
public static readonly string[] BotNames =
|
||||||
|
{
|
||||||
|
"Ярослав", "Мирон", "Север", "Ведана", "Ратибор", "Злата", "Горыня", "Любава", "Святогор", "Огнеслав",
|
||||||
|
"Ingvar", "Sigrun", "Bjorn", "Astrid", "Leif", "Ragnar", "Freya", "Ulf", "Helga", "Torvald"
|
||||||
|
};
|
||||||
|
public static string ArenaLeague(int rating)
|
||||||
|
{
|
||||||
|
if (rating < 1100) return "Бронза";
|
||||||
|
if (rating < 1300) return "Серебро";
|
||||||
|
if (rating < 1600) return "Золото";
|
||||||
|
if (rating < 2000) return "Платина";
|
||||||
|
return "Алмаз";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- Ежедневная награда за вход (7 дней) ----------
|
||||||
|
public static readonly RewardItem[][] LoginRewards =
|
||||||
|
{
|
||||||
|
new[] { R(ResourceType.Gold, 500) },
|
||||||
|
new[] { R(ResourceType.Food, 1000) },
|
||||||
|
new[] { R(ResourceType.Wood, 800), R(ResourceType.Stone, 500) },
|
||||||
|
new[] { R(ResourceType.Gems, 50) },
|
||||||
|
new[] { R(ResourceType.Iron, 600) },
|
||||||
|
new[] { R(ResourceType.Gold, 2000) },
|
||||||
|
new[] { R(ResourceType.Gems, 200) },
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------- Магазин ----------
|
||||||
|
public static readonly List<ShopItemDef> ShopItems = BuildShop();
|
||||||
|
static List<ShopItemDef> BuildShop()
|
||||||
|
{
|
||||||
|
var list = new List<ShopItemDef>
|
||||||
|
{
|
||||||
|
new ShopItemDef("free_chest", "Бесплатный сундук (раз в день)", ResourceType.Gems, 0, 1),
|
||||||
|
new ShopItemDef("wood_1k", "Пакет дерева", ResourceType.Gems, 50, 5, R(ResourceType.Wood, 1000)),
|
||||||
|
new ShopItemDef("stone_1k", "Пакет камня", ResourceType.Gems, 50, 5, R(ResourceType.Stone, 1000)),
|
||||||
|
new ShopItemDef("food_15", "Пакет еды", ResourceType.Gems, 50, 5, R(ResourceType.Food, 1500)),
|
||||||
|
new ShopItemDef("iron_500", "Пакет железа", ResourceType.Gems, 60, 5, R(ResourceType.Iron, 500)),
|
||||||
|
new ShopItemDef("gold_1k", "Мешок золота", ResourceType.Gems, 80, 3, R(ResourceType.Gold, 1000)),
|
||||||
|
new ShopItemDef("gems_10", "Обмен золота на кристаллы", ResourceType.Gold, 1000, 3, R(ResourceType.Gems, 10)),
|
||||||
|
};
|
||||||
|
var p1 = new ShopItemDef("iap_small", "Горсть кристаллов", ResourceType.Gems, 0, 0, R(ResourceType.Gems, 500));
|
||||||
|
p1.comingSoon = true; p1.priceLabel = "99 руб.";
|
||||||
|
var p2 = new ShopItemDef("iap_big", "Сундук кристаллов", ResourceType.Gems, 0, 0, R(ResourceType.Gems, 3000));
|
||||||
|
p2.comingSoon = true; p2.priceLabel = "499 руб.";
|
||||||
|
list.Add(p1); list.Add(p2);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
// Содержимое бесплатного сундука (выбирается случайно)
|
||||||
|
public static readonly RewardItem[] FreeChestPool =
|
||||||
|
{
|
||||||
|
R(ResourceType.Wood, 500), R(ResourceType.Stone, 400), R(ResourceType.Food, 600),
|
||||||
|
R(ResourceType.Iron, 250), R(ResourceType.Gold, 400), R(ResourceType.Gems, 15),
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------- Еженедельное событие ----------
|
||||||
|
public const string EventTitle = "Сбор войск";
|
||||||
|
public const string EventDescription =
|
||||||
|
"Очки события даются за: победу в бою (+10), разграбление на карте мира (+15), бой на арене (+5), выполненное задание (+20), каждые 5 обученных воинов (+1).";
|
||||||
|
public static readonly int[] EventTiers = { 50, 150, 300, 500, 800 };
|
||||||
|
public static readonly RewardItem[][] EventTierRewards =
|
||||||
|
{
|
||||||
|
new[] { R(ResourceType.Gold, 500) },
|
||||||
|
new[] { R(ResourceType.Food, 1500), R(ResourceType.Wood, 1000) },
|
||||||
|
new[] { R(ResourceType.Gems, 50) },
|
||||||
|
new[] { R(ResourceType.Iron, 1500), R(ResourceType.Gold, 2000) },
|
||||||
|
new[] { R(ResourceType.Gems, 200) },
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------- Текст наград ----------
|
||||||
|
public static string RewardsText(RewardItem[] rewards)
|
||||||
|
{
|
||||||
|
if (rewards == null || rewards.Length == 0) return "";
|
||||||
|
var parts = new List<string>();
|
||||||
|
foreach (var r in rewards) parts.Add(Short(r.amount) + " " + ResName(r.type));
|
||||||
|
return string.Join(", ", parts.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Short(float value)
|
||||||
|
{
|
||||||
|
if (value >= 1000000f) return (value / 1000000f).ToString("0.#") + "M";
|
||||||
|
if (value >= 10000f) return (value / 1000f).ToString("0.#") + "K";
|
||||||
|
return Mathf.FloorToInt(value).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string FormatTime(double seconds)
|
||||||
|
{
|
||||||
|
if (seconds < 0) seconds = 0;
|
||||||
|
TimeSpan t = TimeSpan.FromSeconds(Math.Ceiling(seconds));
|
||||||
|
if (t.TotalDays >= 1) return string.Format("{0}д {1}ч", (int)t.TotalDays, t.Hours);
|
||||||
|
if (t.TotalHours >= 1) return string.Format("{0}ч {1:00}м", (int)t.TotalHours, t.Minutes);
|
||||||
|
return string.Format("{0:00}:{1:00}", t.Minutes, t.Seconds);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 203996cec7ec1514fb39e444697880ec
|
||||||
@@ -0,0 +1,947 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// "МОЗГ" всех панелей HUD: профиль, задания, почта, магазин, герой, войска, бой, арена, событие.
|
||||||
|
// Панели только РИСУЮТ и вызывают методы отсюда -- вся логика и сохранение здесь.
|
||||||
|
//
|
||||||
|
// Создаётся сам при запуске сцены (ничего вешать руками не нужно).
|
||||||
|
// Сохраняется в persistentDataPath/progress.json -- рядом с save.json от SaveManager.
|
||||||
|
public class GameProgress : MonoBehaviour
|
||||||
|
{
|
||||||
|
static GameProgress instance;
|
||||||
|
public static bool HasInstance { get { return instance != null; } }
|
||||||
|
public static GameProgress Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (instance == null)
|
||||||
|
{
|
||||||
|
instance = FindAnyObjectByType<GameProgress>();
|
||||||
|
if (instance == null) instance = new GameObject("GameProgress").AddComponent<GameProgress>();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
|
||||||
|
static void AutoCreate() { var _ = Instance; }
|
||||||
|
|
||||||
|
public ProgressData Data { get; private set; }
|
||||||
|
|
||||||
|
// Любое изменение прогресса -> панели перерисовываются
|
||||||
|
public event Action OnChanged;
|
||||||
|
|
||||||
|
string SavePath { get { return Path.Combine(Application.persistentDataPath, "progress.json"); } }
|
||||||
|
|
||||||
|
bool dirty;
|
||||||
|
float saveAt = -1f;
|
||||||
|
float nextTick;
|
||||||
|
int suppressTracking; // >0 -- выдаём награду, не считаем это "сбором"
|
||||||
|
float trackingStartsAt; // первые секунды после старта не считаем (идёт загрузка сохранения)
|
||||||
|
bool subscribed;
|
||||||
|
readonly float[] lastValues = new float[8];
|
||||||
|
int cachedBuildings;
|
||||||
|
|
||||||
|
static readonly DateTime Epoch = new DateTime(2024, 1, 1); // понедельник
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ЖИЗНЕННЫЙ ЦИКЛ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
if (instance != null && instance != this) { Destroy(gameObject); return; }
|
||||||
|
instance = this;
|
||||||
|
DontDestroyOnLoad(gameObject);
|
||||||
|
Load();
|
||||||
|
trackingStartsAt = Time.unscaledTime + 2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
ApplySettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (!subscribed) TrySubscribe();
|
||||||
|
|
||||||
|
if (Time.unscaledTime >= nextTick)
|
||||||
|
{
|
||||||
|
nextTick = Time.unscaledTime + 1f;
|
||||||
|
EnsureDailyAndWeekly();
|
||||||
|
ProcessTraining();
|
||||||
|
UpdateBuildingsCount();
|
||||||
|
UpdatePowerResource();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saveAt > 0 && Time.unscaledTime >= saveAt) { saveAt = -1f; Save(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
void LateUpdate()
|
||||||
|
{
|
||||||
|
if (dirty)
|
||||||
|
{
|
||||||
|
dirty = false;
|
||||||
|
if (OnChanged != null) OnChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnApplicationPause(bool paused) { if (paused) Save(); }
|
||||||
|
void OnApplicationQuit() { Save(); }
|
||||||
|
|
||||||
|
// Сохранить без перерисовки панелей (для ползунков настроек)
|
||||||
|
public void SaveSoon()
|
||||||
|
{
|
||||||
|
if (saveAt < 0) saveAt = Time.unscaledTime + 1.5f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MarkChanged()
|
||||||
|
{
|
||||||
|
dirty = true;
|
||||||
|
if (saveAt < 0) saveAt = Time.unscaledTime + 1.5f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// СОХРАНЕНИЕ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
void Load()
|
||||||
|
{
|
||||||
|
Data = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (File.Exists(SavePath)) Data = JsonUtility.FromJson<ProgressData>(File.ReadAllText(SavePath));
|
||||||
|
}
|
||||||
|
catch (Exception e) { Debug.LogWarning("[ПРОГРЕСС] Не удалось прочитать progress.json: " + e.Message); }
|
||||||
|
|
||||||
|
if (Data == null) Data = new ProgressData();
|
||||||
|
FixData();
|
||||||
|
EnsureDailyAndWeekly();
|
||||||
|
|
||||||
|
// Новый день -> считаем день в игре
|
||||||
|
int today = Today;
|
||||||
|
if (Data.lastLoginDay != today) { Data.lastLoginDay = today; Data.daysPlayed++; }
|
||||||
|
|
||||||
|
if (!Data.starterMailSent) SendStarterMail();
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Защита от старых/кривых файлов: массивы нужной длины, списки не null
|
||||||
|
void FixData()
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(Data.playerId)) Data.playerId = UnityEngine.Random.Range(10000000, 99999999).ToString();
|
||||||
|
if (Data.firstLaunchTicks == 0) Data.firstLaunchTicks = DateTime.UtcNow.Ticks;
|
||||||
|
if (Data.collected == null || Data.collected.Length < 8) Data.collected = Resize(Data.collected, 8);
|
||||||
|
if (Data.dailyCollected == null || Data.dailyCollected.Length < 8) Data.dailyCollected = Resize(Data.dailyCollected, 8);
|
||||||
|
if (Data.troops == null || Data.troops.Length < GameData.Troops.Count)
|
||||||
|
{
|
||||||
|
int[] t = new int[GameData.Troops.Count];
|
||||||
|
if (Data.troops != null) Array.Copy(Data.troops, t, Mathf.Min(Data.troops.Length, t.Length));
|
||||||
|
Data.troops = t;
|
||||||
|
}
|
||||||
|
if (Data.claimedQuests == null) Data.claimedQuests = new List<string>();
|
||||||
|
if (Data.claimedDaily == null) Data.claimedDaily = new List<string>();
|
||||||
|
if (Data.mail == null) Data.mail = new List<MailItem>();
|
||||||
|
if (Data.shopIds == null) Data.shopIds = new List<string>();
|
||||||
|
if (Data.shopCounts == null) Data.shopCounts = new List<int>();
|
||||||
|
if (Data.training == null) Data.training = new List<TrainingOrder>();
|
||||||
|
if (Data.arenaOpponents == null) Data.arenaOpponents = new List<ArenaOpponent>();
|
||||||
|
if (Data.eventClaimed == null) Data.eventClaimed = new List<int>();
|
||||||
|
ReturnLegacyWorldMarches();
|
||||||
|
if (Data.sashaMarches == null) Data.sashaMarches = new List<Bogatyri.World.MarchData>();
|
||||||
|
if (Data.sashaMarchUnits == null) Data.sashaMarchUnits = new List<LegacyMarchUnits>();
|
||||||
|
if (Data.level < 1) Data.level = 1;
|
||||||
|
if (Data.heroLevel < 1) Data.heroLevel = 1;
|
||||||
|
if (Data.battleStage < 1) Data.battleStage = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static float[] Resize(float[] src, int len)
|
||||||
|
{
|
||||||
|
float[] r = new float[len];
|
||||||
|
if (src != null) Array.Copy(src, r, Mathf.Min(src.Length, len));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Save()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File.WriteAllText(SavePath, JsonUtility.ToJson(Data, true));
|
||||||
|
}
|
||||||
|
catch (Exception e) { Debug.LogWarning("[ПРОГРЕСС] Не удалось сохранить: " + e.Message); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Старая маленькая карта мира удалена: солдаты из её походов возвращаются в город.
|
||||||
|
// Ещё идут к цели -- возвращаются все отправленные; уже идут обратно -- выжившие. Добыча таких походов не переносится.
|
||||||
|
void ReturnLegacyWorldMarches()
|
||||||
|
{
|
||||||
|
if (Data.marches == null || Data.marches.Count == 0) { Data.marches = new List<LegacyWorldMarch>(); return; }
|
||||||
|
|
||||||
|
int returned = 0;
|
||||||
|
foreach (var m in Data.marches)
|
||||||
|
{
|
||||||
|
int[] back = m.returning ? m.survivors : m.units;
|
||||||
|
if (back == null) continue;
|
||||||
|
for (int i = 0; i < back.Length && i < Data.troops.Length; i++)
|
||||||
|
{
|
||||||
|
Data.troops[i] += Mathf.Max(0, back[i]);
|
||||||
|
returned += Mathf.Max(0, back[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Data.marches.Clear();
|
||||||
|
dirty = true;
|
||||||
|
SaveSoon();
|
||||||
|
Debug.Log($"[ПРОГРЕСС] Старая карта мира удалена: в город вернулось воинов из её походов: {returned}.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// СБРОС СОХРАНЕНИЙ: прогресс (progress.json) + все модули (save.json): ресурсы, здания, Ратуша, походы.
|
||||||
|
// Кнопка в Настройках и меню Tools -> Сбросить сохранения. Документ: Docs/Modules/Save.md
|
||||||
|
public void ResetAll()
|
||||||
|
{
|
||||||
|
if (File.Exists(SavePath)) File.Delete(SavePath);
|
||||||
|
|
||||||
|
// Модули сбрасывают себя сами через модуль Сохранений; возврат ресурсов к старту -- не "сбор"
|
||||||
|
suppressTracking++;
|
||||||
|
if (GameServices.TryGet(out ISaveSystem save))
|
||||||
|
{
|
||||||
|
save.ResetAll();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Сцена без SaveManager (например, карту мира запустили напрямую из редактора)
|
||||||
|
string modulesSave = Path.Combine(Application.persistentDataPath, "save.json");
|
||||||
|
if (File.Exists(modulesSave)) File.Delete(modulesSave);
|
||||||
|
foreach (var participant in SaveRegistry.All) participant.ResetState();
|
||||||
|
}
|
||||||
|
suppressTracking--;
|
||||||
|
|
||||||
|
Data = new ProgressData();
|
||||||
|
FixData();
|
||||||
|
Data.armyInModule = true; // войска сбросил модуль Армии, переносить из progress.json нечего
|
||||||
|
Data.lastLoginDay = Today; Data.daysPlayed = 1;
|
||||||
|
EnsureDailyAndWeekly();
|
||||||
|
SendStarterMail();
|
||||||
|
ApplySettings();
|
||||||
|
Save();
|
||||||
|
MarkChanged();
|
||||||
|
UIKit.Toast("Прогресс сброшен. Новая игра!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ВРЕМЯ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public static int Today { get { return (DateTime.Now.Date - Epoch).Days; } }
|
||||||
|
public static int CurrentWeek { get { return Today / 7; } }
|
||||||
|
public static double SecondsToNextDay { get { return (DateTime.Now.Date.AddDays(1) - DateTime.Now).TotalSeconds; } }
|
||||||
|
public static double SecondsToWeekEnd
|
||||||
|
{
|
||||||
|
get { return (Epoch.AddDays((CurrentWeek + 1) * 7) - DateTime.Now).TotalSeconds; }
|
||||||
|
}
|
||||||
|
static long Now { get { return DateTime.UtcNow.Ticks; } }
|
||||||
|
|
||||||
|
void EnsureDailyAndWeekly()
|
||||||
|
{
|
||||||
|
int today = Today;
|
||||||
|
if (Data.dailyDay != today)
|
||||||
|
{
|
||||||
|
Data.dailyDay = today;
|
||||||
|
Data.claimedDaily.Clear();
|
||||||
|
Data.dailyCollected = new float[8];
|
||||||
|
Data.dailyBattles = 0; Data.dailyTroops = 0; Data.dailyArena = 0; Data.dailyMarches = 0;
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
if (Data.shopDay != today)
|
||||||
|
{
|
||||||
|
Data.shopDay = today;
|
||||||
|
Data.shopIds.Clear(); Data.shopCounts.Clear();
|
||||||
|
}
|
||||||
|
if (Data.eventWeek != CurrentWeek)
|
||||||
|
{
|
||||||
|
Data.eventWeek = CurrentWeek;
|
||||||
|
Data.eventPoints = 0;
|
||||||
|
Data.eventTroopRemainder = 0;
|
||||||
|
Data.eventClaimed.Clear();
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// РЕСУРСЫ И НАГРАДЫ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public float Res(ResourceType t) { return ResourceManager.Instance != null ? ResourceManager.Instance.GetResource(t) : 0f; }
|
||||||
|
|
||||||
|
public bool CanAfford(RewardItem[] cost, int multiplier = 1)
|
||||||
|
{
|
||||||
|
if (ResourceManager.Instance == null) return false;
|
||||||
|
foreach (var c in cost)
|
||||||
|
if (!ResourceManager.Instance.HasEnough(c.type, (float)c.amount * multiplier)) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string MissingText(RewardItem[] cost, int multiplier = 1)
|
||||||
|
{
|
||||||
|
var parts = new List<string>();
|
||||||
|
foreach (var c in cost)
|
||||||
|
{
|
||||||
|
float need = (float)c.amount * multiplier - Res(c.type);
|
||||||
|
if (need > 0) parts.Add(GameData.Short(Mathf.Ceil(need)) + " " + GameData.ResName(c.type));
|
||||||
|
}
|
||||||
|
return parts.Count == 0 ? "" : "Не хватает: " + string.Join(", ", parts.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Списать цену. false -- не хватило (ничего не списано + всплывашка)
|
||||||
|
public bool Pay(RewardItem[] cost, int multiplier = 1)
|
||||||
|
{
|
||||||
|
if (!CanAfford(cost, multiplier))
|
||||||
|
{
|
||||||
|
UIKit.Toast(MissingText(cost, multiplier));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
foreach (var c in cost) ResourceManager.Instance.TrySpend(c.type, (float)c.amount * multiplier);
|
||||||
|
MarkChanged();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Grant(RewardItem[] rewards, int xp = 0, bool toast = true)
|
||||||
|
{
|
||||||
|
if (ResourceManager.Instance != null && rewards != null)
|
||||||
|
{
|
||||||
|
suppressTracking++;
|
||||||
|
foreach (var r in rewards) ResourceManager.Instance.AddResource(r.type, r.amount);
|
||||||
|
suppressTracking--;
|
||||||
|
}
|
||||||
|
if (xp > 0) AddXp(xp);
|
||||||
|
if (toast)
|
||||||
|
{
|
||||||
|
string text = GameData.RewardsText(rewards);
|
||||||
|
if (xp > 0) text += (text.Length > 0 ? ", " : "") + xp + " опыта";
|
||||||
|
if (text.Length > 0) UIKit.Toast("Получено: " + text);
|
||||||
|
}
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ОТСЛЕЖИВАНИЕ СБОРА РЕСУРСОВ (для заданий и статистики)
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
void TrySubscribe()
|
||||||
|
{
|
||||||
|
var rm = ResourceManager.Instance;
|
||||||
|
if (rm == null) return;
|
||||||
|
rm.OnResourceChanged += HandleResourceChanged;
|
||||||
|
foreach (ResourceType t in Enum.GetValues(typeof(ResourceType)))
|
||||||
|
if ((int)t < lastValues.Length) lastValues[(int)t] = rm.GetResource(t);
|
||||||
|
subscribed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
if (subscribed && ResourceManager.Instance != null) ResourceManager.Instance.OnResourceChanged -= HandleResourceChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleResourceChanged(ResourceType type, float value)
|
||||||
|
{
|
||||||
|
int i = (int)type;
|
||||||
|
if (i < 0 || i >= lastValues.Length) return;
|
||||||
|
float delta = value - lastValues[i];
|
||||||
|
lastValues[i] = value;
|
||||||
|
|
||||||
|
if (type == ResourceType.Power) return;
|
||||||
|
if (delta <= 0 || suppressTracking > 0 || Time.unscaledTime < trackingStartsAt) { MarkChanged(); return; }
|
||||||
|
|
||||||
|
Data.collected[i] += delta;
|
||||||
|
Data.dailyCollected[i] += delta;
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateBuildingsCount()
|
||||||
|
{
|
||||||
|
int n = FindObjectsByType<PlacedBuildingId>(FindObjectsSortMode.None).Length;
|
||||||
|
if (n != cachedBuildings) { cachedBuildings = n; MarkChanged(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int BuildingsCount { get { return cachedBuildings; } }
|
||||||
|
public int TownHallLevel { get { return TownHall.Instance != null ? TownHall.Instance.currentLevel : 1; } }
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ОПЫТ И УРОВЕНЬ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public void AddXp(int amount)
|
||||||
|
{
|
||||||
|
if (Data.level >= GameData.MaxPlayerLevel) return;
|
||||||
|
Data.xp += amount;
|
||||||
|
while (Data.level < GameData.MaxPlayerLevel && Data.xp >= GameData.XpToNextLevel(Data.level))
|
||||||
|
{
|
||||||
|
Data.xp -= GameData.XpToNextLevel(Data.level);
|
||||||
|
Data.level++;
|
||||||
|
int gems = 10 * Data.level;
|
||||||
|
SendMail("Новый уровень: " + Data.level + "!",
|
||||||
|
"Поздравляем, командир! Ваша слава растёт. Примите подарок от совета королевства.",
|
||||||
|
new RewardItem(ResourceType.Gems, gems), new RewardItem(ResourceType.Gold, 300 * Data.level));
|
||||||
|
UIKit.Toast("Новый уровень: " + Data.level + "! Подарок в почте.");
|
||||||
|
Vibrate();
|
||||||
|
}
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// СИЛА
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public int TroopsPower
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
int p = 0;
|
||||||
|
for (int i = 0; i < GameData.Troops.Count; i++) p += TroopCount(i) * GameData.Troops[i].power;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public float ArmyBonus
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
float b = GameData.HeroArmyBonusPercent(Data.heroLevel) / 100f;
|
||||||
|
if (HasHeroSkill(0)) b += 0.05f;
|
||||||
|
if (HasHeroSkill(4)) b += 0.15f;
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Сила армии в бою = войска * бонус героя + сила героя
|
||||||
|
public int ArmyPower { get { return Mathf.RoundToInt(TroopsPower * (1f + ArmyBonus)) + GameData.HeroPower(Data.heroLevel); } }
|
||||||
|
|
||||||
|
public int TotalPower { get { return ArmyPower + TownHallLevel * 100 + BuildingsCount * 25; } }
|
||||||
|
|
||||||
|
void UpdatePowerResource()
|
||||||
|
{
|
||||||
|
var rm = ResourceManager.Instance;
|
||||||
|
if (rm == null) return;
|
||||||
|
int p = TotalPower;
|
||||||
|
if (Mathf.RoundToInt(rm.GetResource(ResourceType.Power)) != p) rm.SetResource(ResourceType.Power, p);
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ЗАДАНИЯ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public int QuestProgress(QuestDef q, bool daily)
|
||||||
|
{
|
||||||
|
switch (q.kind)
|
||||||
|
{
|
||||||
|
case QuestKind.TownHallLevel: return TownHallLevel;
|
||||||
|
case QuestKind.BuildingsBuilt: return BuildingsCount;
|
||||||
|
case QuestKind.Collect: return Mathf.FloorToInt(daily ? Data.dailyCollected[(int)q.resource] : Data.collected[(int)q.resource]);
|
||||||
|
case QuestKind.BattlesWon: return daily ? Data.dailyBattles : Data.battlesWon;
|
||||||
|
case QuestKind.TroopsTrained: return daily ? Data.dailyTroops : Data.troopsTrained;
|
||||||
|
case QuestKind.HeroLevel: return Data.heroLevel;
|
||||||
|
case QuestKind.ArenaFights: return daily ? Data.dailyArena : Data.arenaFights;
|
||||||
|
case QuestKind.PlayerLevel: return Data.level;
|
||||||
|
case QuestKind.Login: return 1;
|
||||||
|
case QuestKind.WorldMarches: return daily ? Data.dailyMarches : Data.marchesSent;
|
||||||
|
case QuestKind.WorldWins: return Data.worldWins;
|
||||||
|
case QuestKind.BarracksBuilt: return Barracks.Count;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsQuestClaimed(QuestDef q, bool daily) { return (daily ? Data.claimedDaily : Data.claimedQuests).Contains(q.id); }
|
||||||
|
public bool IsQuestDone(QuestDef q, bool daily) { return QuestProgress(q, daily) >= q.target; }
|
||||||
|
|
||||||
|
public void ClaimQuest(QuestDef q, bool daily)
|
||||||
|
{
|
||||||
|
if (IsQuestClaimed(q, daily) || !IsQuestDone(q, daily)) return;
|
||||||
|
(daily ? Data.claimedDaily : Data.claimedQuests).Add(q.id);
|
||||||
|
Data.questsDone++;
|
||||||
|
AddEventPoints(20);
|
||||||
|
Grant(q.rewards, q.xp);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ClaimableQuestsCount
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
int n = 0;
|
||||||
|
foreach (var q in GameData.MainQuests) if (!IsQuestClaimed(q, false) && IsQuestDone(q, false)) n++;
|
||||||
|
foreach (var q in GameData.DailyQuests) if (!IsQuestClaimed(q, true) && IsQuestDone(q, true)) n++;
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// НАГРАДА ЗА ВХОД (7 дней)
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public bool CanClaimLogin { get { return Data.lastLoginRewardDay != Today; } }
|
||||||
|
|
||||||
|
public void ClaimLogin()
|
||||||
|
{
|
||||||
|
if (!CanClaimLogin) return;
|
||||||
|
int idx = Data.loginRewardIndex % GameData.LoginRewards.Length;
|
||||||
|
Data.lastLoginRewardDay = Today;
|
||||||
|
Data.loginRewardIndex = (idx + 1) % GameData.LoginRewards.Length;
|
||||||
|
Grant(GameData.LoginRewards[idx], 15);
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ПОЧТА
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public void SendMail(string title, string body, params RewardItem[] rewards)
|
||||||
|
{
|
||||||
|
var m = new MailItem { id = Data.nextMailId++, title = title, body = body, sentTicks = DateTime.Now.Ticks };
|
||||||
|
if (rewards != null) m.rewards.AddRange(rewards);
|
||||||
|
Data.mail.Insert(0, m);
|
||||||
|
if (Data.mail.Count > 50) Data.mail.RemoveAt(Data.mail.Count - 1);
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SendStarterMail()
|
||||||
|
{
|
||||||
|
Data.starterMailSent = true;
|
||||||
|
SendMail("Как играть",
|
||||||
|
"1. Собирайте ресурсы, нажимая на здания.\n2. Стройте новые здания и улучшайте Ратушу.\n" +
|
||||||
|
"3. Обучайте войска и проходите этапы во вкладке «Бой».\n4. Выполняйте задания и забирайте ежедневные награды.\n" +
|
||||||
|
"5. Сражайтесь на арене и поднимайтесь в рейтинге.");
|
||||||
|
SendMail("Добро пожаловать, командир!",
|
||||||
|
"Королевство ждёт своего правителя. Примите стартовый подарок, чтобы начать строительство.",
|
||||||
|
new RewardItem(ResourceType.Gold, 500), new RewardItem(ResourceType.Wood, 500),
|
||||||
|
new RewardItem(ResourceType.Food, 500), new RewardItem(ResourceType.Gems, 100));
|
||||||
|
}
|
||||||
|
|
||||||
|
public int UnreadMailCount
|
||||||
|
{
|
||||||
|
get { int n = 0; foreach (var m in Data.mail) if (!m.read || (m.HasRewards && !m.claimed)) n++; return n; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public MailItem GetMail(int id) { return Data.mail.Find(m => m.id == id); }
|
||||||
|
|
||||||
|
public void ReadMail(MailItem m) { if (m != null && !m.read) { m.read = true; MarkChanged(); } }
|
||||||
|
|
||||||
|
public void ClaimMail(MailItem m, bool toast = true)
|
||||||
|
{
|
||||||
|
if (m == null || m.claimed || !m.HasRewards) return;
|
||||||
|
m.claimed = true; m.read = true;
|
||||||
|
Grant(m.rewards.ToArray(), 0, toast);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DeleteMail(MailItem m)
|
||||||
|
{
|
||||||
|
if (m == null) return;
|
||||||
|
if (m.HasRewards && !m.claimed) { UIKit.Toast("Сначала заберите награду из письма"); return; }
|
||||||
|
Data.mail.Remove(m);
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ClaimAllMail()
|
||||||
|
{
|
||||||
|
var all = new List<RewardItem>();
|
||||||
|
foreach (var m in Data.mail)
|
||||||
|
{
|
||||||
|
m.read = true;
|
||||||
|
if (m.HasRewards && !m.claimed) { m.claimed = true; all.AddRange(m.rewards); }
|
||||||
|
}
|
||||||
|
if (all.Count > 0) Grant(all.ToArray()); else UIKit.Toast("Все письма прочитаны");
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DeleteReadMail()
|
||||||
|
{
|
||||||
|
int removed = Data.mail.RemoveAll(m => m.read && (!m.HasRewards || m.claimed));
|
||||||
|
UIKit.Toast(removed > 0 ? "Удалено писем: " + removed : "Нечего удалять");
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// МАГАЗИН
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public int BoughtToday(string id)
|
||||||
|
{
|
||||||
|
int i = Data.shopIds.IndexOf(id);
|
||||||
|
return i >= 0 ? Data.shopCounts[i] : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool CanBuy(ShopItemDef item)
|
||||||
|
{
|
||||||
|
if (item.comingSoon) return false;
|
||||||
|
if (item.dailyLimit > 0 && BoughtToday(item.id) >= item.dailyLimit) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Buy(ShopItemDef item)
|
||||||
|
{
|
||||||
|
if (item.comingSoon) { UIKit.Toast("Покупки за реальные деньги появятся позже"); return; }
|
||||||
|
if (!CanBuy(item)) { UIKit.Toast("Лимит на сегодня исчерпан"); return; }
|
||||||
|
if (item.price > 0 && !Pay(new[] { new RewardItem(item.priceType, item.price) })) return;
|
||||||
|
|
||||||
|
int i = Data.shopIds.IndexOf(item.id);
|
||||||
|
if (i < 0) { Data.shopIds.Add(item.id); Data.shopCounts.Add(1); } else Data.shopCounts[i]++;
|
||||||
|
|
||||||
|
RewardItem[] gives = item.gives;
|
||||||
|
if (item.id == "free_chest")
|
||||||
|
gives = new[] { GameData.FreeChestPool[UnityEngine.Random.Range(0, GameData.FreeChestPool.Length)] };
|
||||||
|
Grant(gives);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool FreeChestAvailable { get { return BoughtToday("free_chest") == 0; } }
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ГЕРОЙ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public int HeroMaxLevel { get { return GameData.HeroMaxLevel(TownHallLevel); } }
|
||||||
|
public bool HasHeroSkill(int index) { return Data.heroLevel >= GameData.HeroSkillLevels[index]; }
|
||||||
|
public bool CanUpgradeHero { get { return Data.heroLevel < HeroMaxLevel && CanAfford(GameData.HeroUpgradeCost(Data.heroLevel)); } }
|
||||||
|
|
||||||
|
public void UpgradeHero()
|
||||||
|
{
|
||||||
|
if (Data.heroLevel >= HeroMaxLevel)
|
||||||
|
{
|
||||||
|
UIKit.Toast("Улучшите Ратушу, чтобы поднять предел уровня героя");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Pay(GameData.HeroUpgradeCost(Data.heroLevel))) return;
|
||||||
|
Data.heroLevel++;
|
||||||
|
AddXp(10);
|
||||||
|
UIKit.Toast("Герой достиг " + Data.heroLevel + " уровня!");
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// ВОЙСКА
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
// Войска хранит модуль Армии (Docs/Modules/Army.md) -- здесь только обращение к нему
|
||||||
|
static IArmy Army => GameServices.Get<IArmy>();
|
||||||
|
|
||||||
|
public int TroopCount(int type) { return Army.GetTroops(type); }
|
||||||
|
|
||||||
|
public int TotalTroops
|
||||||
|
{
|
||||||
|
get { return Army.SoldiersAtHome; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TroopUnlocked(int index) { return TownHallLevel >= GameData.Troops[index].requiredTownHall; }
|
||||||
|
|
||||||
|
public void Train(int index, int count)
|
||||||
|
{
|
||||||
|
var def = GameData.Troops[index];
|
||||||
|
if (!TroopUnlocked(index)) { UIKit.Toast("Нужна Ратуша " + def.requiredTownHall + " уровня"); return; }
|
||||||
|
if (Barracks.Count == 0) { UIKit.Toast("Сначала постройте Казармы"); return; }
|
||||||
|
if (Data.training.Count >= Barracks.QueueSize) { UIKit.Toast("Очередь обучения заполнена. Больше казарм -- длиннее очередь"); return; }
|
||||||
|
if (!Pay(def.cost, count)) return;
|
||||||
|
|
||||||
|
long start = Data.training.Count > 0 ? Data.training[Data.training.Count - 1].endTicks : Now;
|
||||||
|
if (start < Now) start = Now;
|
||||||
|
long end = start + TimeSpan.FromSeconds(def.secondsPerUnit * count).Ticks;
|
||||||
|
Data.training.Add(new TrainingOrder { troopIndex = index, count = count, startTicks = start, endTicks = end });
|
||||||
|
UIKit.Toast("Обучение начато: " + count + " × " + def.name);
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public double TrainingSecondsLeft(TrainingOrder o) { return TimeSpan.FromTicks(Math.Max(0, o.endTicks - Now)).TotalSeconds; }
|
||||||
|
|
||||||
|
public float TrainingProgress(TrainingOrder o)
|
||||||
|
{
|
||||||
|
long total = o.endTicks - o.startTicks;
|
||||||
|
if (total <= 0) return 1f;
|
||||||
|
return Mathf.Clamp01((float)(Now - o.startTicks) / total);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int SpeedUpCost
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Data.training.Count == 0) return 0;
|
||||||
|
double secs = TrainingSecondsLeft(Data.training[Data.training.Count - 1]);
|
||||||
|
return Mathf.Max(1, Mathf.CeilToInt((float)secs / 30f)); // 1 кристалл за 30 сек
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SpeedUpTraining()
|
||||||
|
{
|
||||||
|
if (Data.training.Count == 0) return;
|
||||||
|
if (!Pay(new[] { new RewardItem(ResourceType.Gems, SpeedUpCost) })) return;
|
||||||
|
foreach (var o in Data.training) o.endTicks = Now;
|
||||||
|
ProcessTraining();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProcessTraining()
|
||||||
|
{
|
||||||
|
bool any = false;
|
||||||
|
while (Data.training.Count > 0 && Data.training[0].endTicks <= Now)
|
||||||
|
{
|
||||||
|
var o = Data.training[0];
|
||||||
|
Data.training.RemoveAt(0);
|
||||||
|
Army.AddTroops(o.troopIndex, o.count);
|
||||||
|
Data.troopsTrained += o.count;
|
||||||
|
Data.dailyTroops += o.count;
|
||||||
|
Data.eventTroopRemainder += o.count;
|
||||||
|
AddEventPoints(Data.eventTroopRemainder / 5);
|
||||||
|
Data.eventTroopRemainder %= 5;
|
||||||
|
UIKit.Toast("Обучено: " + o.count + " × " + GameData.Troops[o.troopIndex].name);
|
||||||
|
any = true;
|
||||||
|
}
|
||||||
|
if (any) MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Потери в бою: убираем процент от каждого типа войск
|
||||||
|
int LoseTroops(float fraction)
|
||||||
|
{
|
||||||
|
if (HasHeroSkill(3)) fraction *= 0.8f;
|
||||||
|
return Army.LoseFraction(fraction);
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// БОЙ (кампания)
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public static float WinChance(int myPower, int enemyPower)
|
||||||
|
{
|
||||||
|
if (myPower <= 0) return 0f;
|
||||||
|
float ratio = (float)myPower / Mathf.Max(1, enemyPower);
|
||||||
|
if (ratio >= 2f) return 1f;
|
||||||
|
return Mathf.Clamp(0.5f + (ratio - 1f) * 1.25f, 0.03f, 0.97f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BattleResult
|
||||||
|
{
|
||||||
|
public bool win;
|
||||||
|
public string enemy;
|
||||||
|
public int stage;
|
||||||
|
public RewardItem[] rewards;
|
||||||
|
public int xp;
|
||||||
|
public int lost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BattleResult FightStage()
|
||||||
|
{
|
||||||
|
if (TotalTroops == 0) { UIKit.Toast("Нет войск! Обучите их во вкладке «Войска»"); return null; }
|
||||||
|
|
||||||
|
int stage = Data.battleStage;
|
||||||
|
float chance = WinChance(ArmyPower, GameData.StageEnemyPower(stage));
|
||||||
|
var res = new BattleResult { stage = stage, enemy = GameData.StageName(stage) };
|
||||||
|
res.win = UnityEngine.Random.value < chance;
|
||||||
|
|
||||||
|
if (res.win)
|
||||||
|
{
|
||||||
|
float bonus = HasHeroSkill(2) ? 1.1f : 1f;
|
||||||
|
var list = new List<RewardItem>();
|
||||||
|
foreach (var r in GameData.StageRewards(stage)) list.Add(new RewardItem(r.type, Mathf.RoundToInt(r.amount * bonus)));
|
||||||
|
int gems = GameData.StageGems(stage);
|
||||||
|
if (gems > 0) list.Add(new RewardItem(ResourceType.Gems, gems));
|
||||||
|
res.rewards = list.ToArray();
|
||||||
|
res.xp = GameData.StageXp(stage);
|
||||||
|
res.lost = LoseTroops(UnityEngine.Random.Range(0.05f, 0.12f));
|
||||||
|
Data.battleStage++;
|
||||||
|
Data.battlesWon++;
|
||||||
|
Data.dailyBattles++;
|
||||||
|
AddEventPoints(10);
|
||||||
|
Grant(res.rewards, res.xp, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res.rewards = new RewardItem[0];
|
||||||
|
res.lost = LoseTroops(UnityEngine.Random.Range(0.2f, 0.3f));
|
||||||
|
Data.battlesLost++;
|
||||||
|
AddXp(5);
|
||||||
|
}
|
||||||
|
MarkChanged();
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// АРЕНА
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public int ArenaTickets
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
RefreshTickets();
|
||||||
|
return Data.arenaTickets;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RefreshTickets()
|
||||||
|
{
|
||||||
|
if (Data.arenaTickets >= GameData.ArenaMaxTickets) return;
|
||||||
|
long period = TimeSpan.FromMinutes(GameData.ArenaTicketMinutes).Ticks;
|
||||||
|
long elapsed = Now - Data.arenaTicketTicks;
|
||||||
|
if (elapsed < period) return;
|
||||||
|
int gained = (int)(elapsed / period);
|
||||||
|
Data.arenaTickets = Mathf.Min(GameData.ArenaMaxTickets, Data.arenaTickets + gained);
|
||||||
|
Data.arenaTicketTicks += gained * period;
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public double SecondsToNextTicket
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Data.arenaTickets >= GameData.ArenaMaxTickets) return 0;
|
||||||
|
long period = TimeSpan.FromMinutes(GameData.ArenaTicketMinutes).Ticks;
|
||||||
|
return TimeSpan.FromTicks(Math.Max(0, Data.arenaTicketTicks + period - Now)).TotalSeconds;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ArenaOpponent> ArenaOpponents
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Data.arenaOpponents.Count == 0) GenerateOpponents();
|
||||||
|
return Data.arenaOpponents;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GenerateOpponents()
|
||||||
|
{
|
||||||
|
Data.arenaOpponents.Clear();
|
||||||
|
int baseP = Mathf.Max(150, ArmyPower);
|
||||||
|
float[] mult = { 0.75f, 1.0f, 1.3f }; // лёгкий, равный, сильный
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
Data.arenaOpponents.Add(new ArenaOpponent
|
||||||
|
{
|
||||||
|
name = GameData.BotNames[UnityEngine.Random.Range(0, GameData.BotNames.Length)],
|
||||||
|
power = Mathf.RoundToInt(baseP * mult[i] * UnityEngine.Random.Range(0.9f, 1.1f)),
|
||||||
|
rating = Mathf.Max(0, Data.arenaRating + (i - 1) * 60 + UnityEngine.Random.Range(-25, 26)),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ArenaResult { public bool win; public string opponent; public int ratingChange; public RewardItem[] rewards; }
|
||||||
|
|
||||||
|
public ArenaResult FightArena(int index)
|
||||||
|
{
|
||||||
|
if (TotalTroops == 0) { UIKit.Toast("Нет войск! Обучите их во вкладке «Войска»"); return null; }
|
||||||
|
if (ArenaTickets <= 0) { UIKit.Toast("Нет билетов. Следующий через " + GameData.FormatTime(SecondsToNextTicket)); return null; }
|
||||||
|
var opp = ArenaOpponents[index];
|
||||||
|
|
||||||
|
if (Data.arenaTickets == GameData.ArenaMaxTickets) Data.arenaTicketTicks = Now;
|
||||||
|
Data.arenaTickets--;
|
||||||
|
|
||||||
|
var res = new ArenaResult { opponent = opp.name };
|
||||||
|
res.win = UnityEngine.Random.value < WinChance(ArmyPower, opp.power);
|
||||||
|
Data.arenaFights++;
|
||||||
|
Data.dailyArena++;
|
||||||
|
AddEventPoints(5);
|
||||||
|
|
||||||
|
if (res.win)
|
||||||
|
{
|
||||||
|
res.ratingChange = 15 + Mathf.Clamp((opp.rating - Data.arenaRating) / 10, 0, 15) + UnityEngine.Random.Range(0, 6);
|
||||||
|
res.rewards = new[] { new RewardItem(ResourceType.Gold, 150), new RewardItem(ResourceType.Gems, 5) };
|
||||||
|
Data.arenaWins++;
|
||||||
|
Grant(res.rewards, 15, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res.ratingChange = -UnityEngine.Random.Range(8, 15);
|
||||||
|
res.rewards = new RewardItem[0];
|
||||||
|
AddXp(5);
|
||||||
|
}
|
||||||
|
Data.arenaRating = Mathf.Max(0, Data.arenaRating + res.ratingChange);
|
||||||
|
GenerateOpponents();
|
||||||
|
MarkChanged();
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Таблица лидеров: стабильные боты (зависят от ID игрока) + сам игрок
|
||||||
|
public List<ArenaOpponent> Leaderboard()
|
||||||
|
{
|
||||||
|
var list = new List<ArenaOpponent>();
|
||||||
|
int seed;
|
||||||
|
int.TryParse(Data.playerId, out seed); // ID из цифр -> одинаковая таблица при каждом запуске
|
||||||
|
var rnd = new System.Random(seed);
|
||||||
|
for (int i = 0; i < 15; i++)
|
||||||
|
{
|
||||||
|
list.Add(new ArenaOpponent
|
||||||
|
{
|
||||||
|
name = GameData.BotNames[rnd.Next(GameData.BotNames.Length)] + rnd.Next(10, 99),
|
||||||
|
rating = 2300 - i * 90 - rnd.Next(0, 60),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
list.Add(new ArenaOpponent { name = Data.playerName + " (вы)", rating = Data.arenaRating, power = -1 });
|
||||||
|
list.Sort((a, b) => b.rating.CompareTo(a.rating));
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// СОБЫТИЕ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public void AddEventPoints(int points)
|
||||||
|
{
|
||||||
|
if (points <= 0) return;
|
||||||
|
EnsureDailyAndWeekly();
|
||||||
|
Data.eventPoints += points;
|
||||||
|
MarkChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EventTierClaimed(int i) { return Data.eventClaimed.Contains(i); }
|
||||||
|
public bool EventTierReady(int i) { return Data.eventPoints >= GameData.EventTiers[i] && !EventTierClaimed(i); }
|
||||||
|
|
||||||
|
public void ClaimEventTier(int i)
|
||||||
|
{
|
||||||
|
if (!EventTierReady(i)) return;
|
||||||
|
Data.eventClaimed.Add(i);
|
||||||
|
Grant(GameData.EventTierRewards[i], 20);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AnyEventTierReady
|
||||||
|
{
|
||||||
|
get { for (int i = 0; i < GameData.EventTiers.Length; i++) if (EventTierReady(i)) return true; return false; }
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// НАСТРОЙКИ
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public void ApplySettings()
|
||||||
|
{
|
||||||
|
AudioListener.volume = Data.soundVolume;
|
||||||
|
int count = QualitySettings.names.Length;
|
||||||
|
if (count > 0)
|
||||||
|
{
|
||||||
|
int level = Data.quality == 0 ? 0 : (Data.quality == 1 ? count / 2 : count - 1);
|
||||||
|
QualitySettings.SetQualityLevel(level, true);
|
||||||
|
}
|
||||||
|
Application.targetFrameRate = Data.fps60 ? 60 : 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Vibrate()
|
||||||
|
{
|
||||||
|
#if UNITY_ANDROID || UNITY_IOS
|
||||||
|
if (Data.vibration) Handheld.Vibrate();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================================================
|
||||||
|
// КРАСНЫЕ ЗНАЧКИ НА КНОПКАХ HUD
|
||||||
|
// =====================================================================
|
||||||
|
|
||||||
|
public int BadgeCount(string panelId)
|
||||||
|
{
|
||||||
|
switch (panelId)
|
||||||
|
{
|
||||||
|
case "Quests": return ClaimableQuestsCount;
|
||||||
|
case "Rewards": return CanClaimLogin ? 1 : 0;
|
||||||
|
case "Mail": return UnreadMailCount;
|
||||||
|
case "Events": return AnyEventTierReady ? 1 : 0;
|
||||||
|
case "Shop": return FreeChestAvailable ? 1 : 0;
|
||||||
|
case "Hero": return CanUpgradeHero ? 1 : 0;
|
||||||
|
case "Arena": return ArenaTickets >= GameData.ArenaMaxTickets ? 1 : 0;
|
||||||
|
case "World": return Data.marches.Count;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5b23537588a39f74cabea0bb5b6f4ca5
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
// Всё, что сохраняется в progress.json (отдельно от save.json с ресурсами и зданиями).
|
||||||
|
// JsonUtility умеет: числа, строки, bool, массивы, List<> из [Serializable]-классов.
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class MailItem
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public string title;
|
||||||
|
public string body;
|
||||||
|
public long sentTicks;
|
||||||
|
public bool read;
|
||||||
|
public bool claimed;
|
||||||
|
public List<RewardItem> rewards = new List<RewardItem>();
|
||||||
|
public bool HasRewards { get { return rewards != null && rewards.Count > 0; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class TrainingOrder
|
||||||
|
{
|
||||||
|
public int troopIndex;
|
||||||
|
public int count;
|
||||||
|
public long startTicks;
|
||||||
|
public long endTicks;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class ArenaOpponent
|
||||||
|
{
|
||||||
|
public string name;
|
||||||
|
public int power;
|
||||||
|
public int rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class ProgressData
|
||||||
|
{
|
||||||
|
// --- Профиль ---
|
||||||
|
public string playerName = "Командир";
|
||||||
|
public string playerId = "";
|
||||||
|
public int avatarIndex = 0;
|
||||||
|
public int level = 1;
|
||||||
|
public int xp = 0;
|
||||||
|
public long firstLaunchTicks = 0;
|
||||||
|
public int daysPlayed = 0;
|
||||||
|
public int lastLoginDay = -1;
|
||||||
|
|
||||||
|
// --- Настройки ---
|
||||||
|
public float musicVolume = 0.8f;
|
||||||
|
public float soundVolume = 0.8f;
|
||||||
|
public bool vibration = true;
|
||||||
|
public bool notifications = true;
|
||||||
|
public int quality = 1; // 0 низкое, 1 среднее, 2 высокое
|
||||||
|
public bool fps60 = true;
|
||||||
|
|
||||||
|
// --- Статистика (для профиля и заданий) ---
|
||||||
|
public float[] collected = new float[8]; // индекс = (int)ResourceType
|
||||||
|
public int battlesWon;
|
||||||
|
public int battlesLost;
|
||||||
|
public int troopsTrained;
|
||||||
|
public int arenaFights;
|
||||||
|
public int arenaWins;
|
||||||
|
public int questsDone;
|
||||||
|
|
||||||
|
// --- Задания ---
|
||||||
|
public List<string> claimedQuests = new List<string>();
|
||||||
|
public int dailyDay = -1;
|
||||||
|
public List<string> claimedDaily = new List<string>();
|
||||||
|
public float[] dailyCollected = new float[8];
|
||||||
|
public int dailyBattles;
|
||||||
|
public int dailyTroops;
|
||||||
|
public int dailyArena;
|
||||||
|
public int dailyMarches;
|
||||||
|
|
||||||
|
// --- Награда за вход ---
|
||||||
|
public int loginRewardIndex = 0; // какой день из 7 следующий
|
||||||
|
public int lastLoginRewardDay = -1;
|
||||||
|
|
||||||
|
// --- Почта ---
|
||||||
|
public List<MailItem> mail = new List<MailItem>();
|
||||||
|
public int nextMailId = 1;
|
||||||
|
public bool starterMailSent;
|
||||||
|
|
||||||
|
// --- Магазин ---
|
||||||
|
public int shopDay = -1;
|
||||||
|
public List<string> shopIds = new List<string>();
|
||||||
|
public List<int> shopCounts = new List<int>();
|
||||||
|
|
||||||
|
// --- Герой ---
|
||||||
|
public int heroLevel = 1;
|
||||||
|
|
||||||
|
// --- Войска ---
|
||||||
|
// Войска теперь хранит модуль Армии (save.json, секция "army"). Это поле -- только для переноса
|
||||||
|
// из старых сохранений: при первой загрузке его читает App/GameModules, потом оно обнуляется.
|
||||||
|
public int[] troops = new int[4];
|
||||||
|
public bool armyInModule; // войска уже перенесены в модуль Армии
|
||||||
|
public List<TrainingOrder> training = new List<TrainingOrder>();
|
||||||
|
|
||||||
|
// --- Бой (кампания) ---
|
||||||
|
public int battleStage = 1;
|
||||||
|
|
||||||
|
// --- Арена ---
|
||||||
|
public int arenaRating = 1000;
|
||||||
|
public int arenaTickets = 5;
|
||||||
|
public long arenaTicketTicks = 0;
|
||||||
|
public List<ArenaOpponent> arenaOpponents = new List<ArenaOpponent>();
|
||||||
|
|
||||||
|
// --- Карта мира (статистика для заданий; походы ведёт модуль Мира) ---
|
||||||
|
// Старая маленькая карта (панель "МИР", Meta/World) удалена 19.10.2026 -- осталась одна большая карта.
|
||||||
|
// marches оставлено только для переноса: солдаты из её походов возвращаются в город при загрузке.
|
||||||
|
public List<LegacyWorldMarch> marches = new List<LegacyWorldMarch>();
|
||||||
|
public int marchesSent;
|
||||||
|
public int worldWins;
|
||||||
|
public int worldLosses;
|
||||||
|
|
||||||
|
// --- Карта мира (сцена WorldMap) ---
|
||||||
|
public List<Bogatyri.World.MarchData> sashaMarches = new List<Bogatyri.World.MarchData>();
|
||||||
|
public List<LegacyMarchUnits> sashaMarchUnits = new List<LegacyMarchUnits>(); // только для переноса в модуль Армии
|
||||||
|
|
||||||
|
// --- Событие ---
|
||||||
|
public int eventWeek = -1;
|
||||||
|
public int eventPoints;
|
||||||
|
public int eventTroopRemainder;
|
||||||
|
public List<int> eventClaimed = new List<int>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Поход старой маленькой карты -- только чтобы при загрузке вернуть солдат в город (см. GameProgress.FixData)
|
||||||
|
[Serializable]
|
||||||
|
public class LegacyWorldMarch
|
||||||
|
{
|
||||||
|
public int[] units = new int[4]; // отправлено
|
||||||
|
public int[] survivors = new int[4]; // вернутся домой
|
||||||
|
public bool returning;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Состав похода из старого progress.json (раньше хранил мост ArmyBridge) -- только для переноса в модуль Армии
|
||||||
|
[Serializable]
|
||||||
|
public class LegacyMarchUnits
|
||||||
|
{
|
||||||
|
public int marchId;
|
||||||
|
public int[] units = new int[4];
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5573100d4811a00429946a55af8f0204
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 83ba3a90e5d8dbe44a8658c267eab743
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// АРЕНА: бои с другими "игроками" (пока боты) за рейтинг. Билеты: 5 штук, 1 восстанавливается за 20 минут.
|
||||||
|
// Вкладка "Рейтинг" -- таблица лидеров и ваше место. Лиги: Бронза -> Серебро -> Золото -> Платина -> Алмаз.
|
||||||
|
public class ArenaPanel : BasePanel
|
||||||
|
{
|
||||||
|
int tab;
|
||||||
|
TextMeshProUGUI ticketsText;
|
||||||
|
|
||||||
|
protected override void Build(RectTransform root)
|
||||||
|
{
|
||||||
|
var col = UIKit.Card(root, new Color(0, 0, 0, 0), 0, 12);
|
||||||
|
UIKit.Stretch(col);
|
||||||
|
UIKit.Tabs(col, new[] { "Бой", "Рейтинг" }, tab, i => { tab = i; RequestRebuild(); });
|
||||||
|
var holder = UIKit.Make("ListHolder", col);
|
||||||
|
UIKit.Size(holder, -1, -1).flexibleHeight = 1;
|
||||||
|
var list = ScrollList(holder);
|
||||||
|
ticketsText = null;
|
||||||
|
|
||||||
|
if (tab == 0) BuildFights(list); else BuildRating(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuildFights(RectTransform list)
|
||||||
|
{
|
||||||
|
var d = GP.Data;
|
||||||
|
int mine = GP.ArmyPower;
|
||||||
|
|
||||||
|
var head = UIKit.Card(list, new Color(0.15f, 0.2f, 0.35f));
|
||||||
|
UIKit.Text(head, "Рейтинг: " + d.arenaRating + " • Лига: " + GameData.ArenaLeague(d.arenaRating),
|
||||||
|
32, UIKit.Theme.Gold, TextAlignmentOptions.Center).fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(head, "Ваша сила: " + mine.ToString("N0") + " • Побед: " + d.arenaWins + " из " + d.arenaFights,
|
||||||
|
24, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
ticketsText = UIKit.Text(head, "", 28, UIKit.Theme.Text, TextAlignmentOptions.Center);
|
||||||
|
Tick();
|
||||||
|
|
||||||
|
if (GP.TotalTroops == 0)
|
||||||
|
{
|
||||||
|
UIKit.Text(list, "Для боёв на арене нужны войска.", 28, UIKit.Theme.Red, TextAlignmentOptions.Center, 60);
|
||||||
|
UIKit.Button(list, "Перейти к войскам", UIKit.Theme.Blue, () => OpenPanel("Troops"), -1, 90);
|
||||||
|
}
|
||||||
|
|
||||||
|
var opps = GP.ArenaOpponents;
|
||||||
|
string[] tags = { "Лёгкий", "Равный", "Сильный" };
|
||||||
|
for (int i = 0; i < opps.Count; i++)
|
||||||
|
{
|
||||||
|
int idx = i;
|
||||||
|
var o = opps[i];
|
||||||
|
float chance = GameProgress.WinChance(mine, o.power);
|
||||||
|
var card = UIKit.Card(list);
|
||||||
|
var row = UIKit.Row(card, 120, 16);
|
||||||
|
UIKit.Icon(row, ProfilePanel.AvatarColors[(o.name.Length + i) % ProfilePanel.AvatarColors.Length], o.name.Substring(0, 1), 110);
|
||||||
|
var info = UIKit.Card(row, new Color(0, 0, 0, 0), 0, 2);
|
||||||
|
UIKit.Size(info, -1, -1, 1);
|
||||||
|
UIKit.Text(info, o.name + " <size=22><color=#c8c8c8>" + (i < tags.Length ? tags[i] : "") + "</color></size>", 30).fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(info, "Сила " + o.power.ToString("N0") + " • рейтинг " + o.rating, 24, UIKit.Theme.TextDim);
|
||||||
|
Color cc = chance >= 0.7f ? UIKit.Theme.Green : (chance >= 0.4f ? UIKit.Theme.Gold : UIKit.Theme.Red);
|
||||||
|
UIKit.Text(info, "Шанс победы " + Mathf.RoundToInt(chance * 100) + "%", 24, cc);
|
||||||
|
|
||||||
|
bool can = GP.TotalTroops > 0 && GP.ArenaTickets > 0;
|
||||||
|
var b = UIKit.Button(row, "Атаковать", can ? UIKit.Theme.Red : UIKit.Theme.Gray, () => Fight(idx), 200, 90);
|
||||||
|
b.interactable = can;
|
||||||
|
}
|
||||||
|
|
||||||
|
UIKit.Button(list, "Обновить соперников", UIKit.Theme.Gray, () => GP.GenerateOpponents(), -1, 80);
|
||||||
|
UIKit.Text(list, "Победа: +15..35 рейтинга, 150 золота, 5 кристаллов. Поражение: -8..14 рейтинга.",
|
||||||
|
22, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuildRating(RectTransform list)
|
||||||
|
{
|
||||||
|
var board = GP.Leaderboard();
|
||||||
|
int myRank = board.FindIndex(e => e.power == -1) + 1;
|
||||||
|
UIKit.Text(list, "Ваше место: " + myRank + " из " + board.Count, 32, UIKit.Theme.Gold, TextAlignmentOptions.Center, 60)
|
||||||
|
.fontStyle = FontStyles.Bold;
|
||||||
|
|
||||||
|
for (int i = 0; i < board.Count; i++)
|
||||||
|
{
|
||||||
|
var e = board[i];
|
||||||
|
bool me = e.power == -1;
|
||||||
|
var row = UIKit.Row(list, 70, 14, me ? new Color(0.45f, 0.36f, 0.12f) : (i % 2 == 0 ? UIKit.Theme.Card : UIKit.Theme.CardDark), 10);
|
||||||
|
Color place = i == 0 ? UIKit.Theme.Gold : (i == 1 ? new Color(0.8f, 0.8f, 0.85f) : (i == 2 ? new Color(0.8f, 0.5f, 0.3f) : UIKit.Theme.TextDim));
|
||||||
|
UIKit.Size(UIKit.Text(row, (i + 1).ToString(), 30, place, TextAlignmentOptions.Center), 70);
|
||||||
|
var n = UIKit.Text(row, e.name, 28, me ? UIKit.Theme.Gold : UIKit.Theme.Text);
|
||||||
|
UIKit.Size(n, -1, -1, 1);
|
||||||
|
UIKit.Size(UIKit.Text(row, GameData.ArenaLeague(e.rating), 24, UIKit.Theme.TextDim, TextAlignmentOptions.Right), 140);
|
||||||
|
UIKit.Size(UIKit.Text(row, e.rating.ToString(), 28, UIKit.Theme.Text, TextAlignmentOptions.Right), 100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fight(int index)
|
||||||
|
{
|
||||||
|
var r = GP.FightArena(index);
|
||||||
|
if (r == null) return;
|
||||||
|
if (r.win)
|
||||||
|
UIKit.Message("ПОБЕДА!", "Вы победили игрока " + r.opponent + "!\n\nРейтинг: +" + r.ratingChange +
|
||||||
|
"\nНаграда: " + GameData.RewardsText(r.rewards) + ", 15 опыта", "Отлично");
|
||||||
|
else
|
||||||
|
UIKit.Message("Поражение", r.opponent + " оказался сильнее.\n\nРейтинг: " + r.ratingChange, "Понятно");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Tick()
|
||||||
|
{
|
||||||
|
if (ticketsText == null) return;
|
||||||
|
int t = GP.ArenaTickets;
|
||||||
|
string next = t < GameData.ArenaMaxTickets ? " • +1 через " + GameData.FormatTime(GP.SecondsToNextTicket) : "";
|
||||||
|
ticketsText.text = "Билеты: " + t + " / " + GameData.ArenaMaxTickets + next;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 78b7d6900d49bfd449f67923e9f74315
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// БОЙ: кампания из этапов. Сила армии против силы врага -> шанс победы.
|
||||||
|
// Победа: ресурсы, опыт, следующий этап, небольшие потери. Поражение: большие потери войск.
|
||||||
|
public class BattlePanel : BasePanel
|
||||||
|
{
|
||||||
|
protected override void Build(RectTransform root)
|
||||||
|
{
|
||||||
|
var d = GP.Data;
|
||||||
|
int stage = d.battleStage;
|
||||||
|
int enemy = GameData.StageEnemyPower(stage);
|
||||||
|
int mine = GP.ArmyPower;
|
||||||
|
float chance = GameProgress.WinChance(mine, enemy);
|
||||||
|
var list = ScrollList(root);
|
||||||
|
|
||||||
|
// --- Моя армия ---
|
||||||
|
var army = UIKit.Card(list, UIKit.Theme.CardDark);
|
||||||
|
var ar = UIKit.Row(army, 60, 10);
|
||||||
|
var at = UIKit.Text(ar, "Ваша армия: " + mine.ToString("N0"), 32, UIKit.Theme.Text);
|
||||||
|
at.fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Size(at, -1, -1, 1);
|
||||||
|
UIKit.Size(UIKit.Button(ar, "Войска", UIKit.Theme.Gray, () => OpenPanel("Troops"), 160, 60, 24), 160, 60);
|
||||||
|
UIKit.Text(army, "Воинов: " + GP.TotalTroops.ToString("N0") + " • Герой " + d.heroLevel + " ур. (+" +
|
||||||
|
Mathf.RoundToInt(GP.ArmyBonus * 100) + "%)", 24, UIKit.Theme.TextDim);
|
||||||
|
|
||||||
|
// --- Глобальная карта ---
|
||||||
|
var world = UIKit.Card(list, new Color(0.16f, 0.27f, 0.17f));
|
||||||
|
UIKit.Text(world, "Карта мира: отправляйте армию грабить поселения и приносите добычу домой.", 24, UIKit.Theme.Text);
|
||||||
|
UIKit.Button(world, "ОТКРЫТЬ КАРТУ МИРА", UIKit.Theme.Green, () => OpenPanel("World"), -1, 90, 30);
|
||||||
|
|
||||||
|
// --- Текущий этап ---
|
||||||
|
var card = UIKit.Card(list, new Color(0.3f, 0.14f, 0.13f), 24, 12);
|
||||||
|
UIKit.Text(card, "ЭТАП " + stage, 28, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
UIKit.Text(card, GameData.StageName(stage), 42, UIKit.Theme.Gold, TextAlignmentOptions.Center).fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(card, "Сила врага: " + enemy.ToString("N0"), 32, UIKit.Theme.Text, TextAlignmentOptions.Center);
|
||||||
|
|
||||||
|
Color cc = chance >= 0.7f ? UIKit.Theme.Green : (chance >= 0.4f ? UIKit.Theme.Gold : UIKit.Theme.Red);
|
||||||
|
UIKit.Bar(card, chance, cc, 40, "Шанс победы: " + Mathf.RoundToInt(chance * 100) + "%");
|
||||||
|
|
||||||
|
string rewards = GameData.RewardsText(GameData.StageRewards(stage)) + ", " + GameData.StageXp(stage) + " опыта";
|
||||||
|
if (GameData.StageGems(stage) > 0) rewards += ", " + GameData.StageGems(stage) + " кристаллов";
|
||||||
|
UIKit.Text(card, "Награда: " + rewards, 26, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
|
||||||
|
if (GP.TotalTroops == 0)
|
||||||
|
{
|
||||||
|
UIKit.Text(card, "У вас нет войск! Сначала обучите их.", 28, UIKit.Theme.Red, TextAlignmentOptions.Center);
|
||||||
|
UIKit.Button(card, "Перейти к войскам", UIKit.Theme.Blue, () => OpenPanel("Troops"), -1, 100, 32);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UIKit.Button(card, "В БОЙ!", UIKit.Theme.Red, Fight, -1, 120, 44);
|
||||||
|
if (chance < 0.4f)
|
||||||
|
UIKit.Text(card, "Совет: обучите больше войск или улучшите героя.", 24, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Следующие этапы ---
|
||||||
|
var next = UIKit.Card(list);
|
||||||
|
ProfilePanel.Header(next, "Впереди");
|
||||||
|
for (int s = stage + 1; s <= stage + 4; s++)
|
||||||
|
{
|
||||||
|
string extra = GameData.StageGems(s) > 0 ? " • кристаллы" : "";
|
||||||
|
ProfilePanel.KV(next, s + ". " + GameData.StageName(s), "сила " + GameData.StageEnemyPower(s).ToString("N0") + extra);
|
||||||
|
}
|
||||||
|
UIKit.Text(next, "Пройдено этапов: " + (stage - 1) + " • Побед: " + d.battlesWon + " • Поражений: " + d.battlesLost,
|
||||||
|
24, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fight()
|
||||||
|
{
|
||||||
|
var r = GP.FightStage();
|
||||||
|
if (r == null) return;
|
||||||
|
if (r.win)
|
||||||
|
{
|
||||||
|
UIKit.Message("ПОБЕДА!",
|
||||||
|
r.enemy + " повержен!\n\nНаграда: " + GameData.RewardsText(r.rewards) + ", " + r.xp + " опыта\n" +
|
||||||
|
"Потери: " + r.lost + " воинов", "Отлично");
|
||||||
|
GP.Vibrate();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UIKit.Message("Поражение",
|
||||||
|
"Армия отступила от «" + r.enemy + "».\n\nПотери: " + r.lost + " воинов\n\n" +
|
||||||
|
"Обучите больше войск или улучшите героя и попробуйте снова.", "Понятно");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 619f3860f6abf3343882e23cfae60c1b
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// СОБЫТИЯ: еженедельное событие "Сбор войск". Очки за бои, арену, задания, обучение войск.
|
||||||
|
// Пороги очков открывают награды. В понедельник всё обнуляется -- новое событие.
|
||||||
|
public class EventsPanel : BasePanel
|
||||||
|
{
|
||||||
|
TextMeshProUGUI timer;
|
||||||
|
|
||||||
|
protected override void Build(RectTransform root)
|
||||||
|
{
|
||||||
|
var d = GP.Data;
|
||||||
|
var list = ScrollList(root);
|
||||||
|
|
||||||
|
var head = UIKit.Card(list, new Color(0.35f, 0.18f, 0.12f));
|
||||||
|
var title = UIKit.Text(head, GameData.EventTitle, 44, UIKit.Theme.Gold, TextAlignmentOptions.Center);
|
||||||
|
title.fontStyle = FontStyles.Bold;
|
||||||
|
timer = UIKit.Text(head, "", 26, UIKit.Theme.Text, TextAlignmentOptions.Center);
|
||||||
|
Tick();
|
||||||
|
UIKit.Text(head, GameData.EventDescription, 24, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
|
||||||
|
int maxPoints = GameData.EventTiers[GameData.EventTiers.Length - 1];
|
||||||
|
var prog = UIKit.Card(list);
|
||||||
|
UIKit.Text(prog, "Ваши очки: " + d.eventPoints, 34, UIKit.Theme.Text, TextAlignmentOptions.Center).fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Bar(prog, (float)d.eventPoints / maxPoints, UIKit.Theme.Gold, 34, d.eventPoints + " / " + maxPoints);
|
||||||
|
|
||||||
|
for (int i = 0; i < GameData.EventTiers.Length; i++)
|
||||||
|
{
|
||||||
|
int idx = i;
|
||||||
|
bool claimed = GP.EventTierClaimed(i);
|
||||||
|
bool ready = GP.EventTierReady(i);
|
||||||
|
|
||||||
|
var card = UIKit.Card(list, ready ? UIKit.Theme.CardDone : (claimed ? UIKit.Theme.CardDark : UIKit.Theme.Card));
|
||||||
|
var row = UIKit.Row(card, 100, 14);
|
||||||
|
UIKit.Icon(row, ready ? UIKit.Theme.Green : UIKit.Theme.Gray, (i + 1).ToString(), 90);
|
||||||
|
var info = UIKit.Card(row, new Color(0, 0, 0, 0), 0, 4);
|
||||||
|
UIKit.Size(info, -1, -1, 1);
|
||||||
|
UIKit.Text(info, GameData.EventTiers[i] + " очков", 30).fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(info, GameData.RewardsText(GameData.EventTierRewards[i]) + ", 20 опыта", 24, UIKit.Theme.TextDim);
|
||||||
|
|
||||||
|
string label = claimed ? "Получено" : (ready ? "Забрать" : "Нужно ещё " + (GameData.EventTiers[i] - d.eventPoints));
|
||||||
|
var b = UIKit.Button(row, label, ready ? UIKit.Theme.Green : UIKit.Theme.Gray, () => GP.ClaimEventTier(idx), 230, 90, 24);
|
||||||
|
b.interactable = ready;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Быстрые переходы к источникам очков
|
||||||
|
var go = UIKit.Card(list, UIKit.Theme.CardDark);
|
||||||
|
UIKit.Text(go, "Где заработать очки:", 28, UIKit.Theme.TextDim);
|
||||||
|
var r = UIKit.Row(go, 80, 10);
|
||||||
|
UIKit.Size(UIKit.Button(r, "Бой", UIKit.Theme.Red, () => OpenPanel("Battle")), -1, 80, 1);
|
||||||
|
UIKit.Size(UIKit.Button(r, "Арена", UIKit.Theme.Blue, () => OpenPanel("Arena")), -1, 80, 1);
|
||||||
|
UIKit.Size(UIKit.Button(r, "Войска", UIKit.Theme.Gray, () => OpenPanel("Troops")), -1, 80, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Tick()
|
||||||
|
{
|
||||||
|
if (timer != null) timer.text = "До конца события: " + GameData.FormatTime(GameProgress.SecondsToWeekEnd);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 35abdf9dc29995549b2c60dc6e2da580
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// ГЕРОЙ: уровень, характеристики, бонус к армии, прокачка за золото и еду, навыки.
|
||||||
|
// Предел уровня героя = Ратуша * 5 -- чтобы качать героя дальше, нужно улучшать Ратушу.
|
||||||
|
public class HeroPanel : BasePanel
|
||||||
|
{
|
||||||
|
protected override void Build(RectTransform root)
|
||||||
|
{
|
||||||
|
var d = GP.Data;
|
||||||
|
int lvl = d.heroLevel;
|
||||||
|
int maxLvl = GP.HeroMaxLevel;
|
||||||
|
var list = ScrollList(root);
|
||||||
|
|
||||||
|
// --- Портрет и уровень ---
|
||||||
|
var head = UIKit.Card(list, UIKit.Theme.CardDark);
|
||||||
|
var row = UIKit.Row(head, 180, 20);
|
||||||
|
UIKit.Icon(row, new Color(0.55f, 0.4f, 0.2f), "Г", 180);
|
||||||
|
var info = UIKit.Card(row, new Color(0, 0, 0, 0), 0, 6);
|
||||||
|
UIKit.Size(info, -1, -1, 1);
|
||||||
|
UIKit.Text(info, "Верховный командир", 36, UIKit.Theme.Gold).fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(info, "Уровень " + lvl + " / " + maxLvl, 30);
|
||||||
|
UIKit.Text(info, "Сила героя: " + GameData.HeroPower(lvl), 26, UIKit.Theme.TextDim);
|
||||||
|
UIKit.Bar(head, (float)lvl / GameData.HeroMaxLevel(10), UIKit.Theme.Gold, 24, "Прогресс к максимуму: " + lvl + " / " + GameData.HeroMaxLevel(10));
|
||||||
|
|
||||||
|
// --- Характеристики ---
|
||||||
|
var stats = UIKit.Card(list);
|
||||||
|
ProfilePanel.Header(stats, "Характеристики");
|
||||||
|
StatRow(stats, "Атака", GameData.HeroAttack(lvl), GameData.HeroAttack(lvl + 1));
|
||||||
|
StatRow(stats, "Защита", GameData.HeroDefense(lvl), GameData.HeroDefense(lvl + 1));
|
||||||
|
StatRow(stats, "Бонус к силе армии, %", GameData.HeroArmyBonusPercent(lvl), GameData.HeroArmyBonusPercent(lvl + 1));
|
||||||
|
StatRow(stats, "Сила героя", GameData.HeroPower(lvl), GameData.HeroPower(lvl + 1));
|
||||||
|
ProfilePanel.KV(stats, "Итоговый бонус армии", "+" + Mathf.RoundToInt(GP.ArmyBonus * 100) + "%");
|
||||||
|
|
||||||
|
// --- Улучшение ---
|
||||||
|
var up = UIKit.Card(list, UIKit.Theme.Card);
|
||||||
|
ProfilePanel.Header(up, "Улучшение");
|
||||||
|
if (lvl >= maxLvl)
|
||||||
|
{
|
||||||
|
UIKit.Text(up, "Достигнут предел уровня. Улучшите Ратушу до " + (GP.TownHallLevel + 1) +
|
||||||
|
" уровня, чтобы поднять предел до " + GameData.HeroMaxLevel(GP.TownHallLevel + 1) + ".", 28, UIKit.Theme.TextDim);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var cost = GameData.HeroUpgradeCost(lvl);
|
||||||
|
foreach (var c in cost)
|
||||||
|
{
|
||||||
|
bool enough = GP.Res(c.type) >= c.amount;
|
||||||
|
ProfilePanel.KV(up, GameData.ResName(c.type),
|
||||||
|
"<color=" + (enough ? "#9be59b" : "#ff7a7a") + ">" + c.amount.ToString("N0") + "</color> / " +
|
||||||
|
Mathf.FloorToInt(GP.Res(c.type)).ToString("N0"));
|
||||||
|
}
|
||||||
|
bool can = GP.CanUpgradeHero;
|
||||||
|
var b = UIKit.Button(up, can ? "УЛУЧШИТЬ ДО " + (lvl + 1) + " УР." : "Не хватает ресурсов",
|
||||||
|
can ? UIKit.Theme.Green : UIKit.Theme.Gray, () => GP.UpgradeHero(), -1, 100, 32);
|
||||||
|
b.interactable = can;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Навыки ---
|
||||||
|
var skills = UIKit.Card(list);
|
||||||
|
ProfilePanel.Header(skills, "Навыки");
|
||||||
|
for (int i = 0; i < GameData.HeroSkillNames.Length; i++)
|
||||||
|
{
|
||||||
|
bool has = GP.HasHeroSkill(i);
|
||||||
|
var r = UIKit.Row(skills, 70, 14);
|
||||||
|
UIKit.Icon(r, has ? UIKit.Theme.Gold : UIKit.Theme.Gray, (i + 1).ToString(), 56);
|
||||||
|
var t = UIKit.Text(r, GameData.HeroSkillNames[i], 26, has ? UIKit.Theme.Text : UIKit.Theme.TextDim);
|
||||||
|
UIKit.Size(t, -1, -1, 1);
|
||||||
|
UIKit.Size(UIKit.Text(r, has ? "Открыт" : "с " + GameData.HeroSkillLevels[i] + " ур.", 24,
|
||||||
|
has ? UIKit.Theme.Green : UIKit.Theme.TextDim, TextAlignmentOptions.Right), 140);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void StatRow(Transform parent, string name, int now, int next)
|
||||||
|
{
|
||||||
|
ProfilePanel.KV(parent, name, now + " <color=#9be59b>(+" + (next - now) + ")</color>");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f65b505a260db5b4c9842e18522033e5
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// ПОЧТА: список писем (новые подсвечены), чтение письма, подарки во вложениях,
|
||||||
|
// "Забрать всё" и "Удалить прочитанные". Письма приходят сами: приветствие, новый уровень и т.д.
|
||||||
|
public class MailPanel : BasePanel
|
||||||
|
{
|
||||||
|
int openedId; // 0 -- показываем список
|
||||||
|
|
||||||
|
protected override void OnEnable()
|
||||||
|
{
|
||||||
|
base.OnEnable();
|
||||||
|
openedId = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Build(RectTransform root)
|
||||||
|
{
|
||||||
|
var mail = openedId != 0 ? GP.GetMail(openedId) : null;
|
||||||
|
if (mail == null) { openedId = 0; BuildList(root); }
|
||||||
|
else BuildLetter(root, mail);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuildList(RectTransform root)
|
||||||
|
{
|
||||||
|
var col = UIKit.Card(root, new Color(0, 0, 0, 0), 0, 12);
|
||||||
|
UIKit.Stretch(col);
|
||||||
|
|
||||||
|
var top = UIKit.Row(col, 80, 12);
|
||||||
|
UIKit.Size(UIKit.Button(top, "Забрать всё", UIKit.Theme.Green, () => GP.ClaimAllMail()), -1, 80, 1);
|
||||||
|
UIKit.Size(UIKit.Button(top, "Удалить прочитанные", UIKit.Theme.Gray, () => GP.DeleteReadMail()), -1, 80, 1);
|
||||||
|
|
||||||
|
var holder = UIKit.Make("ListHolder", col);
|
||||||
|
UIKit.Size(holder, -1, -1).flexibleHeight = 1;
|
||||||
|
var list = ScrollList(holder, 10);
|
||||||
|
|
||||||
|
if (GP.Data.mail.Count == 0)
|
||||||
|
{
|
||||||
|
UIKit.Text(list, "Писем нет", 32, UIKit.Theme.TextDim, TextAlignmentOptions.Center, 150);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var m in GP.Data.mail)
|
||||||
|
{
|
||||||
|
var mm = m;
|
||||||
|
bool unread = !m.read;
|
||||||
|
bool gift = m.HasRewards && !m.claimed;
|
||||||
|
var card = UIKit.Card(list, unread ? new Color(0.24f, 0.24f, 0.3f) : UIKit.Theme.CardDark, 16, 4);
|
||||||
|
var btn = card.gameObject.AddComponent<Button>();
|
||||||
|
btn.onClick.AddListener(() => { openedId = mm.id; GP.ReadMail(mm); RequestRebuild(); });
|
||||||
|
|
||||||
|
var row = UIKit.Row(card, 46, 10);
|
||||||
|
var title = UIKit.Text(row, m.title, 30, unread ? UIKit.Theme.Gold : UIKit.Theme.Text);
|
||||||
|
title.fontStyle = unread ? FontStyles.Bold : FontStyles.Normal;
|
||||||
|
UIKit.Size(title, -1, -1, 1);
|
||||||
|
if (gift) UIKit.Size(UIKit.Text(row, "ПОДАРОК", 22, UIKit.Theme.Green, TextAlignmentOptions.Right), 150);
|
||||||
|
|
||||||
|
UIKit.Text(card, new DateTime(m.sentTicks).ToString("dd.MM.yyyy HH:mm") + (unread ? " • новое" : ""),
|
||||||
|
22, UIKit.Theme.TextDim);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuildLetter(RectTransform root, MailItem m)
|
||||||
|
{
|
||||||
|
var list = ScrollList(root);
|
||||||
|
UIKit.Button(list, "< Назад к письмам", UIKit.Theme.Gray, () => { openedId = 0; RequestRebuild(); }, -1, 76);
|
||||||
|
|
||||||
|
var card = UIKit.Card(list, UIKit.Theme.Card, 24, 14);
|
||||||
|
var title = UIKit.Text(card, m.title, 36, UIKit.Theme.Gold);
|
||||||
|
title.fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(card, new DateTime(m.sentTicks).ToString("dd.MM.yyyy HH:mm"), 22, UIKit.Theme.TextDim);
|
||||||
|
UIKit.Text(card, m.body, 30);
|
||||||
|
|
||||||
|
if (m.HasRewards)
|
||||||
|
{
|
||||||
|
var gift = UIKit.Card(list, m.claimed ? UIKit.Theme.CardDark : UIKit.Theme.CardDone);
|
||||||
|
ProfilePanel.Header(gift, "Вложения");
|
||||||
|
foreach (var r in m.rewards)
|
||||||
|
{
|
||||||
|
var row = UIKit.Row(gift, 50, 12);
|
||||||
|
UIKit.Icon(row, GameData.ResColor(r.type), "", 36);
|
||||||
|
var n = UIKit.Text(row, GameData.ResName(r.type), 28);
|
||||||
|
UIKit.Size(n, -1, -1, 1);
|
||||||
|
UIKit.Size(UIKit.Text(row, r.amount.ToString("N0"), 28, UIKit.Theme.Gold, TextAlignmentOptions.Right), 200);
|
||||||
|
}
|
||||||
|
var b = UIKit.Button(gift, m.claimed ? "Получено" : "Забрать", m.claimed ? UIKit.Theme.Gray : UIKit.Theme.Green,
|
||||||
|
() => GP.ClaimMail(m), -1, 90);
|
||||||
|
b.interactable = !m.claimed;
|
||||||
|
}
|
||||||
|
|
||||||
|
UIKit.Button(list, "Удалить письмо", UIKit.Theme.Red, () =>
|
||||||
|
{
|
||||||
|
if (m.HasRewards && !m.claimed) { UIKit.Toast("Сначала заберите подарок"); return; }
|
||||||
|
GP.DeleteMail(m); openedId = 0; RequestRebuild();
|
||||||
|
}, -1, 80);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9bff136fda8c360499ec2c3915d622ab
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// ПРОФИЛЬ: аватар, имя, ID, уровень и опыт, сила, королевство, все ресурсы, статистика.
|
||||||
|
public class ProfilePanel : BasePanel
|
||||||
|
{
|
||||||
|
public static readonly Color[] AvatarColors =
|
||||||
|
{
|
||||||
|
new Color(0.3f, 0.45f, 0.8f), new Color(0.75f, 0.3f, 0.3f), new Color(0.3f, 0.65f, 0.4f),
|
||||||
|
new Color(0.7f, 0.5f, 0.2f), new Color(0.55f, 0.35f, 0.7f), new Color(0.25f, 0.6f, 0.65f),
|
||||||
|
};
|
||||||
|
|
||||||
|
protected override void Build(RectTransform root)
|
||||||
|
{
|
||||||
|
var d = GP.Data;
|
||||||
|
var list = ScrollList(root);
|
||||||
|
|
||||||
|
// --- Шапка: аватар + имя ---
|
||||||
|
var head = UIKit.Card(list, UIKit.Theme.CardDark);
|
||||||
|
var row = UIKit.Row(head, 150, 20);
|
||||||
|
string letter = d.playerName.Length > 0 ? d.playerName.Substring(0, 1).ToUpper() : "?";
|
||||||
|
UIKit.Icon(row, AvatarColors[d.avatarIndex % AvatarColors.Length], letter, 150);
|
||||||
|
|
||||||
|
var info = UIKit.Card(row, UIKit.Theme.CardDark, 0, 4);
|
||||||
|
UIKit.Size(info, -1, -1, 1);
|
||||||
|
var name = UIKit.Text(info, d.playerName, 40, UIKit.Theme.Text);
|
||||||
|
name.fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(info, "ID: " + d.playerId, 24, UIKit.Theme.TextDim);
|
||||||
|
UIKit.Text(info, "Уровень " + d.level + " • " + GameData.ArenaLeague(d.arenaRating), 28, UIKit.Theme.Gold);
|
||||||
|
|
||||||
|
var btns = UIKit.Row(head, 80, 12);
|
||||||
|
var bName = UIKit.Button(btns, "Сменить имя", UIKit.Theme.Blue, () =>
|
||||||
|
UIKit.InputDialog("Имя командира", d.playerName, 16, v => { d.playerName = v; GP.MarkChanged(); UIKit.Toast("Имя изменено"); }));
|
||||||
|
UIKit.Size(bName, -1, 80, 1);
|
||||||
|
var bAva = UIKit.Button(btns, "Сменить аватар", UIKit.Theme.Gray, () =>
|
||||||
|
{
|
||||||
|
d.avatarIndex = (d.avatarIndex + 1) % AvatarColors.Length;
|
||||||
|
GP.MarkChanged();
|
||||||
|
});
|
||||||
|
UIKit.Size(bAva, -1, 80, 1);
|
||||||
|
|
||||||
|
// --- Опыт ---
|
||||||
|
var xpCard = UIKit.Card(list);
|
||||||
|
bool max = d.level >= GameData.MaxPlayerLevel;
|
||||||
|
int need = GameData.XpToNextLevel(d.level);
|
||||||
|
UIKit.Text(xpCard, max ? "Максимальный уровень" : "Опыт до " + (d.level + 1) + " уровня", 26, UIKit.Theme.TextDim);
|
||||||
|
UIKit.Bar(xpCard, max ? 1f : (float)d.xp / need, UIKit.Theme.Blue, 40, max ? "MAX" : d.xp + " / " + need);
|
||||||
|
|
||||||
|
// --- Сила ---
|
||||||
|
var power = UIKit.Card(list);
|
||||||
|
var pt = UIKit.Text(power, "СИЛА: " + GP.TotalPower.ToString("N0"), 44, GameData.ResColor(ResourceType.Power), TextAlignmentOptions.Center);
|
||||||
|
pt.fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Text(power, "Армия " + GP.ArmyPower.ToString("N0") + " • Ратуша " + (GP.TownHallLevel * 100) +
|
||||||
|
" • Здания " + (GP.BuildingsCount * 25), 24, UIKit.Theme.TextDim, TextAlignmentOptions.Center);
|
||||||
|
|
||||||
|
// --- Королевство ---
|
||||||
|
var kingdom = UIKit.Card(list);
|
||||||
|
Header(kingdom, "Королевство");
|
||||||
|
KV(kingdom, "Ратуша", GP.TownHallLevel + " ур.");
|
||||||
|
KV(kingdom, "Построено зданий", GP.BuildingsCount.ToString());
|
||||||
|
KV(kingdom, "Герой", d.heroLevel + " ур.");
|
||||||
|
KV(kingdom, "Войска", GP.TotalTroops.ToString("N0"));
|
||||||
|
KV(kingdom, "Этап кампании", d.battleStage.ToString());
|
||||||
|
|
||||||
|
// --- Ресурсы ---
|
||||||
|
var res = UIKit.Card(list);
|
||||||
|
Header(res, "Ресурсы");
|
||||||
|
foreach (ResourceType t in Enum.GetValues(typeof(ResourceType)))
|
||||||
|
{
|
||||||
|
if (t == ResourceType.Power) continue;
|
||||||
|
var r = UIKit.Row(res, 56, 14);
|
||||||
|
UIKit.Icon(r, GameData.ResColor(t), "", 40);
|
||||||
|
var n = UIKit.Text(r, GameData.ResName(t), 28);
|
||||||
|
UIKit.Size(n, -1, -1, 1);
|
||||||
|
var v = UIKit.Text(r, Mathf.FloorToInt(GP.Res(t)).ToString("N0"), 28, UIKit.Theme.Gold, TextAlignmentOptions.Right);
|
||||||
|
UIKit.Size(v, 260);
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Статистика ---
|
||||||
|
var stats = UIKit.Card(list);
|
||||||
|
Header(stats, "Статистика");
|
||||||
|
KV(stats, "Боёв выиграно / проиграно", d.battlesWon + " / " + d.battlesLost);
|
||||||
|
KV(stats, "Карта мира: походов / побед", d.marchesSent + " / " + d.worldWins);
|
||||||
|
KV(stats, "Рейтинг арены", d.arenaRating + " (" + GameData.ArenaLeague(d.arenaRating) + ")");
|
||||||
|
KV(stats, "Побед на арене", d.arenaWins + " из " + d.arenaFights);
|
||||||
|
KV(stats, "Воинов обучено", d.troopsTrained.ToString("N0"));
|
||||||
|
KV(stats, "Заданий выполнено", d.questsDone.ToString());
|
||||||
|
float total = 0; foreach (var c in d.collected) total += c;
|
||||||
|
KV(stats, "Ресурсов собрано", GameData.Short(total));
|
||||||
|
KV(stats, "Дней в игре", d.daysPlayed.ToString());
|
||||||
|
KV(stats, "Играет с", new DateTime(d.firstLaunchTicks, DateTimeKind.Utc).ToLocalTime().ToString("dd.MM.yyyy"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Header(Transform parent, string text)
|
||||||
|
{
|
||||||
|
var t = UIKit.Text(parent, text, 32, UIKit.Theme.Gold);
|
||||||
|
t.fontStyle = FontStyles.Bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void KV(Transform parent, string key, string value)
|
||||||
|
{
|
||||||
|
var r = UIKit.Row(parent, 50, 10);
|
||||||
|
var k = UIKit.Text(r, key, 27, UIKit.Theme.TextDim);
|
||||||
|
UIKit.Size(k, -1, -1, 1);
|
||||||
|
var v = UIKit.Text(r, value, 27, UIKit.Theme.Text, TextAlignmentOptions.Right);
|
||||||
|
UIKit.Size(v, 300);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 38a461aef5dc6674c8f0b1831b2e50fa
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
// ЗАДАНИЯ: две вкладки -- основная цепочка и ежедневные (сброс в полночь).
|
||||||
|
// Прогресс считается сам из игры: сбор ресурсов, стройка, Ратуша, бои, войска, герой, арена.
|
||||||
|
public class QuestsPanel : BasePanel
|
||||||
|
{
|
||||||
|
int tab;
|
||||||
|
TextMeshProUGUI resetTimer;
|
||||||
|
|
||||||
|
protected override void Build(RectTransform root)
|
||||||
|
{
|
||||||
|
var col = UIKit.Card(root, new Color(0, 0, 0, 0), 0, 12);
|
||||||
|
UIKit.Stretch(col);
|
||||||
|
UIKit.Tabs(col, new[] { "Основные", "Ежедневные" }, tab, i => { tab = i; RequestRebuild(); });
|
||||||
|
|
||||||
|
bool daily = tab == 1;
|
||||||
|
resetTimer = null;
|
||||||
|
if (daily)
|
||||||
|
{
|
||||||
|
resetTimer = UIKit.Text(col, "", 26, UIKit.Theme.TextDim, TextAlignmentOptions.Center, 40);
|
||||||
|
Tick();
|
||||||
|
}
|
||||||
|
|
||||||
|
var holder = UIKit.Make("ListHolder", col);
|
||||||
|
UIKit.Size(holder, -1, -1).flexibleHeight = 1;
|
||||||
|
var list = ScrollList(holder);
|
||||||
|
|
||||||
|
var source = daily ? GameData.DailyQuests : GameData.MainQuests;
|
||||||
|
var shown = new List<QuestDef>();
|
||||||
|
int claimedCount = 0;
|
||||||
|
|
||||||
|
// Сначала готовые к получению, потом в процессе. В основных -- не больше 6 активных.
|
||||||
|
foreach (var q in source) if (!GP.IsQuestClaimed(q, daily) && GP.IsQuestDone(q, daily)) shown.Add(q);
|
||||||
|
foreach (var q in source)
|
||||||
|
{
|
||||||
|
if (GP.IsQuestClaimed(q, daily)) { claimedCount++; continue; }
|
||||||
|
if (GP.IsQuestDone(q, daily)) continue;
|
||||||
|
if (!daily && shown.Count >= 6) continue;
|
||||||
|
shown.Add(q);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var q in shown) QuestCard(list, q, daily);
|
||||||
|
|
||||||
|
if (shown.Count == 0)
|
||||||
|
UIKit.Text(list, daily ? "Все ежедневные задания выполнены! Приходите завтра." : "Все задания выполнены! Скоро будут новые.",
|
||||||
|
30, UIKit.Theme.Gold, TextAlignmentOptions.Center, 120);
|
||||||
|
|
||||||
|
UIKit.Text(list, "Выполнено: " + claimedCount + " из " + source.Count, 26, UIKit.Theme.TextDim, TextAlignmentOptions.Center, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
void QuestCard(Transform parent, QuestDef q, bool daily)
|
||||||
|
{
|
||||||
|
bool done = GP.IsQuestDone(q, daily);
|
||||||
|
int progress = Mathf.Min(GP.QuestProgress(q, daily), q.target);
|
||||||
|
|
||||||
|
var card = UIKit.Card(parent, done ? UIKit.Theme.CardDone : UIKit.Theme.Card);
|
||||||
|
var title = UIKit.Text(card, q.title, 32);
|
||||||
|
title.fontStyle = FontStyles.Bold;
|
||||||
|
UIKit.Bar(card, (float)progress / q.target, done ? UIKit.Theme.Green : UIKit.Theme.Gold, 30, progress + " / " + q.target);
|
||||||
|
|
||||||
|
var row = UIKit.Row(card, 80, 12);
|
||||||
|
var reward = UIKit.Text(row, "Награда: " + GameData.RewardsText(q.rewards) + ", " + q.xp + " опыта", 24, UIKit.Theme.TextDim);
|
||||||
|
UIKit.Size(reward, -1, -1, 1);
|
||||||
|
var b = UIKit.Button(row, done ? "Забрать" : "В процессе", done ? UIKit.Theme.Green : UIKit.Theme.Gray,
|
||||||
|
() => GP.ClaimQuest(q, daily), 220, 80);
|
||||||
|
b.interactable = done;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Tick()
|
||||||
|
{
|
||||||
|
if (resetTimer != null) resetTimer.text = "Обновление через " + GameData.FormatTime(GameProgress.SecondsToNextDay);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4f03a70f374e3ea4c87b82f82e7e270e
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user