From b00af6cb70a416675136ca20858c28fb014d82cb Mon Sep 17 00:00:00 2001 From: Chomper9981 Date: Tue, 30 Dec 2025 17:32:22 +0700 Subject: [PATCH] add some data to UI --- .../DataProcess/ElementDataManProvider.cs | 2 + .../Common/DataProcess/generate_item_temp.cs | 81 ++++++- .../Scripts/Common/DataProcess/itemdataman.cs | 132 +++++++--- .../PerfectWorld/Scripts/MainFiles/EC_Game.cs | 2 +- .../Scripts/Managers/EC_IvtrItem.cs | 17 +- .../Scripts/UI/DlgAward/AwardItem.cs | 17 +- .../Scripts/UI/DlgAward/CDlgAward.cs | 3 +- Assets/PerfectWorld/UI/Award/DlgAward.prefab | 225 +++++++++++++++++- 8 files changed, 424 insertions(+), 55 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs index a0c091501c..45e9c9355a 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs @@ -33,6 +33,8 @@ namespace BrewMonster await UniTask.DelayFrame(1); } var result = await _elementDataMan.load_data(); + //TODO: this is for testing. move it to other place + itemdataman.load_data("",false); if (result == -1) { BMLogger.LogError("ElementDataManProvider: Failed to load element data"); diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs index e0a5249fe8..b307f10d82 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs @@ -29,7 +29,7 @@ public static class generate_item_temp } size =(uint)(Marshal.SizeOf(typeof(item_data)) + Marshal.SizeOf(typeof(_item_content)) + Marshal.SizeOf(typeof(_weapon_essence))); - // ����׶ï¿? + // ����׶�? uint hole_num = 0; if(normal_addon == GEN_ADDON_MODE.ADDON_LIST_DROP) { @@ -195,13 +195,13 @@ public static class generate_item_temp WriteInt(data, ref offset, temp2); // max_durability // //���������߱�ǩע���ǩ���ڱ����С�ͱ�������֮�� - // *(short*)buf = sizeof(_weapon_essence); buf += sizeof(short); //װ�������С���ֽڣï¿? + // *(short*)buf = sizeof(_weapon_essence); buf += sizeof(short); //װ�������С���ֽڣ�? // memcpy(buf,tag,tag_size); // buf += tag_size; WriteShort(data, ref offset, (short)Marshal.SizeOf(typeof(_weapon_essence))); WriteTag(data, ref offset, tag); - //essence //char ����[]; //ÿ�ֲ�ͬװ���ı���ṹ��Í? + //essence //char ����[]; //ÿ�ֲ�ͬװ���ı���ṹ���? // char * essence_ptr = buf; int essence_ptr = offset; // switch(ess->short_range_mode) @@ -211,7 +211,7 @@ public static class generate_item_temp // case 1: *(short*)buf = 0; break; //���� // case 2: *(short*)buf = 2; break; //�̿ͽ��� // } - // buf += sizeof(short); //������ï¿? ��Ӧģ����Ľ���Զ�̱�Ö? + // buf += sizeof(short); //�������? ��Ӧģ����Ľ���Զ�̱��? switch(ess.short_range_mode) { default: @@ -225,13 +225,13 @@ public static class generate_item_temp WriteShort(data, ref offset, (short)2); break; } - // *(short*)buf = 0; buf += sizeof(short); //���ֵ����ʹ�ï¿? - // *(int*)buf = ess->id_major_type; buf += sizeof(int); //�������� ��Ӧģ����Ĵ��ï¿? ���絶�� ������ + // *(short*)buf = 0; buf += sizeof(short); //���ֵ����ʹ��? + // *(int*)buf = ess->id_major_type; buf += sizeof(int); //�������� ��Ӧģ����Ĵ���? ���絶�� ������ // *(int*)buf = ess->level; buf += sizeof(int); //�������� ijЩ������Ҫ�������� // *(int*)buf = ess->require_projectile; buf += sizeof(int); //��Ҫ��ҩ������ // *(int*)buf = ess->damage_low; buf += sizeof(int); //����������С��ֵ // *(int*)buf = element_data::RandNormal(ess->damage_high_min, ess->damage_high_max, cls,element_data::LOWER_TREND); buf += sizeof(int); //������������ֵ - // *(int*)buf = ess->magic_daage_low; buf += sizeof(int); //ħ���������Ö? + // *(int*)buf = ess->magic_daage_low; buf += sizeof(int); //ħ����������? // *(int*)buf = element_data::RandNormal(ess->magic_damage_high_min, ess->magic_damage_high_max, cls,element_data::LOWER_TREND); buf += sizeof(int); //ħ������ WriteShort(data, ref offset, (short)0); WriteUInt(data, ref offset, ess.id_major_type); @@ -251,7 +251,7 @@ public static class generate_item_temp // else // { // unsigned int index = element_data::RandSelect(&(subtype->probability_fastest), sizeof(float), 5, cls,element_data::MIDDLE_TREND); - // *(int*)buf = (int)(subtype->attack_speed*20.f + 0.1f) + (index - 2); buf += sizeof(int); //ģ���е���0.05���Ö? + // *(int*)buf = (int)(subtype->attack_speed*20.f + 0.1f) + (index - 2); buf += sizeof(int); //ģ���е���0.05����? // } WEAPON_SUB_TYPE subtype = new WEAPON_SUB_TYPE(); object sub_type_temp = itemdataman._edm.get_data_ptr(ess.id_sub_type, ID_SPACE.ID_SPACE_ESSENCE, ref datatype); @@ -273,7 +273,7 @@ public static class generate_item_temp // *(short*)buf = 0; buf += sizeof(short); //�׶��������������� // for(i=0; i>13)*sizeof(int)+sizeof(int); + addon_sld += ((addon_data.id & 0x6000)>>13)*sizeof(int)+sizeof(int); } // memcpy(buf, addon_buf, addon_size); // set_to_classid(DT_WEAPON_ESSENCE, (item_data*)(*data), -1); itemdataman.update_require_data(prerequisition); - WriteAddonData(data, ref offset, addon_data); + // Copy the entire addon buffer instead of writing a single addon_data + if(addon_size > 0) + { + Array.Copy(addon_buf, 0, data, offset, (int)addon_size); + offset += (int)addon_size; + } itemdataman.set_to_classid(DATA_TYPE.DT_WEAPON_ESSENCE, data, -1); return 0; } + public static int generate_tasknormalmatter(uint id, ID_SPACE idspace, out byte[] data, out uint size, RAND_CLASS cls, + GEN_ADDON_MODE normal_addon ,item_tag_t tag,List sa_list = null) + { + // DATA_TYPE datatype; + DATA_TYPE datatype = DATA_TYPE.DT_INVALID; + data = new byte[0]; + size = 0; + int i=0; + // TASKNORMALMATTER_ESSENCE * ess = (TASKNORMALMATTER_ESSENCE *)get_data_ptr(id, idspace, datatype); + object obj = itemdataman._edm.get_data_ptr(id, idspace,ref datatype); + if(obj == null || datatype != DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE) + { + return -1; + } + TASKNORMALMATTER_ESSENCE ess = (TASKNORMALMATTER_ESSENCE)obj; + size =(uint) (Marshal.SizeOf(typeof(item_data)) + Marshal.SizeOf(typeof(TASKNORMALMATTER_ESSENCE))); + data = new byte[size]; + int offset = 0; + WriteUInt(data, ref offset, ess.id); + WriteUInt(data, ref offset, 1); + WriteInt(data, ref offset, ess.pile_num_max); + WriteInt(data, ref offset, 0); + WriteUInt(data, ref offset, ess.proc_type); + WriteInt(data, ref offset, (int)DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE); + if(ess.has_guid == 1) + { + int g1,g2; + itemdataman.get_item_guid(id,out g1,out g2); + WriteInt(data, ref offset, g1); + WriteInt(data, ref offset, g2); + } + else + { + WriteInt(data, ref offset, 0); + WriteInt(data, ref offset, 0); + } + WriteInt(data, ref offset, ess.price); + WriteInt(data, ref offset, 0); + + int content_length; + int content_length_ptr = offset; + WriteInt(data, ref offset, 0); + int item_content = offset; + WriteInt(data, ref offset, 0); + content_length = (int)(size - offset); + WriteInt(data, ref content_length_ptr, content_length); + WriteInt(data, ref item_content, offset); + + itemdataman.set_to_classid(DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE, data, -1); + return 0; + } private static void WriteUInt(byte[] buf, ref int offset, uint value) { Array.Copy(BitConverter.GetBytes(value), 0, buf, offset, 4); diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs index 2ca3acce27..8228de49a7 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; using ModelRenderer.Scripts.GameData; +using System.Runtime.InteropServices; namespace BrewMonster { @@ -283,7 +284,7 @@ namespace BrewMonster public int price; //��Ʒ�ļ۸� public int expire_date; //����ʱ�� public int content_length; - public byte item_content; + public byte[] item_content; }; // #pragma pack(1) public struct _item_content @@ -304,7 +305,7 @@ namespace BrewMonster public int[] arg; public addon_data(int id) { this.id = id; - arg = new int[3]; + arg = new int[]{0,0,0}; } }; public struct prerequisition @@ -382,8 +383,11 @@ namespace BrewMonster public const uint ELEMENTDATAMAN_EQUIP_MASK_HIGH = 0xC0000000; #endregion #endregion - public static Dictionary sale_item_id_index_map; + public static Dictionary sale_item_id_index_map = new Dictionary(); public static elementdataman _edm; + + public static List sale_item_ptr_array = new List(); + public static List sale_item_size_array = new List(); public static int load_data(string pathname, bool disable_bind2) { _edm = ElementDataManProvider.GetElementDataMan(); @@ -407,32 +411,42 @@ namespace BrewMonster // if (dt2 == datatype && ess && disable_bind2) ess->proc_type &= ~(0x0040);\ // } - byte[] item; - uint size; - int ret; - + byte[] item = null; + uint size = 0; + int ret = 0; DATA_TYPE datatype = DATA_TYPE.DT_INVALID; item_tag_t tag = new item_tag_t((char)ITEM_MAKE_TAG.IMT_SHOP, (char)'0'); - //uint id = _edm.get_first_data_id(ID_SPACE.ID_SPACE_ESSENCE,ref datatype); + //uint id = _edm.get_first_data_id(ID_SPACE.ID_SPACE_ESSENCE,ref datatype); - - for (uint id = 0; id < _edm.essence_id_data_type_map.Count; id++) - { - _edm.essence_id_data_type_map.TryGetValue(id, out datatype); + for (int i = 0; i < _edm.essence_id_data_type_map.Count; i++) + { + ret = 0; + uint id = _edm.get_data_id(ID_SPACE.ID_SPACE_ESSENCE, i, ref datatype); switch (datatype) { - case (DATA_TYPE.DT_WEAPON_ESSENCE): - generate_item_temp.generate_weapon(id,ID_SPACE.ID_SPACE_ESSENCE, + case DATA_TYPE.DT_WEAPON_ESSENCE: + ret = generate_item_temp.generate_weapon(id,ID_SPACE.ID_SPACE_ESSENCE, + out item,out size,SPECIFIC.SPECIFIC_RAND,GEN_ADDON_MODE.ADDON_LIST_SHOP,tag); + break; + case DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE: + ret = generate_item_temp.generate_tasknormalmatter(id,ID_SPACE.ID_SPACE_ESSENCE, out item,out size,SPECIFIC.SPECIFIC_RAND,GEN_ADDON_MODE.ADDON_LIST_SHOP,tag); - BMLogger.Log("generate_item_for_sell: generate_weapon: " + id); break; default: - BMLogger.Log("generate_item_for_sell: default: " + id); ret = -1; break; } - } - + //Debug.Log("[THN]return_item_for_sell: ret:" + ret + " size:" + size + " datatype:" + datatype + " id:" + id); + if (ret == 0 && size != 0) + { + sale_item_ptr_array.Add(item); + sale_item_size_array.Add(size); + LOCATION loc; + loc.type = datatype; + loc.pos = sale_item_ptr_array.Count - 1; + sale_item_id_index_map[id] = loc; + } + #region unimplemented // CASE_CLEAR_PROC_TYPE(ARMOR_ESSENCE) // ret = generate_armor(id, ID_SPACE_ESSENCE, (char**)&item, size, element_data::SPECIFIC(0), element_data::ADDON_LIST_SHOP, &tag, sizeof(tag)); @@ -722,28 +736,82 @@ namespace BrewMonster // case DT_NPC_ESSENCE: // default: // continue; + // } - - // if (ret == 0 && size != 0) - // { - // sale_item_ptr_array.push_back(item); - // sale_item_size_array.push_back(size); - // LOCATION loc; - // loc.type = datatype; - // loc.pos = sale_item_ptr_array.size() - 1; - // sale_item_id_index_map[id] = loc; - // } - // } + #endregion + } return 0; } + private static item_data deserialize_item_data(byte[] buffer) + { + // Deserialize item_data from byte array + // Layout matches generate_item_temp.cs serialization order + // type (uint), count (uint written as 1), pile_limit (int), equip_mask (int), + // proc_type (uint), classid (int), guid1 (int), guid2 (int), price (int), expire_date (int), + // content_length (int), item_content pointer (int) + int offset = 0; + item_data item = new item_data(); + + item.type = BitConverter.ToUInt32(buffer, offset); offset += 4; + // count is written as uint but struct has int, read as uint then cast + item.count = (int)BitConverter.ToUInt32(buffer, offset); offset += 4; + item.pile_limit = BitConverter.ToInt32(buffer, offset); offset += 4; + item.equip_mask = BitConverter.ToInt32(buffer, offset); offset += 4; + // proc_type is written as uint but struct has int, read as uint then cast + item.proc_type = (int)BitConverter.ToUInt32(buffer, offset); offset += 4; + item.classid = BitConverter.ToInt32(buffer, offset); offset += 4; + item.guid.guid1 = BitConverter.ToInt32(buffer, offset); offset += 4; + item.guid.guid2 = BitConverter.ToInt32(buffer, offset); offset += 4; + item.price = BitConverter.ToInt32(buffer, offset); offset += 4; + item.expire_date = BitConverter.ToInt32(buffer, offset); offset += 4; + item.content_length = BitConverter.ToInt32(buffer, offset); offset += 4; + + // item_content is stored as an offset/pointer in the buffer (points to where content starts) + int item_content_offset = BitConverter.ToInt32(buffer, offset); offset += 4; + + // Extract the actual content bytes + if (item.content_length > 0 && item_content_offset > 0 && item_content_offset < buffer.Length) + { + int contentStart = item_content_offset; + int contentEnd = Math.Min(contentStart + item.content_length, buffer.Length); + int actualLength = contentEnd - contentStart; + if (actualLength > 0) + { + item.item_content = new byte[actualLength]; + Array.Copy(buffer, contentStart, item.item_content, 0, actualLength); + } + else + { + item.item_content = new byte[0]; + } + } + else + { + item.item_content = new byte[0]; + } + + return item; + } + public static object get_item_for_sell(uint id) { - uint pos; - if (sale_item_id_index_map.TryGetValue(id, out var itr)) + LOCATION itr; + bool result = sale_item_id_index_map.TryGetValue(id, out itr); + if (result) { - return itr; + // itr.pos contains the index into sale_item_ptr_array + int index = (int)itr.pos; + if (index >= 0 && index < sale_item_ptr_array.Count) + { + byte[] itemBuffer = sale_item_ptr_array[index]; + if (itemBuffer != null && itemBuffer.Length > 0) + { + item_data item = deserialize_item_data(itemBuffer); + return item; + } + } } return null; } diff --git a/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs b/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs index d1b55dcfb9..dc3e4f855c 100644 --- a/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs +++ b/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs @@ -91,7 +91,7 @@ namespace BrewMonster.Network public static bool Init() { m_pElementDataMan = ElementDataManProvider.GetElementDataMan(); - itemdataman.load_data(Path.Combine(Application.streamingAssetsPath, "data", "elements.data"), false); + // Load task templates // if (m_pTaskMan == null) m_pTaskMan = new ATaskTemplMan(); m_pTaskMan = new ATaskTemplMan(); diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs index 27b11f1fae..0e2474fe2a 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs @@ -1156,8 +1156,21 @@ namespace BrewMonster.Scripts.Managers public void GetDetailDataFromLocal() { - // Placeholder: when itemdataman is ported, this will read default item content. - SetItemInfo(null, 0); + //itemdataman* pItemDataMan = g_pGame->GetItemDataMan(); + object pData_temp = itemdataman.get_item_for_sell((uint)m_tid); + BMLogger.Log($"[THN]GetDetailDataFromLocal: tid:{m_tid} pData_temp:{pData_temp}"); + if(pData_temp == null) + { + SetItemInfo(null, 0); + SetLocalProps(); + m_bLocalDetailData = true; + return; + } + item_data pData = (item_data)pData_temp; + + SetItemInfo(pData.item_content, pData.content_length); + BMLogger.Log($"[THN]GetDetailDataFromLocal: id:{m_tid} content:{pData.item_content} length:{pData.content_length}"); + SetLocalProps(); m_bLocalDetailData = true; } diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs index 6754b86008..c260895a10 100644 --- a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs @@ -1,12 +1,15 @@ using UnityEngine; using UnityEngine.UI; - +using TMPro; namespace BrewMonster.Scripts.UI { public class AwardItem : MonoBehaviour { [SerializeField] private Image img; [SerializeField] private Button btn; + [SerializeField] private GameObject objHint; + [SerializeField] private TMP_Text txtHint; + private bool _bShowHint = false; private Vector2Int _position; @@ -27,6 +30,7 @@ namespace BrewMonster.Scripts.UI public void SetText(string text) { // TODO: Add a Text component and set its text + } public void SetColor(Color color) @@ -37,6 +41,12 @@ namespace BrewMonster.Scripts.UI public void SetHint(string text) { // TODO : Implement hint functionality + btn.onClick.RemoveAllListeners(); + txtHint.text = text; + btn.onClick.AddListener(() => { + HintBehaviour(); + }); + } public void ClearCover() @@ -49,5 +59,10 @@ namespace BrewMonster.Scripts.UI gameObject.SetActive(show); } + private void HintBehaviour() + { + _bShowHint = !_bShowHint; + objHint.SetActive(_bShowHint); + } } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs index 1e3bfcf743..f0e343afbe 100644 --- a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs @@ -139,7 +139,8 @@ namespace BrewMonster.Scripts.UI pImage.SetText(_AL("")); pItem.GetDetailDataFromLocal(); - // pImage.SetHint(trans.Translate(pItem.GetDesc())); // TODO + pImage.SetHint(pItem.GetDesc()); // TODO + //Debug.Log("[THN]CDlgAward: pItem.GetDesc():" + pItem.GetDesc()); // af_GetFileTitle(pItem.GetIconFile(), strFile); // TODO strFile.ToLower(); diff --git a/Assets/PerfectWorld/UI/Award/DlgAward.prefab b/Assets/PerfectWorld/UI/Award/DlgAward.prefab index 3a24f98a6b..d538fd83a6 100644 --- a/Assets/PerfectWorld/UI/Award/DlgAward.prefab +++ b/Assets/PerfectWorld/UI/Award/DlgAward.prefab @@ -1,5 +1,81 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &165174036537021008 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3386269673238764405} + - component: {fileID: 5695467372271221829} + - component: {fileID: 8051377020245334668} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3386269673238764405 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165174036537021008} + 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: 1815682412766530288} + m_Father: {fileID: 2175163742848198118} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 366.661, y: -167.5} + m_SizeDelta: {x: 531, y: 335} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5695467372271221829 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165174036537021008} + m_CullTransparentMesh: 1 +--- !u!114 &8051377020245334668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165174036537021008} + 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: 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 &227158560462075115 GameObject: m_ObjectHideFlags: 0 @@ -84,7 +160,7 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_IsOn: 1 + m_IsOn: 0 --- !u!1 &598635325287938884 GameObject: m_ObjectHideFlags: 0 @@ -516,7 +592,7 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_IsOn: 1 + m_IsOn: 0 --- !u!1 &2100466003483804571 GameObject: m_ObjectHideFlags: 0 @@ -1103,7 +1179,7 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_IsOn: 1 + m_IsOn: 0 --- !u!1 &3664700763723290860 GameObject: m_ObjectHideFlags: 0 @@ -1188,7 +1264,7 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_IsOn: 1 + m_IsOn: 0 --- !u!1 &3692755084474195755 GameObject: m_ObjectHideFlags: 0 @@ -1222,6 +1298,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 504415793170309261} + - {fileID: 3386269673238764405} m_Father: {fileID: 1558872982091896349} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1243,6 +1320,8 @@ MonoBehaviour: m_EditorClassIdentifier: img: {fileID: 5798109676702798723} btn: {fileID: 5829300517807457460} + objHint: {fileID: 165174036537021008} + txtHint: {fileID: 7658705790532366309} --- !u!222 &1897581106405175503 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1558,6 +1637,142 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5403631556117558338 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1815682412766530288} + - component: {fileID: 8320041494551075808} + - component: {fileID: 7658705790532366309} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1815682412766530288 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5403631556117558338} + 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: 3386269673238764405} + 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: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8320041494551075808 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5403631556117558338} + m_CullTransparentMesh: 1 +--- !u!114 &7658705790532366309 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5403631556117558338} + 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: New Text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 0, g: 0, 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: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_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 &5498099694921818792 GameObject: m_ObjectHideFlags: 0 @@ -2020,7 +2235,7 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_IsOn: 1 + m_IsOn: 0 --- !u!1 &7637041124332687819 GameObject: m_ObjectHideFlags: 0