Merge remote-tracking branch 'origin/develop' into implement_task_UI
This commit is contained in:
@@ -15,7 +15,7 @@ MonoBehaviour:
|
||||
m_DefaultGroup: 712e3991f28e549e7a56ee582a977810
|
||||
m_currentHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
Hash: d7ea27f22d507888a9e5476f10563211
|
||||
m_OptimizeCatalogSize: 0
|
||||
m_BuildRemoteCatalog: 0
|
||||
m_CatalogRequestsTimeout: 0
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2ec5e9190fb72ed1fa3a747cdae7ac86540f744820346de9c230c39ec766666d
|
||||
size 16461
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 33049cc5acda8a341a74cc739bf0961b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:305e74354eced472681f3a976c741e7e70d3ce8ba20714b215ac2e700299a956
|
||||
size 10892
|
||||
oid sha256:e3e518641de396e1b30dd202ff94dc35518476c7efd747501f45f10021136ca7
|
||||
size 10723
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using CSNetwork.GPDataType;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster;
|
||||
using BrewMonster.Common;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts;
|
||||
using CSNetwork.GPDataType;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using PerfectWorld.Scripts.Managers;
|
||||
using BrewMonster.Scripts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
@@ -23,7 +24,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
|
||||
[Header("Detail Panel (assign in Inspector)")]
|
||||
[SerializeField] private GameObject detailPanelRoot;
|
||||
[SerializeField] private Vector2 detailPanelOffset = new Vector2(20f, 0f);
|
||||
[SerializeField] private Vector2 detailPanelOffset = new Vector2(20f, 0f);
|
||||
[SerializeField] private bool hideDetailOnStart = true;
|
||||
[SerializeField] private TextOutlet nameText;
|
||||
[SerializeField] private TextOutlet descriptionText;
|
||||
@@ -35,35 +36,41 @@ namespace BrewMonster.Scripts.Managers
|
||||
[SerializeField] private bool autoRefresh = true;
|
||||
[SerializeField] private float refreshInterval = 1.0f;
|
||||
[SerializeField] private bool showEquipmentDetails = true;
|
||||
|
||||
[Header("Money UI (assign any text fields to mirror money amount)")]
|
||||
[SerializeField] private List<UnityEngine.UI.Text> moneyTextsLegacy = new List<UnityEngine.UI.Text>();
|
||||
[SerializeField] private List<TMPro.TextMeshProUGUI> moneyTextsTMP = new List<TMPro.TextMeshProUGUI>();
|
||||
|
||||
[Header("Cash UI (assign any text fields to mirror cash amount)")]
|
||||
[SerializeField] private List<UnityEngine.UI.Text> cashTextsLegacy = new List<UnityEngine.UI.Text>();
|
||||
[SerializeField] private List<TMPro.TextMeshProUGUI> cashTextsTMP = new List<TMPro.TextMeshProUGUI>();
|
||||
|
||||
[Header("Money UI (assign any text fields to mirror money amount)")]
|
||||
[SerializeField] private List<UnityEngine.UI.Text> moneyTextsLegacy = new List<UnityEngine.UI.Text>();
|
||||
[SerializeField] private List<TMPro.TextMeshProUGUI> moneyTextsTMP = new List<TMPro.TextMeshProUGUI>();
|
||||
|
||||
[Header("Cash UI (assign any text fields to mirror cash amount)")]
|
||||
[SerializeField] private List<UnityEngine.UI.Text> cashTextsLegacy = new List<UnityEngine.UI.Text>();
|
||||
[SerializeField] private List<TMPro.TextMeshProUGUI> cashTextsTMP = new List<TMPro.TextMeshProUGUI>();
|
||||
|
||||
private float lastRefreshTime;
|
||||
|
||||
// Pending currency cache for when UI is not yet active
|
||||
private static bool s_hasPendingMoney;
|
||||
private static ulong s_pendingMoneyAmount;
|
||||
private static ulong s_pendingMoneyMaxAmount;
|
||||
private static bool s_hasPendingCash;
|
||||
private static int s_pendingCashAmount;
|
||||
// Pending currency cache for when UI is not yet active
|
||||
private static bool s_hasPendingMoney;
|
||||
private static ulong s_pendingMoneyAmount;
|
||||
private static ulong s_pendingMoneyMaxAmount;
|
||||
private static bool s_hasPendingCash;
|
||||
private static int s_pendingCashAmount;
|
||||
|
||||
// Flags to prevent log spam for extended description warnings
|
||||
// 防止扩展描述警告日志刷屏的标志
|
||||
private static bool m_HasLoggedExtDescNull = false;
|
||||
private static bool m_HasLoggedExtDescNotInit = false;
|
||||
private static bool m_HasLoggedExtDescError = false;
|
||||
// Flags to prevent log spam for extended description warnings
|
||||
// 防止扩展描述警告日志刷屏的标志
|
||||
private static bool m_HasLoggedExtDescNull = false;
|
||||
private static bool m_HasLoggedExtDescNotInit = false;
|
||||
private static bool m_HasLoggedExtDescError = false;
|
||||
|
||||
private InventoryModel model;
|
||||
private InventoryView view;
|
||||
|
||||
|
||||
// Drag-and-drop state
|
||||
private int draggedItemSourceSlot = -1;
|
||||
private byte draggedItemSourcePackage = 0;
|
||||
[SerializeField] private Image currentDragImage;
|
||||
private bool isDragging = false;
|
||||
|
||||
// === Text Formatting Methods ===
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Format text for TextMeshPro components with rich text support
|
||||
/// </summary>
|
||||
@@ -73,7 +80,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
return EC_Utility.FormatForTextMeshPro(text);
|
||||
}
|
||||
|
||||
|
||||
// Current selected item for equip/unequip operations
|
||||
private byte currentSelectedPackage;
|
||||
private int currentSelectedSlot;
|
||||
@@ -88,6 +95,20 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
model = new InventoryModel();
|
||||
view = new InventoryView();
|
||||
|
||||
if (currentDragImage == null)
|
||||
{
|
||||
var canvas = GetComponentInParent<Canvas>();
|
||||
if (canvas == null)
|
||||
{
|
||||
canvas = FindAnyObjectByType<Canvas>();
|
||||
}
|
||||
var go = new GameObject("DragImage", typeof(RectTransform), typeof(CanvasRenderer), typeof(Image));
|
||||
go.transform.SetParent(canvas.transform, false);
|
||||
currentDragImage = go.GetComponent<Image>();
|
||||
currentDragImage.raycastTarget = false;
|
||||
currentDragImage.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
@@ -97,15 +118,15 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
ShowDetailPanel(false);
|
||||
}
|
||||
// Apply any pending currency values captured before the UI became active
|
||||
ApplyPendingCurrency();
|
||||
// Apply any pending currency values captured before the UI became active
|
||||
ApplyPendingCurrency();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
// Ensure cached values are pushed when the UI is enabled
|
||||
ApplyPendingCurrency();
|
||||
}
|
||||
private void OnEnable()
|
||||
{
|
||||
// Ensure cached values are pushed when the UI is enabled
|
||||
ApplyPendingCurrency();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
@@ -128,109 +149,109 @@ namespace BrewMonster.Scripts.Managers
|
||||
view.RenderPackage(fashionPackButtons, fshItems, PKG_FASHION, OnInventoryButtonClicked, GetDisplayTextForItem);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update all configured money text components with the current amount.
|
||||
/// Call this when GET_OWN_MONEY arrives.
|
||||
/// </summary>
|
||||
public void UpdateMoney(ulong amount, ulong maxAmount)
|
||||
{
|
||||
string text = amount.ToString();
|
||||
if (moneyTextsLegacy != null)
|
||||
{
|
||||
for (int i = 0; i < moneyTextsLegacy.Count; i++)
|
||||
{
|
||||
var t = moneyTextsLegacy[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
if (moneyTextsTMP != null)
|
||||
{
|
||||
for (int i = 0; i < moneyTextsTMP.Count; i++)
|
||||
{
|
||||
var t = moneyTextsTMP[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update all configured cash text components with the current boutique cash amount.
|
||||
/// Call this when PLAYER_CASH arrives.
|
||||
/// </summary>
|
||||
public void UpdateCash(int amount)
|
||||
{
|
||||
string text = amount.ToString();
|
||||
if (cashTextsLegacy != null)
|
||||
{
|
||||
for (int i = 0; i < cashTextsLegacy.Count; i++)
|
||||
{
|
||||
var t = cashTextsLegacy[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
if (cashTextsTMP != null)
|
||||
{
|
||||
for (int i = 0; i < cashTextsTMP.Count; i++)
|
||||
{
|
||||
var t = cashTextsTMP[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Update all configured money text components with the current amount.
|
||||
/// Call this when GET_OWN_MONEY arrives.
|
||||
/// </summary>
|
||||
public void UpdateMoney(ulong amount, ulong maxAmount)
|
||||
{
|
||||
string text = amount.ToString();
|
||||
if (moneyTextsLegacy != null)
|
||||
{
|
||||
for (int i = 0; i < moneyTextsLegacy.Count; i++)
|
||||
{
|
||||
var t = moneyTextsLegacy[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
if (moneyTextsTMP != null)
|
||||
{
|
||||
for (int i = 0; i < moneyTextsTMP.Count; i++)
|
||||
{
|
||||
var t = moneyTextsTMP[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Public static entry points to cache values when UI is unavailable
|
||||
public static void CacheMoney(ulong amount, ulong maxAmount)
|
||||
{
|
||||
s_pendingMoneyAmount = amount;
|
||||
s_pendingMoneyMaxAmount = maxAmount;
|
||||
s_hasPendingMoney = true;
|
||||
// If an instance exists (even inactive), push immediately so the value is ready
|
||||
var all = Resources.FindObjectsOfTypeAll<EC_InventoryUI>();
|
||||
if (all != null)
|
||||
{
|
||||
for (int i = 0; i < all.Length; i++)
|
||||
{
|
||||
var ui = all[i];
|
||||
if (ui != null && ui.gameObject.scene.IsValid())
|
||||
{
|
||||
ui.ApplyPendingCurrency();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Update all configured cash text components with the current boutique cash amount.
|
||||
/// Call this when PLAYER_CASH arrives.
|
||||
/// </summary>
|
||||
public void UpdateCash(int amount)
|
||||
{
|
||||
string text = amount.ToString();
|
||||
if (cashTextsLegacy != null)
|
||||
{
|
||||
for (int i = 0; i < cashTextsLegacy.Count; i++)
|
||||
{
|
||||
var t = cashTextsLegacy[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
if (cashTextsTMP != null)
|
||||
{
|
||||
for (int i = 0; i < cashTextsTMP.Count; i++)
|
||||
{
|
||||
var t = cashTextsTMP[i];
|
||||
if (t != null) t.text = text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void CacheCash(int amount)
|
||||
{
|
||||
s_pendingCashAmount = amount;
|
||||
s_hasPendingCash = true;
|
||||
// If an instance exists (even inactive), push immediately so the value is ready
|
||||
var all = Resources.FindObjectsOfTypeAll<EC_InventoryUI>();
|
||||
if (all != null)
|
||||
{
|
||||
for (int i = 0; i < all.Length; i++)
|
||||
{
|
||||
var ui = all[i];
|
||||
if (ui != null && ui.gameObject.scene.IsValid())
|
||||
{
|
||||
ui.ApplyPendingCurrency();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Public static entry points to cache values when UI is unavailable
|
||||
public static void CacheMoney(ulong amount, ulong maxAmount)
|
||||
{
|
||||
s_pendingMoneyAmount = amount;
|
||||
s_pendingMoneyMaxAmount = maxAmount;
|
||||
s_hasPendingMoney = true;
|
||||
// If an instance exists (even inactive), push immediately so the value is ready
|
||||
var all = Resources.FindObjectsOfTypeAll<EC_InventoryUI>();
|
||||
if (all != null)
|
||||
{
|
||||
for (int i = 0; i < all.Length; i++)
|
||||
{
|
||||
var ui = all[i];
|
||||
if (ui != null && ui.gameObject.scene.IsValid())
|
||||
{
|
||||
ui.ApplyPendingCurrency();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyPendingCurrency()
|
||||
{
|
||||
if (s_hasPendingMoney)
|
||||
{
|
||||
UpdateMoney(s_pendingMoneyAmount, s_pendingMoneyMaxAmount);
|
||||
}
|
||||
if (s_hasPendingCash)
|
||||
{
|
||||
UpdateCash(s_pendingCashAmount);
|
||||
}
|
||||
}
|
||||
public static void CacheCash(int amount)
|
||||
{
|
||||
s_pendingCashAmount = amount;
|
||||
s_hasPendingCash = true;
|
||||
// If an instance exists (even inactive), push immediately so the value is ready
|
||||
var all = Resources.FindObjectsOfTypeAll<EC_InventoryUI>();
|
||||
if (all != null)
|
||||
{
|
||||
for (int i = 0; i < all.Length; i++)
|
||||
{
|
||||
var ui = all[i];
|
||||
if (ui != null && ui.gameObject.scene.IsValid())
|
||||
{
|
||||
ui.ApplyPendingCurrency();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyPendingCurrency()
|
||||
{
|
||||
if (s_hasPendingMoney)
|
||||
{
|
||||
UpdateMoney(s_pendingMoneyAmount, s_pendingMoneyMaxAmount);
|
||||
}
|
||||
if (s_hasPendingCash)
|
||||
{
|
||||
UpdateCash(s_pendingCashAmount);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnInventoryButtonClicked(byte package, int slot)
|
||||
{
|
||||
@@ -242,13 +263,13 @@ namespace BrewMonster.Scripts.Managers
|
||||
currentSelectedPackage = package;
|
||||
currentSelectedSlot = slot;
|
||||
currentSelectedItem = itemData;
|
||||
|
||||
|
||||
// Create equipment object if this is equipment
|
||||
currentSelectedEquipment = CreateEquipmentFromItemData(itemData);
|
||||
|
||||
// Position detail panel near the clicked item button
|
||||
PositionDetailPanelNearButton(package, slot);
|
||||
|
||||
// Position detail panel near the clicked item button
|
||||
PositionDetailPanelNearButton(package, slot);
|
||||
|
||||
FillDetailPanel(package, itemData);
|
||||
}
|
||||
else
|
||||
@@ -266,19 +287,19 @@ namespace BrewMonster.Scripts.Managers
|
||||
return null;
|
||||
|
||||
var equipment = new EC_IvtrEquip(itemData.m_tid, itemData.m_expire_date);
|
||||
|
||||
|
||||
// Set basic properties (use default values since InventoryItemData doesn't have these)
|
||||
equipment.Price = 0;
|
||||
equipment.Count = itemData.m_iCount;
|
||||
equipment.PriceScale = 1.0f;
|
||||
equipment.ScaleType = 0;
|
||||
|
||||
|
||||
// Parse item info if available (use Content field)
|
||||
if (itemData.Content != null && itemData.Content.Length > 0)
|
||||
{
|
||||
equipment.SetItemInfo(itemData.Content, itemData.Content.Length);
|
||||
}
|
||||
|
||||
|
||||
return equipment;
|
||||
}
|
||||
|
||||
@@ -418,7 +439,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
// Call RequestDropIvrtItem with slot index and amount
|
||||
UnityGameSession.RequestDropIvrtItem((byte)currentSelectedSlot, 1);
|
||||
Debug.Log($"[InventoryUI] Drop request sent for inventory item {currentSelectedItem.m_tid} from slot {currentSelectedSlot} with amount {currentSelectedItem.m_iCount}");
|
||||
|
||||
|
||||
// Refresh inventory after drop
|
||||
RefreshAll();
|
||||
}
|
||||
@@ -430,12 +451,12 @@ namespace BrewMonster.Scripts.Managers
|
||||
// Call RequestDropEquipItem with slot index
|
||||
UnityGameSession.RequestDropEquipItem((byte)currentSelectedSlot);
|
||||
Debug.Log($"[InventoryUI] Drop request sent for equipment item {currentSelectedItem.m_tid} from slot {currentSelectedSlot}");
|
||||
|
||||
|
||||
// Refresh inventory after drop
|
||||
RefreshAll();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private int FindEmptyInventorySlot()
|
||||
{
|
||||
var inventoryData = model.GetInventoryData(PKG_INVENTORY);
|
||||
@@ -451,7 +472,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get item description from string table
|
||||
/// </summary>
|
||||
@@ -490,10 +511,10 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
Debug.LogWarning($"[InventoryUI] Error getting item description for ID {templateId}: {ex.Message}");
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get extended item description from string table
|
||||
/// </summary>
|
||||
@@ -532,10 +553,10 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
Debug.LogWarning($"[InventoryUI] Error getting extended item description for ID {templateId}: {ex.Message}");
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get user-friendly text for item state
|
||||
/// </summary>
|
||||
@@ -602,7 +623,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
bool hasItem = items != null && items.TryGetValue(slot, out itemData);
|
||||
button.onClick.RemoveAllListeners();
|
||||
int capturedSlot = slot;
|
||||
button.onClick.AddListener(() => onClick(package, capturedSlot));
|
||||
button.onClick.AddListener(() => onClick(package, capturedSlot));
|
||||
// Optional visual tweaks based on state/count
|
||||
var image = button.GetComponent<Image>();
|
||||
if (image != null)
|
||||
@@ -627,6 +648,24 @@ namespace BrewMonster.Scripts.Managers
|
||||
image.enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
var eventTrigger = button.GetComponent<EventTrigger>();
|
||||
if (eventTrigger == null)
|
||||
eventTrigger = button.gameObject.AddComponent<EventTrigger>();
|
||||
|
||||
eventTrigger.triggers.Clear();
|
||||
|
||||
void AddEvent(EventTriggerType type, UnityEngine.Events.UnityAction<BaseEventData> action)
|
||||
{
|
||||
var entry = new EventTrigger.Entry { eventID = type };
|
||||
entry.callback.AddListener(action);
|
||||
eventTrigger.triggers.Add(entry);
|
||||
}
|
||||
|
||||
AddEvent(EventTriggerType.BeginDrag, (data) => ((EC_InventoryUI)button.GetComponentInParent<EC_InventoryUI>()).OnBeginDrag((PointerEventData)data));
|
||||
AddEvent(EventTriggerType.Drag, (data) => ((EC_InventoryUI)button.GetComponentInParent<EC_InventoryUI>()).OnDrag((PointerEventData)data));
|
||||
AddEvent(EventTriggerType.EndDrag, (data) => ((EC_InventoryUI)button.GetComponentInParent<EC_InventoryUI>()).OnEndDrag((PointerEventData)data));
|
||||
AddEvent(EventTriggerType.Drop, (data) => ((EC_InventoryUI)button.GetComponentInParent<EC_InventoryUI>()).OnDrop((PointerEventData)data));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -649,7 +688,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
tmp.text = FormatForTextMeshPro(value ?? string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Set text with explicit formatting preference
|
||||
/// </summary>
|
||||
@@ -657,10 +696,10 @@ namespace BrewMonster.Scripts.Managers
|
||||
/// <param name="preferTextMeshPro">Whether to prefer TextMeshPro formatting</param>
|
||||
public void SetFormatted(string value, bool preferTextMeshPro = true)
|
||||
{
|
||||
string formattedText = preferTextMeshPro ?
|
||||
FormatForTextMeshPro(value ?? string.Empty) :
|
||||
string formattedText = preferTextMeshPro ?
|
||||
FormatForTextMeshPro(value ?? string.Empty) :
|
||||
EC_Utility.FormatForLegacyText(value ?? string.Empty);
|
||||
|
||||
|
||||
if (legacy != null)
|
||||
{
|
||||
legacy.text = formattedText;
|
||||
@@ -675,7 +714,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
public void RefreshLayout(GameObject gameObject)
|
||||
{
|
||||
var parent = gameObject.GetComponent<RectTransform>();
|
||||
|
||||
|
||||
// Force Unity to rebuild layout immediately
|
||||
parent.ForceUpdateRectTransforms();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(parent);
|
||||
@@ -689,115 +728,115 @@ namespace BrewMonster.Scripts.Managers
|
||||
}
|
||||
}
|
||||
|
||||
private Button GetButtonForSlot(byte package, int slot)
|
||||
{
|
||||
List<Button> list = null;
|
||||
switch (package)
|
||||
{
|
||||
case PKG_INVENTORY:
|
||||
list = inventoryPackButtons;
|
||||
break;
|
||||
case PKG_EQUIPMENT:
|
||||
list = equipmentPackButtons;
|
||||
break;
|
||||
case PKG_FASHION:
|
||||
list = fashionPackButtons;
|
||||
break;
|
||||
}
|
||||
if (list == null || slot < 0 || slot >= list.Count)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return list[slot];
|
||||
}
|
||||
private Button GetButtonForSlot(byte package, int slot)
|
||||
{
|
||||
List<Button> list = null;
|
||||
switch (package)
|
||||
{
|
||||
case PKG_INVENTORY:
|
||||
list = inventoryPackButtons;
|
||||
break;
|
||||
case PKG_EQUIPMENT:
|
||||
list = equipmentPackButtons;
|
||||
break;
|
||||
case PKG_FASHION:
|
||||
list = fashionPackButtons;
|
||||
break;
|
||||
}
|
||||
if (list == null || slot < 0 || slot >= list.Count)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return list[slot];
|
||||
}
|
||||
|
||||
private void PositionDetailPanelNearButton(byte package, int slot)
|
||||
{
|
||||
if (detailPanelRoot == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var panelRect = detailPanelRoot.transform as RectTransform;
|
||||
if (panelRect == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
private void PositionDetailPanelNearButton(byte package, int slot)
|
||||
{
|
||||
if (detailPanelRoot == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var panelRect = detailPanelRoot.transform as RectTransform;
|
||||
if (panelRect == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var button = GetButtonForSlot(package, slot);
|
||||
if (button == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var buttonRect = button.transform as RectTransform;
|
||||
if (buttonRect == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var button = GetButtonForSlot(package, slot);
|
||||
if (button == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var buttonRect = button.transform as RectTransform;
|
||||
if (buttonRect == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var canvas = panelRect.GetComponentInParent<Canvas>();
|
||||
if (canvas == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var parentRect = panelRect.parent as RectTransform;
|
||||
if (parentRect == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var canvas = panelRect.GetComponentInParent<Canvas>();
|
||||
if (canvas == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var parentRect = panelRect.parent as RectTransform;
|
||||
if (parentRect == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Camera eventCamera = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera;
|
||||
Vector3 worldCenter = buttonRect.TransformPoint(buttonRect.rect.center);
|
||||
Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(eventCamera, worldCenter);
|
||||
Vector2 localPoint;
|
||||
if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect, screenPoint, eventCamera, out localPoint))
|
||||
{
|
||||
return;
|
||||
}
|
||||
Camera eventCamera = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera;
|
||||
Vector3 worldCenter = buttonRect.TransformPoint(buttonRect.rect.center);
|
||||
Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(eventCamera, worldCenter);
|
||||
Vector2 localPoint;
|
||||
if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect, screenPoint, eventCamera, out localPoint))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
float btnHalfW = buttonRect.rect.width * 0.5f;
|
||||
float panelW = panelRect.rect.width;
|
||||
float panelH = panelRect.rect.height;
|
||||
float pivotX = panelRect.pivot.x;
|
||||
float pivotY = panelRect.pivot.y;
|
||||
float btnHalfW = buttonRect.rect.width * 0.5f;
|
||||
float panelW = panelRect.rect.width;
|
||||
float panelH = panelRect.rect.height;
|
||||
float pivotX = panelRect.pivot.x;
|
||||
float pivotY = panelRect.pivot.y;
|
||||
|
||||
// Compute right-placement candidate (panel's left edge at button's right edge + offset)
|
||||
float leftEdgeRightPlacement = localPoint.x + btnHalfW + detailPanelOffset.x;
|
||||
float candidateXRight = leftEdgeRightPlacement + pivotX * panelW;
|
||||
// Compute right-placement candidate (panel's left edge at button's right edge + offset)
|
||||
float leftEdgeRightPlacement = localPoint.x + btnHalfW + detailPanelOffset.x;
|
||||
float candidateXRight = leftEdgeRightPlacement + pivotX * panelW;
|
||||
|
||||
// Compute left-placement candidate (panel's right edge at button's left edge - offset)
|
||||
float rightEdgeLeftPlacement = localPoint.x - btnHalfW - detailPanelOffset.x;
|
||||
float candidateXLeft = rightEdgeLeftPlacement - (1f - pivotX) * panelW;
|
||||
// Compute left-placement candidate (panel's right edge at button's left edge - offset)
|
||||
float rightEdgeLeftPlacement = localPoint.x - btnHalfW - detailPanelOffset.x;
|
||||
float candidateXLeft = rightEdgeLeftPlacement - (1f - pivotX) * panelW;
|
||||
|
||||
// Vertical clamping honoring pivot
|
||||
float minY = parentRect.rect.yMin + pivotY * panelH;
|
||||
float maxY = parentRect.rect.yMax - (1f - pivotY) * panelH;
|
||||
float candidateY = Mathf.Clamp(localPoint.y + detailPanelOffset.y, minY, maxY);
|
||||
// Vertical clamping honoring pivot
|
||||
float minY = parentRect.rect.yMin + pivotY * panelH;
|
||||
float maxY = parentRect.rect.yMax - (1f - pivotY) * panelH;
|
||||
float candidateY = Mathf.Clamp(localPoint.y + detailPanelOffset.y, minY, maxY);
|
||||
|
||||
// Choose side based on available space
|
||||
float rightEdgeOfRight = candidateXRight + (1f - pivotX) * panelW;
|
||||
float canvasRight = parentRect.rect.xMax;
|
||||
float canvasLeft = parentRect.rect.xMin;
|
||||
float leftEdgeOfLeft = candidateXLeft - pivotX * panelW;
|
||||
// Choose side based on available space
|
||||
float rightEdgeOfRight = candidateXRight + (1f - pivotX) * panelW;
|
||||
float canvasRight = parentRect.rect.xMax;
|
||||
float canvasLeft = parentRect.rect.xMin;
|
||||
float leftEdgeOfLeft = candidateXLeft - pivotX * panelW;
|
||||
|
||||
Vector2 finalPos;
|
||||
if (rightEdgeOfRight <= canvasRight)
|
||||
{
|
||||
finalPos = new Vector2(candidateXRight, candidateY);
|
||||
}
|
||||
else if (leftEdgeOfLeft >= canvasLeft)
|
||||
{
|
||||
finalPos = new Vector2(candidateXLeft, candidateY);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fallback: clamp within canvas horizontally
|
||||
float minX = canvasLeft + pivotX * panelW;
|
||||
float maxX = canvasRight - (1f - pivotX) * panelW;
|
||||
finalPos = new Vector2(Mathf.Clamp(candidateXRight, minX, maxX), candidateY);
|
||||
}
|
||||
Vector2 finalPos;
|
||||
if (rightEdgeOfRight <= canvasRight)
|
||||
{
|
||||
finalPos = new Vector2(candidateXRight, candidateY);
|
||||
}
|
||||
else if (leftEdgeOfLeft >= canvasLeft)
|
||||
{
|
||||
finalPos = new Vector2(candidateXLeft, candidateY);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fallback: clamp within canvas horizontally
|
||||
float minX = canvasLeft + pivotX * panelW;
|
||||
float maxX = canvasRight - (1f - pivotX) * panelW;
|
||||
finalPos = new Vector2(Mathf.Clamp(candidateXRight, minX, maxX), candidateY);
|
||||
}
|
||||
|
||||
panelRect.anchoredPosition = finalPos;
|
||||
}
|
||||
panelRect.anchoredPosition = finalPos;
|
||||
}
|
||||
|
||||
private void FillDetailPanel(byte package, EC_IvtrItem item)
|
||||
{
|
||||
@@ -875,8 +914,8 @@ namespace BrewMonster.Scripts.Managers
|
||||
|
||||
// Display extended description if found (exactly like C++ checks: if (!szExtDesc || !szExtDesc[0]))
|
||||
// 如果找到扩展描述则显示(完全像C++检查:if (!szExtDesc || !szExtDesc[0]))
|
||||
string displayText = !string.IsNullOrEmpty(szExtDesc)
|
||||
? szExtDesc.Replace("\\r", "\n")
|
||||
string displayText = !string.IsNullOrEmpty(szExtDesc)
|
||||
? szExtDesc.Replace("\\r", "\n")
|
||||
: "";
|
||||
|
||||
// Debug logging to diagnose issues
|
||||
@@ -1000,7 +1039,118 @@ namespace BrewMonster.Scripts.Managers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void OnBeginDrag(PointerEventData eventData)
|
||||
{
|
||||
var btn = eventData.pointerDrag?.GetComponent<Button>();
|
||||
if (btn != null)
|
||||
{
|
||||
for (int i = 0; i < inventoryPackButtons.Count; i++)
|
||||
{
|
||||
if (btn == inventoryPackButtons[i])
|
||||
{
|
||||
var invItems = model.GetInventoryData(PKG_INVENTORY);
|
||||
if(invItems == null || !invItems.ContainsKey(i))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
draggedItemSourceSlot = i;
|
||||
draggedItemSourcePackage = PKG_INVENTORY;
|
||||
|
||||
var img = btn.GetComponent<Image>();
|
||||
if (img != null && currentDragImage != null)
|
||||
{
|
||||
currentDragImage.sprite = img.sprite;
|
||||
currentDragImage.SetNativeSize();
|
||||
currentDragImage.color = img.color;
|
||||
currentDragImage.gameObject.SetActive(true);
|
||||
isDragging = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < equipmentPackButtons.Count; i++)
|
||||
{
|
||||
if (btn == equipmentPackButtons[i])
|
||||
{
|
||||
var equipItems = model.GetInventoryData(PKG_EQUIPMENT);
|
||||
if(equipItems == null || !equipItems.ContainsKey(i))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
draggedItemSourceSlot = i;
|
||||
draggedItemSourcePackage = PKG_EQUIPMENT;
|
||||
var img = btn.GetComponent<Image>();
|
||||
if (img != null && currentDragImage != null)
|
||||
{
|
||||
currentDragImage.sprite = img.sprite;
|
||||
currentDragImage.SetNativeSize();
|
||||
currentDragImage.color = img.color;
|
||||
currentDragImage.gameObject.SetActive(true);
|
||||
isDragging = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
if(isDragging && currentDragImage != null)
|
||||
{
|
||||
currentDragImage.transform.position = eventData.position;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnEndDrag(PointerEventData eventData)
|
||||
{
|
||||
draggedItemSourceSlot = -1;
|
||||
draggedItemSourcePackage = 0;
|
||||
if(currentDragImage != null)
|
||||
{
|
||||
currentDragImage.gameObject.SetActive(false);
|
||||
isDragging = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDrop(PointerEventData eventData)
|
||||
{
|
||||
var btn = eventData.pointerCurrentRaycast.gameObject?.GetComponent<Button>();
|
||||
if (btn != null && draggedItemSourcePackage == PKG_INVENTORY)
|
||||
{
|
||||
for (int i = 0; i < equipmentPackButtons.Count; i++)
|
||||
{
|
||||
if (btn == equipmentPackButtons[i])
|
||||
{
|
||||
UnityGameSession.RequestEquipItemAsync((byte)draggedItemSourceSlot, (byte)i, () =>
|
||||
{
|
||||
Debug.Log($"[InventoryUI] Drag-drop equip: từ inventory slot {draggedItemSourceSlot} sang equipment slot {i}");
|
||||
RefreshAll();
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(btn != null && draggedItemSourcePackage == PKG_EQUIPMENT)
|
||||
{
|
||||
for (int i = 0; i < inventoryPackButtons.Count; i++)
|
||||
{
|
||||
if (btn == inventoryPackButtons[i])
|
||||
{
|
||||
UnityGameSession.RequestEquipItemAsync((byte)i, (byte)draggedItemSourceSlot, () =>
|
||||
{
|
||||
Debug.Log($"[InventoryUI] Drag-drop unequip: từ equipment slot {draggedItemSourceSlot} sang inventory slot {i}");
|
||||
RefreshAll();
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
draggedItemSourceSlot = -1;
|
||||
draggedItemSourcePackage = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,6 +372,7 @@ namespace BrewMonster.Network
|
||||
|
||||
public void LoadScene(string sceneName, LoadSceneMode mode, Action<bool> actDone)
|
||||
{
|
||||
// SceneLoadService.Load(sceneName, mode, actDone);
|
||||
StartCoroutine(LoadSceneCoroutine(sceneName, mode, actDone));
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a3ad7cd15f37d924f824fbd72715dd2f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
using System.Collections;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
|
||||
namespace BrewMonster
|
||||
{
|
||||
public class LoadingSceneController : MonoSingleton<LoadingSceneController>
|
||||
{
|
||||
[Header("UI")]
|
||||
public GameObject goContent;
|
||||
public Slider progressBar;
|
||||
public TMP_Text percentText;
|
||||
public TMP_Text loadingText;
|
||||
|
||||
private bool finished;
|
||||
private CancellationTokenSource cts;
|
||||
|
||||
public void ShowLoadingScene(bool active)
|
||||
{
|
||||
goContent.SetActive(active);
|
||||
|
||||
// if (active)
|
||||
// {
|
||||
// Debug.LogError("Loading scene controller started");
|
||||
//
|
||||
// finished = false;
|
||||
// loadingText.text = "Loading...";
|
||||
// UpdateUI(0);
|
||||
//
|
||||
// cts?.Cancel();
|
||||
// cts = new CancellationTokenSource();
|
||||
//
|
||||
// ObserveLoadingAsync(cts.Token).Forget();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// cts?.Cancel();
|
||||
// }
|
||||
}
|
||||
|
||||
async UniTaskVoid ObserveLoadingAsync(CancellationToken token)
|
||||
{
|
||||
try
|
||||
{
|
||||
while (!finished && !token.IsCancellationRequested)
|
||||
{
|
||||
float progress = Mathf.Clamp01(SceneLoader.LoadingProgress / 100f);
|
||||
UpdateUI(progress);
|
||||
|
||||
if (SceneLoader.SceneLoadProcess == SceneLoadProcess.EndLoading)
|
||||
{
|
||||
finished = true;
|
||||
await EndLoadingAsync(token);
|
||||
break;
|
||||
}
|
||||
|
||||
await UniTask.Yield(PlayerLoopTiming.Update, token);
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
// Normal cancel – ignore
|
||||
}
|
||||
}
|
||||
|
||||
async UniTask EndLoadingAsync(CancellationToken token)
|
||||
{
|
||||
UpdateUI(1f);
|
||||
loadingText.text = "Entering scene...";
|
||||
|
||||
await UniTask.Delay(TimeSpan.FromSeconds(0.2f), cancellationToken: token);
|
||||
|
||||
ShowLoadingScene(false);
|
||||
}
|
||||
|
||||
public void UpdateUI(float progress)
|
||||
{
|
||||
progressBar.value = progress;
|
||||
percentText.text = $"{Mathf.RoundToInt(progress * 100f)}%";
|
||||
}
|
||||
public void SetLoadingText(string content)
|
||||
{
|
||||
loadingText.text = content;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0f91323d4b23b4428e423d2c724d821
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace BrewMonster
|
||||
{
|
||||
public class SceneLoadService
|
||||
{
|
||||
public static void Load(
|
||||
string sceneName,
|
||||
LoadSceneMode mode = LoadSceneMode.Single,
|
||||
Action<bool> actDone = null
|
||||
)
|
||||
{
|
||||
if(string.IsNullOrEmpty(sceneName)) return;
|
||||
SceneLoader.TargetScene = sceneName;
|
||||
SceneLoader.LoadMode = mode;
|
||||
SceneLoader.OnDone = actDone;
|
||||
|
||||
SceneManager.LoadScene(sceneName, mode);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a87111a93f052894082eb4175befa2ed
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace BrewMonster
|
||||
{
|
||||
public enum SceneLoadProcess
|
||||
{
|
||||
Loading,
|
||||
EndLoading,
|
||||
}
|
||||
public class SceneLoader
|
||||
{
|
||||
public static string TargetScene;
|
||||
public static LoadSceneMode LoadMode;
|
||||
public static Action<bool> OnDone;
|
||||
|
||||
public static SceneLoadProcess SceneLoadProcess;
|
||||
public static int LoadingProgress;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5faa62ff51365184f9a9cea81bce8188
|
||||
@@ -4,8 +4,9 @@ using ModelRenderer.Scripts.GameData;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using CSNetwork.GPDataType;
|
||||
using PerfectWorld.Scripts.Task;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Scripts.Task
|
||||
@@ -80,84 +81,202 @@ namespace BrewMonster.Scripts.Task
|
||||
m_pEleDataMan = pMan;
|
||||
}
|
||||
|
||||
public bool LoadTasksFromPack(string szPackPath, bool bLoadDescript)
|
||||
public async UniTask<bool> LoadTasksFromPack(string szPackPath, bool bLoadDescript, Action<float> onProgress, CancellationToken token)
|
||||
{
|
||||
//TaskInterface::WriteLog(0, 0, 2, "LoadPack begin");
|
||||
// //TaskInterface::WriteLog(0, 0, 2, "LoadPack begin");
|
||||
// BMLogger.Log("[Dat]- szPackPath: " + szPackPath);
|
||||
// if (!File.Exists(szPackPath))
|
||||
// {
|
||||
// BMLogger.LogError("[Dat]- File not found: " + szPackPath);
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// long readBytes = 0;
|
||||
// FileStream fs = new FileStream(szPackPath, FileMode.Open, FileAccess.Read);
|
||||
//
|
||||
// TASK_PACK_HEADER tph = AAssit.ReadFromBinaryOf<TASK_PACK_HEADER>(fs, ref readBytes);
|
||||
//
|
||||
// if (tph.magic != TASK_PACK_MAGIC
|
||||
// || tph.version != _task_templ_cur_version)
|
||||
// return false;
|
||||
//
|
||||
// if (tph.item_count == 0) return true;
|
||||
//
|
||||
// uint[] pOffs = new uint[tph.item_count];
|
||||
// g_ulNewCount++;
|
||||
//
|
||||
//
|
||||
// // fread(pOffs, sizeof(long), tph.item_count, fp);
|
||||
// // read File and prepare offset array before loading tasks
|
||||
// pOffs = AAssit.ReadArrayFromBinary<uint>(fs, (int)tph.item_count, ref readBytes);
|
||||
//
|
||||
// Debug.Log((int)tph.item_count);
|
||||
// //BMLogger.Log($" [MH] Task File Lenght: {fs.Length}");
|
||||
// // for (int i = 2058; i < 2059; i++) //TODO: tph.item_count
|
||||
// Debug.Log($" Starting to load {tph.item_count} task templates...");
|
||||
// for (int i = 0; i < tph.item_count; i++)
|
||||
// {
|
||||
// // mvoe file pointer to task offset
|
||||
// fs.Seek(pOffs[i], SeekOrigin.Begin);
|
||||
// // BMLogger.Log(" [MH] Loading Task Templ at offset: " + pOffs[i]);
|
||||
//
|
||||
// ATaskTempl pTempl = new ATaskTempl();
|
||||
// g_ulNewCount++;
|
||||
//
|
||||
// // Debug.Log($"Task Index {i}: Attempting to load task template...");
|
||||
// if (!pTempl.LoadFromBinFile(fs))
|
||||
// {
|
||||
// CECTaskInterface.WriteLog(0, (int)pTempl.m_FixedData.m_ID, 0, "Cant Load Task");
|
||||
// // LOG_DELETE(pTempl);
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// AddOneTaskTempl(pTempl);
|
||||
// // TaskInterface::WriteLog(0, pTempl->m_ID, 2, "LoadTask");
|
||||
// }
|
||||
//
|
||||
// Debug.Log($" Finished loading {m_TaskTemplMap.Count} task templates.");
|
||||
//
|
||||
// // // char log[1024];
|
||||
// // // sprintf(log, "LoadTask, Count = %d", m_TaskTemplMap.size());
|
||||
// // // TaskInterface::WriteLog(0, 0, 2, log);
|
||||
//
|
||||
// // //todo: check
|
||||
// // // LOG_DELETE_ARR(pOffs);
|
||||
// fs.Close();
|
||||
// #if !_TASK_CLIENT
|
||||
// UpdateTimeLimitCheckList();
|
||||
// #else
|
||||
// SortTasksCanSeekOut();
|
||||
// #endif
|
||||
//
|
||||
//
|
||||
// #if _ELEMENTCLIENT
|
||||
// // TODO: implement task error logging if needed
|
||||
// // _task_err.Release();
|
||||
// // _task_err.Init("Configs\\task_err.txt", true);
|
||||
// #endif
|
||||
//
|
||||
// return true;
|
||||
|
||||
BMLogger.Log("[Dat]- szPackPath: " + szPackPath);
|
||||
|
||||
if (!File.Exists(szPackPath))
|
||||
{
|
||||
BMLogger.LogError("[Dat]- File not found: " + szPackPath);
|
||||
return false;
|
||||
}
|
||||
|
||||
long readBytes = 0;
|
||||
FileStream fs = new FileStream(szPackPath, FileMode.Open, FileAccess.Read);
|
||||
|
||||
TASK_PACK_HEADER tph = AAssit.ReadFromBinaryOf<TASK_PACK_HEADER>(fs, ref readBytes);
|
||||
|
||||
if (tph.magic != TASK_PACK_MAGIC
|
||||
|| tph.version != _task_templ_cur_version)
|
||||
return false;
|
||||
|
||||
if (tph.item_count == 0) return true;
|
||||
|
||||
uint[] pOffs = new uint[tph.item_count];
|
||||
g_ulNewCount++;
|
||||
|
||||
|
||||
// fread(pOffs, sizeof(long), tph.item_count, fp);
|
||||
// read File and prepare offset array before loading tasks
|
||||
pOffs = AAssit.ReadArrayFromBinary<uint>(fs, (int)tph.item_count, ref readBytes);
|
||||
|
||||
Debug.Log((int)tph.item_count);
|
||||
//BMLogger.Log($" [MH] Task File Lenght: {fs.Length}");
|
||||
// for (int i = 2058; i < 2059; i++) //TODO: tph.item_count
|
||||
Debug.Log($" Starting to load {tph.item_count} task templates...");
|
||||
for (int i = 0; i < tph.item_count; i++)
|
||||
{
|
||||
// mvoe file pointer to task offset
|
||||
fs.Seek(pOffs[i], SeekOrigin.Begin);
|
||||
// BMLogger.Log(" [MH] Loading Task Templ at offset: " + pOffs[i]);
|
||||
|
||||
ATaskTempl pTempl = new ATaskTempl();
|
||||
g_ulNewCount++;
|
||||
|
||||
// Debug.Log($"Task Index {i}: Attempting to load task template...");
|
||||
if (!pTempl.LoadFromBinFile(fs))
|
||||
{
|
||||
CECTaskInterface.WriteLog(0, (int)pTempl.m_FixedData.m_ID, 0, "Cant Load Task");
|
||||
// LOG_DELETE(pTempl);
|
||||
continue;
|
||||
}
|
||||
|
||||
AddOneTaskTempl(pTempl);
|
||||
// TaskInterface::WriteLog(0, pTempl->m_ID, 2, "LoadTask");
|
||||
}
|
||||
List<ATaskTempl> loadedTasks;
|
||||
|
||||
// thread-safe capture
|
||||
Action<float> workerReport = p =>
|
||||
{
|
||||
// workerProgress = p;
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
// background thread
|
||||
loadedTasks = await UniTask.RunOnThreadPool(() => LoadTasksFromPack_Internal(szPackPath, onProgress, token), cancellationToken: token);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogException(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
Debug.Log($" Starting to load {loadedTasks.Count} task templates...");
|
||||
|
||||
// int batch = 0;
|
||||
// foreach (var templ in loadedTasks)
|
||||
// {
|
||||
// AddOneTaskTempl(templ);
|
||||
// g_ulNewCount++;
|
||||
//
|
||||
// // avoid frame spike
|
||||
// if (++batch >= 20)
|
||||
// {
|
||||
// batch = 0;
|
||||
// await UniTask.Yield();
|
||||
// }
|
||||
// }
|
||||
|
||||
int count = loadedTasks.Count;
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
AddOneTaskTempl(loadedTasks[i]);
|
||||
g_ulNewCount++;
|
||||
|
||||
onProgress?.Invoke(0.8f + (i + 1) / (float)count * 0.2f);
|
||||
|
||||
if (i % 20 == 0)
|
||||
await UniTask.Yield();
|
||||
}
|
||||
|
||||
onProgress?.Invoke(1f);
|
||||
|
||||
Debug.Log($" Finished loading {m_TaskTemplMap.Count} task templates.");
|
||||
|
||||
// // char log[1024];
|
||||
// // sprintf(log, "LoadTask, Count = %d", m_TaskTemplMap.size());
|
||||
// // TaskInterface::WriteLog(0, 0, 2, log);
|
||||
|
||||
// //todo: check
|
||||
// // LOG_DELETE_ARR(pOffs);
|
||||
fs.Close();
|
||||
#if !_TASK_CLIENT
|
||||
UpdateTimeLimitCheckList();
|
||||
UpdateTimeLimitCheckList();
|
||||
#else
|
||||
SortTasksCanSeekOut();
|
||||
#endif
|
||||
|
||||
|
||||
#if _ELEMENTCLIENT
|
||||
// TODO: implement task error logging if needed
|
||||
// _task_err.Release();
|
||||
// _task_err.Init("Configs\\task_err.txt", true);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static List<ATaskTempl> LoadTasksFromPack_Internal(string szPackPath, Action<float> onProgress, CancellationToken token)
|
||||
{
|
||||
long readBytes = 0;
|
||||
var tasks = new List<ATaskTempl>();
|
||||
|
||||
using (var fs = new FileStream(
|
||||
szPackPath,
|
||||
FileMode.Open,
|
||||
FileAccess.Read,
|
||||
FileShare.Read))
|
||||
{
|
||||
TASK_PACK_HEADER tph =
|
||||
AAssit.ReadFromBinaryOf<TASK_PACK_HEADER>(fs, ref readBytes);
|
||||
|
||||
if (tph.magic != TASK_PACK_MAGIC ||
|
||||
tph.version != _task_templ_cur_version)
|
||||
throw new Exception("Invalid task pack header");
|
||||
|
||||
if (tph.item_count == 0)
|
||||
return tasks;
|
||||
|
||||
uint[] pOffs =
|
||||
AAssit.ReadArrayFromBinary<uint>(fs, (int)tph.item_count, ref readBytes);
|
||||
|
||||
const float TASK_LOAD_WEIGHT = 0.8f;
|
||||
for (int i = 0; i < tph.item_count; i++)
|
||||
{
|
||||
if (token.IsCancellationRequested)
|
||||
return tasks;
|
||||
// percentCount += percent;
|
||||
float progress =
|
||||
((i + 1) / (float)tph.item_count) * TASK_LOAD_WEIGHT;
|
||||
onProgress?.Invoke(progress);
|
||||
// LoadingSceneController.Instance.UpdateUI(percentCount);
|
||||
// Debug.LogError($"pc: {percentCount}");
|
||||
fs.Seek(pOffs[i], SeekOrigin.Begin);
|
||||
|
||||
ATaskTempl templ = new ATaskTempl();
|
||||
|
||||
if (!templ.LoadFromBinFile(fs))
|
||||
continue;
|
||||
|
||||
tasks.Add(templ);
|
||||
}
|
||||
}
|
||||
|
||||
return tasks;
|
||||
}
|
||||
|
||||
|
||||
// General method to read a struct from a FileStream
|
||||
private T ReadStruct<T>(FileStream stream) where T : struct
|
||||
@@ -177,95 +296,205 @@ namespace BrewMonster.Scripts.Task
|
||||
handle.Free();
|
||||
}
|
||||
}
|
||||
public bool LoadNPCInfoFromPack(string szPath)
|
||||
public async UniTask<bool> LoadNPCInfoFromPack(string szPath)
|
||||
{
|
||||
// TODO: Implement NPC info loading if needed
|
||||
// FILE* fp = fopen(szPath, "rb");
|
||||
FileStream fp = new FileStream(szPath, FileMode.Open, FileAccess.Read);
|
||||
// if (fp == null)
|
||||
// {
|
||||
// TaskInterface::WriteLog(0, 0, 0, "LoadNPCInfoFromPack, no such file");
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// fseek(fp, 0, SEEK_END);
|
||||
// size_t sz = ftell(fp);
|
||||
// fseek(fp, 0, SEEK_SET);
|
||||
long sz = fp.Length;
|
||||
|
||||
if (sz == 0)
|
||||
// // TODO: Implement NPC info loading if needed
|
||||
// // FILE* fp = fopen(szPath, "rb");
|
||||
// FileStream fp = new FileStream(szPath, FileMode.Open, FileAccess.Read);
|
||||
// // if (fp == null)
|
||||
// // {
|
||||
// // TaskInterface::WriteLog(0, 0, 0, "LoadNPCInfoFromPack, no such file");
|
||||
// // return false;
|
||||
// // }
|
||||
//
|
||||
// // fseek(fp, 0, SEEK_END);
|
||||
// // size_t sz = ftell(fp);
|
||||
// // fseek(fp, 0, SEEK_SET);
|
||||
// long sz = fp.Length;
|
||||
//
|
||||
// if (sz == 0)
|
||||
// {
|
||||
// BMLogger.LogError("[ATaskTemplMan] LoadNPCInfoFromPack, file size is 0");
|
||||
// fp.Close();
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// long offset = 0;
|
||||
// byte[] buf = new Byte[sz];
|
||||
// g_ulNewCount++;
|
||||
// // fread(buf, 1, sz, fp);
|
||||
// buf = AAssit.ReadArrayFromBinary<byte>( fp, (int)sz, ref offset);
|
||||
// // fclose(fp);
|
||||
// fp.Close();
|
||||
//
|
||||
// if (!UnmarshalNPCInfo(buf, (int)sz, false))
|
||||
// {
|
||||
// // LOG_DELETE_ARR(buf);
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// #if _TASK_CLIENT
|
||||
// // LOG_DELETE_ARR(buf);
|
||||
// #else
|
||||
// m_pNPCInfoData = buf;
|
||||
// m_ulNPCInfoDataSize = (uint)sz;
|
||||
// #endif
|
||||
//
|
||||
// return true;
|
||||
if (!File.Exists(szPath))
|
||||
{
|
||||
BMLogger.LogError("[ATaskTemplMan] LoadNPCInfoFromPack, file size is 0");
|
||||
fp.Close();
|
||||
BMLogger.LogError("[ATaskTemplMan] LoadNPCInfoFromPack, no such file");
|
||||
return false;
|
||||
}
|
||||
|
||||
long offset = 0;
|
||||
byte[] buf = new Byte[sz];
|
||||
byte[] buf;
|
||||
|
||||
try
|
||||
{
|
||||
// 1️⃣ background thread
|
||||
buf = await UniTask.RunOnThreadPool(
|
||||
() => LoadNPCInfoFromPack_Internal(szPath)
|
||||
);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogException(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 2️⃣ main thread (Unity-safe)
|
||||
g_ulNewCount++;
|
||||
// fread(buf, 1, sz, fp);
|
||||
buf = AAssit.ReadArrayFromBinary<byte>( fp, (int)sz, ref offset);
|
||||
// fclose(fp);
|
||||
fp.Close();
|
||||
|
||||
if (!UnmarshalNPCInfo(buf, (int)sz, false))
|
||||
{
|
||||
// LOG_DELETE_ARR(buf);
|
||||
if (!UnmarshalNPCInfo(buf, buf.Length, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
#if _TASK_CLIENT
|
||||
// LOG_DELETE_ARR(buf);
|
||||
// nothing to store
|
||||
#else
|
||||
m_pNPCInfoData = buf;
|
||||
m_ulNPCInfoDataSize = (uint)sz;
|
||||
m_pNPCInfoData = buf;
|
||||
m_ulNPCInfoDataSize = (uint)buf.Length;
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
public void VerifyDynTasksPack(string szPath)
|
||||
private static byte[] LoadNPCInfoFromPack_Internal(string szPath)
|
||||
{
|
||||
// TODO: Implement dynamic task pack verification if needed
|
||||
// strcpy(m_szDynPackPath, szPath);
|
||||
m_szDynPackPath = szPath;
|
||||
|
||||
|
||||
// FILE* fp = fopen(szPath, "rb");
|
||||
FileStream fp = new FileStream(szPath, FileMode.Open, FileAccess.Read);
|
||||
// if (fp == NULL) return;
|
||||
|
||||
// C++
|
||||
// fseek(fp, 0, SEEK_END);
|
||||
// size_t sz = ftell(fp);
|
||||
// fseek(fp, 0, SEEK_SET);
|
||||
|
||||
// C#
|
||||
long offset = 0;
|
||||
long sz = fp.Length;
|
||||
|
||||
int header_sz = Marshal.SizeOf<DYN_TASK_PACK_HEADER>();
|
||||
|
||||
if (sz < header_sz)
|
||||
using (var fs = new FileStream(
|
||||
szPath,
|
||||
FileMode.Open,
|
||||
FileAccess.Read,
|
||||
FileShare.Read))
|
||||
{
|
||||
// fclose(fp);
|
||||
fp.Close();
|
||||
return;
|
||||
long sz = fs.Length;
|
||||
|
||||
if (sz == 0)
|
||||
throw new Exception("NPC info file size is 0");
|
||||
|
||||
long offset = 0;
|
||||
|
||||
return AAssit.ReadArrayFromBinary<byte>(
|
||||
fs,
|
||||
(int)sz,
|
||||
ref offset
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public async UniTask<bool> VerifyDynTasksPack(string szPath)
|
||||
{
|
||||
// // TODO: Implement dynamic task pack verification if needed
|
||||
// // strcpy(m_szDynPackPath, szPath);
|
||||
// m_szDynPackPath = szPath;
|
||||
//
|
||||
//
|
||||
// // FILE* fp = fopen(szPath, "rb");
|
||||
// FileStream fp = new FileStream(szPath, FileMode.Open, FileAccess.Read);
|
||||
// // if (fp == NULL) return;
|
||||
//
|
||||
// // C++
|
||||
// // fseek(fp, 0, SEEK_END);
|
||||
// // size_t sz = ftell(fp);
|
||||
// // fseek(fp, 0, SEEK_SET);
|
||||
//
|
||||
// // C#
|
||||
// long offset = 0;
|
||||
// long sz = fp.Length;
|
||||
//
|
||||
// int header_sz = Marshal.SizeOf<DYN_TASK_PACK_HEADER>();
|
||||
//
|
||||
// if (sz < header_sz)
|
||||
// {
|
||||
// // fclose(fp);
|
||||
// fp.Close();
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// // C++
|
||||
// // char* buf = new char[header_sz];
|
||||
// // g_ulNewCount++;
|
||||
// // fread(buf, 1, header_sz, fp);
|
||||
// // fclose(fp);
|
||||
//
|
||||
// byte[] buf = new byte[header_sz];
|
||||
// g_ulNewCount++;
|
||||
// buf = AAssit.ReadArrayFromBinary<byte>(fp, header_sz, ref offset);
|
||||
// fp.Close();
|
||||
//
|
||||
// UnmarshalDynTasks(buf, header_sz, true);
|
||||
// // LOG_DELETE_ARR(buf);
|
||||
// store path on main thread
|
||||
m_szDynPackPath = szPath;
|
||||
|
||||
if (!File.Exists(szPath))
|
||||
return false;
|
||||
|
||||
byte[] headerBuf;
|
||||
|
||||
try
|
||||
{
|
||||
// 1️⃣ background thread
|
||||
headerBuf = await UniTask.RunOnThreadPool(
|
||||
() => VerifyDynTasksPack_Internal(szPath)
|
||||
);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogException(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
// C++
|
||||
// char* buf = new char[header_sz];
|
||||
// g_ulNewCount++;
|
||||
// fread(buf, 1, header_sz, fp);
|
||||
// fclose(fp);
|
||||
|
||||
byte[] buf = new byte[header_sz];
|
||||
g_ulNewCount++;
|
||||
buf = AAssit.ReadArrayFromBinary<byte>(fp, header_sz, ref offset);
|
||||
fp.Close();
|
||||
if (headerBuf == null)
|
||||
return false;
|
||||
|
||||
UnmarshalDynTasks(buf, header_sz, true);
|
||||
// LOG_DELETE_ARR(buf);
|
||||
// 2️⃣ main thread
|
||||
g_ulNewCount++;
|
||||
UnmarshalDynTasks(headerBuf, headerBuf.Length, true);
|
||||
return true;
|
||||
}
|
||||
private static byte[] VerifyDynTasksPack_Internal(string szPath)
|
||||
{
|
||||
using (var fs = new FileStream(
|
||||
szPath,
|
||||
FileMode.Open,
|
||||
FileAccess.Read,
|
||||
FileShare.Read))
|
||||
{
|
||||
long sz = fs.Length;
|
||||
int headerSize = Marshal.SizeOf<DYN_TASK_PACK_HEADER>();
|
||||
|
||||
if (sz < headerSize)
|
||||
return null;
|
||||
|
||||
long offset = 0;
|
||||
|
||||
return AAssit.ReadArrayFromBinary<byte>(
|
||||
fs,
|
||||
headerSize,
|
||||
ref offset
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public ATaskTempl GetTopTaskByID(uint ulID)
|
||||
{
|
||||
|
||||
@@ -4,8 +4,10 @@ using PerfectWorld.Scripts.Task;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using BrewMonster.UI;
|
||||
using CSNetwork;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using System;
|
||||
|
||||
@@ -309,6 +311,14 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
public class CECTaskInterface : TaskInterface
|
||||
{
|
||||
private CancellationTokenSource _cts;
|
||||
|
||||
public void Despose()
|
||||
{
|
||||
_cts?.Cancel();
|
||||
_cts?.Dispose();
|
||||
}
|
||||
|
||||
public int GetCurHistoryStageIndex()
|
||||
{
|
||||
return EC_Game.GetGameRun().GetCurStageIndex() + 1;
|
||||
@@ -370,16 +380,19 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
|
||||
// Initialize object
|
||||
public bool Init(byte[] pActiveListBuf, int iActiveListLen, byte[] pFinishedListBuf,
|
||||
public async UniTask<bool> Init(byte[] pActiveListBuf, int iActiveListLen, byte[] pFinishedListBuf,
|
||||
int iFinishedListLen, byte[] pFinishedTimeListBuf, int iFinishedTimeListLen,
|
||||
byte[] pFinishedCountListBuf, int iFinishedCountListLen, byte[] pStorageTaskListBuf, int iStorageTaskListLen)
|
||||
{
|
||||
_cts = new CancellationTokenSource();
|
||||
// basic argument check (converted from ASSERT)
|
||||
if (pActiveListBuf == null || pFinishedListBuf == null || pFinishedTimeListBuf == null || pFinishedCountListBuf == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// SceneLoader.SceneLoadProcess = SceneLoadProcess.Loading;
|
||||
// SceneLoader.LoadingProgress = 0;
|
||||
LoadingSceneController.Instance.ShowLoadingScene(true);
|
||||
|
||||
m_pActiveListBuf = new ActiveTaskList();
|
||||
m_pActiveListBuf.ReadFromBuffer(pActiveListBuf);
|
||||
@@ -414,6 +427,9 @@ namespace BrewMonster.Scripts.Task
|
||||
|
||||
ATaskTemplMan pTaskMan = GetTaskTemplMan();
|
||||
pTaskMan.Release();
|
||||
LoadingSceneController.Instance.ShowLoadingScene(true);
|
||||
LoadingSceneController.Instance.UpdateUI(0f);
|
||||
LoadingSceneController.Instance.SetLoadingText("Loading Tasks From Pack");
|
||||
|
||||
#if UNITY_EDITOR
|
||||
if (TaskTest.Instance &&
|
||||
@@ -425,19 +441,28 @@ namespace BrewMonster.Scripts.Task
|
||||
else
|
||||
{
|
||||
string task_data_path = Path.Combine(Application.streamingAssetsPath, "data/tasks.data");
|
||||
pTaskMan.LoadTasksFromPack(task_data_path, true);
|
||||
await pTaskMan.LoadTasksFromPack(task_data_path, true, (x) =>
|
||||
{
|
||||
UniTask.Void(async () =>
|
||||
{
|
||||
await UniTask.SwitchToMainThread();
|
||||
LoadingSceneController.Instance.UpdateUI(x);
|
||||
});
|
||||
}, _cts.Token);
|
||||
}
|
||||
#else
|
||||
string task_data_path = Path.Combine(Application.streamingAssetsPath, "data/tasks.data");
|
||||
pTaskMan.LoadTasksFromPack(task_data_path, true);
|
||||
await pTaskMan.LoadTasksFromPack(task_data_path, true);
|
||||
#endif
|
||||
var task_npc_path = Path.Combine(Application.streamingAssetsPath, "data/task_npc.data");
|
||||
pTaskMan.LoadNPCInfoFromPack(task_npc_path);
|
||||
await pTaskMan.LoadNPCInfoFromPack(task_npc_path);
|
||||
|
||||
var dyn_tasks_path = Path.Combine(Application.streamingAssetsPath, "data/dyn_tasks.data");
|
||||
pTaskMan.VerifyDynTasksPack(dyn_tasks_path);
|
||||
await pTaskMan.VerifyDynTasksPack(dyn_tasks_path);
|
||||
|
||||
InitActiveTaskList();
|
||||
SceneLoader.SceneLoadProcess = SceneLoadProcess.EndLoading;
|
||||
LoadingSceneController.Instance.ShowLoadingScene(false);
|
||||
|
||||
m_bForceNavigateFinish = false;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using BrewMonster.Network;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using PerfectWorld.Scripts.Task;
|
||||
|
||||
namespace BrewMonster.Scripts.Task
|
||||
@@ -47,7 +48,7 @@ namespace BrewMonster.Scripts.Task
|
||||
|
||||
public interface TaskInterface
|
||||
{
|
||||
bool Init(byte[] pActiveListBuf, int iActiveListLen, byte[] pFinishedListBuf,
|
||||
UniTask<bool> Init(byte[] pActiveListBuf, int iActiveListLen, byte[] pFinishedListBuf,
|
||||
int iFinishedListLen, byte[] pFinishedTimeListBuf, int iFinishedTimeListLen,
|
||||
byte[] pFinishedCountListBuf, int iFinishedCountListLen, byte[] pStorageTaskListBuf,
|
||||
int iStorageTaskListLen);
|
||||
|
||||
@@ -2,6 +2,7 @@ using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using BrewMonster.Scripts.Task.UI;
|
||||
using BrewMonster.Scripts.UI;
|
||||
using ModelRenderer.Scripts.Common;
|
||||
@@ -15,14 +16,39 @@ namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
public static ATaskTemplMan m_pTaskMan; // use static to store loaded data across instances
|
||||
public bool WasLoadTaskData = false;
|
||||
public bool AutoLoadData;
|
||||
|
||||
[Header("Test Dlg Award Options")]
|
||||
[SerializeField] private uint _awardItemID = 1001;
|
||||
[SerializeField] private KeyCode _awardkey = KeyCode.A;
|
||||
|
||||
private CancellationTokenSource _cts;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
_cts = new CancellationTokenSource();
|
||||
}
|
||||
|
||||
|
||||
private void OnValidate()
|
||||
{
|
||||
WasLoadTaskData = m_pTaskMan != null && m_pTaskMan.TaskLoadedCount > 0;
|
||||
if (!WasLoadTaskData && AutoLoadData)
|
||||
{
|
||||
LoadTaskData();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
_cts?.Cancel();
|
||||
_cts?.Dispose();
|
||||
}
|
||||
|
||||
private void OnApplicationQuit()
|
||||
{
|
||||
_cts?.Cancel();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@@ -96,7 +122,7 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
|
||||
[ContextMenu("Load Data")]
|
||||
void LoadTaskData()
|
||||
async void LoadTaskData()
|
||||
{
|
||||
if (m_pTaskMan == null)
|
||||
{
|
||||
@@ -104,7 +130,7 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
|
||||
string path = Path.Combine(Application.streamingAssetsPath, "data/tasks.data");
|
||||
WasLoadTaskData = m_pTaskMan.LoadTasksFromPack(path, true);
|
||||
WasLoadTaskData = await m_pTaskMan.LoadTasksFromPack(path, true,(x)=>{},_cts.Token);
|
||||
}
|
||||
|
||||
[ContextMenu("Test Size")]
|
||||
|
||||
@@ -125,6 +125,9 @@ namespace BrewMonster.UI
|
||||
return;
|
||||
}
|
||||
};
|
||||
SceneLoader.SceneLoadProcess = SceneLoadProcess.Loading;
|
||||
SceneLoader.LoadingProgress = 0;
|
||||
LoadingSceneController.Instance.ShowLoadingScene(true);
|
||||
#if TESTFAST
|
||||
string nameScene = "LoginScene";
|
||||
SceneManager.UnloadSceneAsync(nameScene);
|
||||
|
||||
@@ -360,6 +360,82 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &535331371728200948
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4202523748155545876}
|
||||
- component: {fileID: 2952546852855517335}
|
||||
- component: {fileID: 231049257684701080}
|
||||
m_Layer: 5
|
||||
m_Name: title_balo
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4202523748155545876
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 535331371728200948}
|
||||
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: 1758437320524330128}
|
||||
m_Father: {fileID: 5834405183358786743}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0.9196167, y: -32.088013}
|
||||
m_SizeDelta: {x: -1174.1528, y: 43.0516}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2952546852855517335
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 535331371728200948}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &231049257684701080
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 535331371728200948}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
||||
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 &539155720282061380
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1317,7 +1393,8 @@ RectTransform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 7063925482172052076}
|
||||
m_Father: {fileID: 4359352035478671586}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -1594,8 +1671,8 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: 11
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
@@ -1800,7 +1877,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!224 &3465722549101332612
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3938,6 +4015,142 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &2651905178962461676
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2029797512223769462}
|
||||
- component: {fileID: 954330309280962804}
|
||||
- component: {fileID: 7865823041554444481}
|
||||
m_Layer: 5
|
||||
m_Name: Label
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2029797512223769462
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2651905178962461676}
|
||||
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: 3519332252817144425}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: -104, y: 25}
|
||||
m_SizeDelta: {x: 188.11, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &954330309280962804
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2651905178962461676}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7865823041554444481
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2651905178962461676}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: "Hi\u1EC7n th\u1EDDi trang"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, 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: 32
|
||||
m_fontSizeBase: 32
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 1024
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
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 &2750592509987921328
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -5593,7 +5806,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 20.288, y: -0.00000047683716}
|
||||
m_AnchoredPosition: {x: 20.288, y: -6}
|
||||
m_SizeDelta: {x: 40.576, y: 40.5751}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &17867925239596439
|
||||
@@ -6072,6 +6285,142 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &4220640036313436020
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3208901167605625288}
|
||||
- component: {fileID: 7569386033128686724}
|
||||
- component: {fileID: 5071637812459310285}
|
||||
m_Layer: 5
|
||||
m_Name: text_task
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3208901167605625288
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4220640036313436020}
|
||||
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: 6872360865646447011}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0.6865, y: 3.5278}
|
||||
m_SizeDelta: {x: -41.1884, y: -19.5462}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7569386033128686724
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4220640036313436020}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5071637812459310285
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4220640036313436020}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: "Nhi\u1EC7m v\u1EE5"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, 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: 34
|
||||
m_fontSizeBase: 34
|
||||
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_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 &4264043294859808470
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -6852,7 +7201,8 @@ RectTransform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 8707107604074202174}
|
||||
m_Father: {fileID: 4359352035478671586}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -6972,12 +7322,13 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 9214110446265192471}
|
||||
- {fileID: 2029797512223769462}
|
||||
- {fileID: 3465722549101332612}
|
||||
m_Father: {fileID: 7808448733240891499}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 9.2092, y: -0.00000071525574}
|
||||
m_AnchoredPosition: {x: -7, y: -0.00000071525574}
|
||||
m_SizeDelta: {x: 233.3818, y: 57.4129}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &7290315594166205190
|
||||
@@ -8068,6 +8419,7 @@ RectTransform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4202523748155545876}
|
||||
- {fileID: 9128617693675511206}
|
||||
- {fileID: 4137397199301223842}
|
||||
- {fileID: 7205431771786927886}
|
||||
@@ -8075,7 +8427,7 @@ RectTransform:
|
||||
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: 41.1442, y: 3.2666}
|
||||
m_AnchoredPosition: {x: 54, y: 318}
|
||||
m_SizeDelta: {x: 1633.0076, y: 911.9714}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6612065338353497036
|
||||
@@ -8216,6 +8568,7 @@ MonoBehaviour:
|
||||
cashTextsLegacy: []
|
||||
cashTextsTMP:
|
||||
- {fileID: 0}
|
||||
currentDragImage: {fileID: 0}
|
||||
--- !u!1 &5959049729314796227
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -8882,6 +9235,142 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &6223446317805777605
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1758437320524330128}
|
||||
- component: {fileID: 1127961836107974907}
|
||||
- component: {fileID: 8134697103255324050}
|
||||
m_Layer: 5
|
||||
m_Name: title_text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1758437320524330128
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6223446317805777605}
|
||||
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: 4202523748155545876}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1127961836107974907
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6223446317805777605}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8134697103255324050
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6223446317805777605}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: "T\xFAi \u0111\u1ED3"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, 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: 42
|
||||
m_fontSizeBase: 42
|
||||
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_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 &6255257731783554890
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -9505,8 +9994,8 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: 11
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
@@ -9879,7 +10368,8 @@ RectTransform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 3208901167605625288}
|
||||
m_Father: {fileID: 4359352035478671586}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -10349,6 +10839,142 @@ MonoBehaviour:
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!1 &7279443163137723823
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8707107604074202174}
|
||||
- component: {fileID: 1876596778309067016}
|
||||
- component: {fileID: 1378956422077819937}
|
||||
m_Layer: 5
|
||||
m_Name: text_task
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8707107604074202174
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7279443163137723823}
|
||||
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: 7214549036987193986}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -0.3981018, y: 2.8694}
|
||||
m_SizeDelta: {x: -41.9847, y: -21.7202}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1876596778309067016
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7279443163137723823}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1378956422077819937
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7279443163137723823}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: "Th\u1EDDi trang"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, 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: 34
|
||||
m_fontSizeBase: 34
|
||||
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_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 &7279759448364560869
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -11623,6 +12249,142 @@ RectTransform:
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 551, y: 7.1924}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &8583259348320495074
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7063925482172052076}
|
||||
- component: {fileID: 2689480142295059469}
|
||||
- component: {fileID: 4434492319627725834}
|
||||
m_Layer: 5
|
||||
m_Name: text_item
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7063925482172052076
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8583259348320495074}
|
||||
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: 64585481268713917}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -0.68640137, y: 3.7756004}
|
||||
m_SizeDelta: {x: -42.5614, y: -21.2807}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2689480142295059469
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8583259348320495074}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4434492319627725834
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8583259348320495074}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: "V\u1EADt ph\u1EA9m"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, 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: 34
|
||||
m_fontSizeBase: 34
|
||||
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_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 &8589115324229298066
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -0,0 +1,792 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &237530162348205230
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6954598778548246722}
|
||||
- component: {fileID: 3039664736528355014}
|
||||
- component: {fileID: 7270640488870520982}
|
||||
m_Layer: 5
|
||||
m_Name: PercentLabel
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6954598778548246722
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 237530162348205230}
|
||||
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: 2870929995814517053}
|
||||
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.14340019}
|
||||
m_SizeDelta: {x: 0, y: -24.9456}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3039664736528355014
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 237530162348205230}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7270640488870520982
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 237530162348205230}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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%
|
||||
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: 21.2
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 1
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
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 &752022102156491388
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6794110919409434385}
|
||||
- component: {fileID: 2006518316736665754}
|
||||
- component: {fileID: 2487042404357809237}
|
||||
m_Layer: 5
|
||||
m_Name: BG
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &6794110919409434385
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 752022102156491388}
|
||||
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: 2870929995814517053}
|
||||
m_Father: {fileID: 1498433891306440738}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2006518316736665754
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 752022102156491388}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2487042404357809237
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 752022102156491388}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: 21300000, guid: b17924b6b7c78b74f8bd81beb6099972, type: 3}
|
||||
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 &1253822099379841126
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8819184454638197523}
|
||||
- component: {fileID: 3556704604394319723}
|
||||
- component: {fileID: 655569369460596013}
|
||||
m_Layer: 5
|
||||
m_Name: Fill
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8819184454638197523
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1253822099379841126}
|
||||
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: 1679867140415222605}
|
||||
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 &3556704604394319723
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1253822099379841126}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &655569369460596013
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1253822099379841126}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.09411765, g: 0.4988748, b: 0.85882354, 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 &1350348288180899800
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2870929995814517053}
|
||||
- component: {fileID: 3961381925820122199}
|
||||
m_Layer: 5
|
||||
m_Name: ProgressBar
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2870929995814517053
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1350348288180899800}
|
||||
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: 7973553455093132000}
|
||||
- {fileID: 1679867140415222605}
|
||||
- {fileID: 7448874308476023876}
|
||||
- {fileID: 6954598778548246722}
|
||||
- {fileID: 4146490789493023576}
|
||||
m_Father: {fileID: 6794110919409434385}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMax: {x: 0.5, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 83.6369}
|
||||
m_SizeDelta: {x: 1855.6492, y: 48.6686}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &3961381925820122199
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1350348288180899800}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: 0
|
||||
m_TargetGraphic: {fileID: 4389115248635797559}
|
||||
m_FillRect: {fileID: 8819184454638197523}
|
||||
m_HandleRect: {fileID: 7640072662976260491}
|
||||
m_Direction: 0
|
||||
m_MinValue: 0
|
||||
m_MaxValue: 1
|
||||
m_WholeNumbers: 0
|
||||
m_Value: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &1682473977380559532
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7973553455093132000}
|
||||
- component: {fileID: 8477954588579120357}
|
||||
- component: {fileID: 7662109531967672966}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7973553455093132000
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1682473977380559532}
|
||||
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: 2870929995814517053}
|
||||
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 &8477954588579120357
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1682473977380559532}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7662109531967672966
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1682473977380559532}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.3443396, g: 0.40371305, 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 &2213993380868078032
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4146490789493023576}
|
||||
- component: {fileID: 4592186959237053483}
|
||||
- component: {fileID: 2031915970332984306}
|
||||
m_Layer: 5
|
||||
m_Name: TaskLabel
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4146490789493023576
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2213993380868078032}
|
||||
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: 2870929995814517053}
|
||||
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: 27.5}
|
||||
m_SizeDelta: {x: 0, y: -24.9456}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4592186959237053483
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2213993380868078032}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2031915970332984306
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2213993380868078032}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: Loading
|
||||
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: 4278255369
|
||||
m_fontColor: {r: 0.034500837, g: 1, b: 0, 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: 21.2
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 1
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 1
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
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 &3384898060590067801
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7448874308476023876}
|
||||
m_Layer: 5
|
||||
m_Name: Handle Slide Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7448874308476023876
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3384898060590067801}
|
||||
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: 7640072662976260491}
|
||||
m_Father: {fileID: 2870929995814517053}
|
||||
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 &6500472629937108760
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1498433891306440738}
|
||||
- component: {fileID: 6418851540371260803}
|
||||
m_Layer: 5
|
||||
m_Name: LoadingUI
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1498433891306440738
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6500472629937108760}
|
||||
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: 6794110919409434385}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &6418851540371260803
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6500472629937108760}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c0f91323d4b23b4428e423d2c724d821, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
goContent: {fileID: 752022102156491388}
|
||||
progressBar: {fileID: 3961381925820122199}
|
||||
percentText: {fileID: 7270640488870520982}
|
||||
loadingText: {fileID: 2031915970332984306}
|
||||
--- !u!1 &6559642003620323789
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1679867140415222605}
|
||||
m_Layer: 5
|
||||
m_Name: Fill Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1679867140415222605
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6559642003620323789}
|
||||
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: 8819184454638197523}
|
||||
m_Father: {fileID: 2870929995814517053}
|
||||
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.06518555, y: 0}
|
||||
m_SizeDelta: {x: -10.1305, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &6895589902788730412
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7640072662976260491}
|
||||
- component: {fileID: 7048533629971895957}
|
||||
- component: {fileID: 4389115248635797559}
|
||||
m_Layer: 5
|
||||
m_Name: Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &7640072662976260491
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6895589902788730412}
|
||||
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: 7448874308476023876}
|
||||
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: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7048533629971895957
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6895589902788730412}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4389115248635797559
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6895589902788730412}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: 4b2c2bde3e2945e4ba4516d08d755aeb
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -11,7 +11,7 @@ GameObject:
|
||||
- component: {fileID: 8811543958641262336}
|
||||
- component: {fileID: 5654695830126511408}
|
||||
- component: {fileID: 8557697417454442642}
|
||||
- component: {fileID: 7260516219833576421}
|
||||
- component: {fileID: 5585424994453215618}
|
||||
m_Layer: 5
|
||||
m_Name: LeftPanel
|
||||
m_TagString: Untagged
|
||||
@@ -30,7 +30,8 @@ RectTransform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 4991868400217017228}
|
||||
m_Father: {fileID: 5968911800527563993}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -76,7 +77,7 @@ MonoBehaviour:
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &7260516219833576421
|
||||
--- !u!114 &5585424994453215618
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -85,18 +86,99 @@ MonoBehaviour:
|
||||
m_GameObject: {fileID: 2432735602217839019}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Content: {fileID: 2643174602035272289}
|
||||
m_Horizontal: 0
|
||||
m_Vertical: 1
|
||||
m_MovementType: 1
|
||||
m_Elasticity: 0.1
|
||||
m_Inertia: 1
|
||||
m_DecelerationRate: 0.135
|
||||
m_ScrollSensitivity: 1
|
||||
m_Viewport: {fileID: 4991868400217017228}
|
||||
m_HorizontalScrollbar: {fileID: 0}
|
||||
m_VerticalScrollbar: {fileID: 0}
|
||||
m_HorizontalScrollbarVisibility: 0
|
||||
m_VerticalScrollbarVisibility: 0
|
||||
m_HorizontalScrollbarSpacing: 0
|
||||
m_VerticalScrollbarSpacing: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &3188947102316191659
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2643174602035272289}
|
||||
- component: {fileID: 8239567059120679520}
|
||||
- component: {fileID: 3792152741005663754}
|
||||
m_Layer: 5
|
||||
m_Name: Content
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2643174602035272289
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3188947102316191659}
|
||||
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: 4991868400217017228}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0.0009808608, y: -0.00012207031}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &8239567059120679520
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3188947102316191659}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_HorizontalFit: 2
|
||||
m_VerticalFit: 2
|
||||
--- !u!114 &3792152741005663754
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3188947102316191659}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding:
|
||||
m_Left: 40
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 250
|
||||
m_ChildAlignment: 3
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 0
|
||||
m_ChildForceExpandWidth: 0
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildForceExpandWidth: 1
|
||||
m_ChildForceExpandHeight: 1
|
||||
m_ChildControlWidth: 0
|
||||
m_ChildControlHeight: 0
|
||||
m_ChildScaleWidth: 0
|
||||
@@ -238,6 +320,96 @@ MonoBehaviour:
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &4925246028977896636
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4991868400217017228}
|
||||
- component: {fileID: 2546164430640387909}
|
||||
- component: {fileID: 5536741800137127400}
|
||||
- component: {fileID: 2286220110341525918}
|
||||
m_Layer: 5
|
||||
m_Name: Viewport
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4991868400217017228
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4925246028977896636}
|
||||
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: 2643174602035272289}
|
||||
m_Father: {fileID: 8811543958641262336}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 21.9049, y: 0}
|
||||
m_SizeDelta: {x: -21.905, y: -17}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!222 &2546164430640387909
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4925246028977896636}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5536741800137127400
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4925246028977896636}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
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: 10917, 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 &2286220110341525918
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4925246028977896636}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_ShowMaskGraphic: 0
|
||||
--- !u!1 &6031041715831305634
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -406,7 +578,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
characterItemPrefab: {fileID: 5263746738484752443, guid: 726ee9eade6587245ac1b55d2335e9b9, type: 3}
|
||||
parentItems: {fileID: 8811543958641262336}
|
||||
parentItems: {fileID: 2643174602035272289}
|
||||
--- !u!1 &7510180475820570348
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5f0e60c802cf01eacf4cb214f00e8b7e04dcae61d68d6ed1ce599f2ee0f09db9
|
||||
size 200516379
|
||||
oid sha256:49dbfd3874bae260b9c7fd5cf05128cc19c395f788f891042d55cebf488bb41f
|
||||
size 200520845
|
||||
|
||||
@@ -7,6 +7,7 @@ using UnityEngine;
|
||||
using System.Runtime.InteropServices;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.UI;
|
||||
using Cysharp.Threading.Tasks;
|
||||
|
||||
namespace BrewMonster
|
||||
{
|
||||
@@ -56,7 +57,7 @@ namespace BrewMonster
|
||||
public CECShortcutSet GetShortcutSet1(int n) { return m_aSCSets1[n]; }
|
||||
public CECShortcutSet GetShortcutSet2(int n) { return m_aSCSets2[n]; }
|
||||
|
||||
private void OnMsgHstTaskData(ECMSG Msg)
|
||||
private async UniTaskVoid OnMsgHstTaskData(ECMSG Msg)
|
||||
{
|
||||
// decode header to distinguish TASK_DATA vs TASK_VAR_DATA
|
||||
// if (!(Msg.dwParam2 is cmd_header header))
|
||||
@@ -85,12 +86,13 @@ namespace BrewMonster
|
||||
m_pTaskInterface = null;
|
||||
m_pTaskInterface = new CECTaskInterface(this);
|
||||
|
||||
if (!m_pTaskInterface.Init(
|
||||
pCmd.active_list, (int)pCmd.active_list_size,
|
||||
pCmd.finished_list, (int)pCmd.finished_list_size,
|
||||
pCmd.finished_time_list, (int)pCmd.finished_time_list_size,
|
||||
pCmd.finished_count, (int)pCmd.finished_count_size,
|
||||
pCmd.storage_task, (int)pCmd.storage_task_size))
|
||||
var initTask = await m_pTaskInterface.Init(
|
||||
pCmd.active_list, (int)pCmd.active_list_size,
|
||||
pCmd.finished_list, (int)pCmd.finished_list_size,
|
||||
pCmd.finished_time_list, (int)pCmd.finished_time_list_size,
|
||||
pCmd.finished_count, (int)pCmd.finished_count_size,
|
||||
pCmd.storage_task, (int)pCmd.storage_task_size);
|
||||
if (!initTask)
|
||||
{
|
||||
Debug.LogError("CECHostPlayer::OnMsgHstTaskData, failed to initialize task interface");
|
||||
return;
|
||||
|
||||
@@ -156,6 +156,12 @@ namespace BrewMonster
|
||||
public EC_Inventory PackInventory => m_packInventory;
|
||||
public EC_Inventory EquipInventory => m_equipInventory;
|
||||
public EC_Inventory TaskInventory => m_taskInventory;
|
||||
|
||||
private void OnApplicationQuit()
|
||||
{
|
||||
if(m_pTaskInterface!=null)
|
||||
m_pTaskInterface.Despose();
|
||||
}
|
||||
|
||||
public bool IsMeleeing()
|
||||
{
|
||||
@@ -438,7 +444,7 @@ namespace BrewMonster
|
||||
}
|
||||
case int value when value == EC_MsgDef.MSG_HST_TASKDATA:
|
||||
{
|
||||
OnMsgHstTaskData(Msg);
|
||||
OnMsgHstTaskData(Msg).Forget();
|
||||
//Debug.LogError("[Dat]- OnMsgHstTaskData");
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user