Equip, unequip item base
This commit is contained in:
Binary file not shown.
@@ -1,7 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Reflection;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster;
|
||||
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
@@ -24,6 +27,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
[SerializeField] private TextOutlet expireText;
|
||||
[SerializeField] private TextOutlet crcText;
|
||||
[SerializeField] private TextOutlet contentLenText;
|
||||
[SerializeField] private Button equipButton;
|
||||
|
||||
[Header("Inventory Settings")]
|
||||
[SerializeField] private bool autoRefresh = true;
|
||||
@@ -33,6 +37,11 @@ namespace PerfectWorld.Scripts.Managers
|
||||
|
||||
private InventoryModel model;
|
||||
private InventoryView view;
|
||||
|
||||
// Current selected item for equip/unequip operations
|
||||
private byte currentSelectedPackage;
|
||||
private int currentSelectedSlot;
|
||||
private InventoryItemData currentSelectedItem;
|
||||
|
||||
private const byte PKG_INVENTORY = 0;
|
||||
private const byte PKG_EQUIPMENT = 1;
|
||||
@@ -79,6 +88,11 @@ namespace PerfectWorld.Scripts.Managers
|
||||
var data = model.GetInventoryData(package);
|
||||
if (data != null && data.TryGetValue(slot, out var itemData))
|
||||
{
|
||||
// Store current selection for equip/unequip operations
|
||||
currentSelectedPackage = package;
|
||||
currentSelectedSlot = slot;
|
||||
currentSelectedItem = itemData;
|
||||
|
||||
FillDetailPanel(package, itemData);
|
||||
}
|
||||
else
|
||||
@@ -112,6 +126,144 @@ namespace PerfectWorld.Scripts.Managers
|
||||
refreshInterval = Mathf.Max(0.1f, interval);
|
||||
}
|
||||
|
||||
public void OnEquipButtonClicked()
|
||||
{
|
||||
if (currentSelectedItem == null)
|
||||
{
|
||||
Debug.LogWarning("[InventoryUI] No item selected for equip/unequip operation");
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentSelectedPackage == PKG_INVENTORY)
|
||||
{
|
||||
// Equipping from inventory
|
||||
EquipItem();
|
||||
}
|
||||
else if (currentSelectedPackage == PKG_EQUIPMENT)
|
||||
{
|
||||
// Unequipping from equipment
|
||||
UnequipItem();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning($"[InventoryUI] Equip/Unequip not supported for package {currentSelectedPackage}");
|
||||
}
|
||||
}
|
||||
|
||||
private void EquipItem()
|
||||
{
|
||||
if (currentSelectedItem == null) return;
|
||||
|
||||
// For equipping, we need to find an empty equipment slot
|
||||
// The equip location should be determined by the item type or use a default
|
||||
byte equipLocation = GetEquipLocationForItem(currentSelectedItem.TemplateId);
|
||||
if (equipLocation == 0)
|
||||
{
|
||||
Debug.LogWarning($"[InventoryUI] Could not determine equip location for item {currentSelectedItem.TemplateId}");
|
||||
return;
|
||||
}
|
||||
|
||||
// Call RequestEquipItemAsync with inventory slot and equip location
|
||||
UnityGameSession.RequestEquipItemAsync((byte)currentSelectedSlot, equipLocation, () =>
|
||||
{
|
||||
Debug.Log($"[InventoryUI] Equip request sent for item {currentSelectedItem.TemplateId} from slot {currentSelectedSlot} to equip location {equipLocation}");
|
||||
// Refresh inventory after equip
|
||||
RefreshAll();
|
||||
});
|
||||
}
|
||||
|
||||
private void UnequipItem()
|
||||
{
|
||||
if (currentSelectedItem == null) return;
|
||||
|
||||
// Find empty slot in PACK_INVENTORY
|
||||
int emptySlot = FindEmptyInventorySlot();
|
||||
if (emptySlot == -1)
|
||||
{
|
||||
Debug.LogWarning("[InventoryUI] No empty slots available in inventory for unequipping");
|
||||
return;
|
||||
}
|
||||
|
||||
// For unequipping, the equip location is the current equipment slot
|
||||
// We can use the slot number as the equip location
|
||||
byte equipLocation = (byte)currentSelectedSlot;
|
||||
|
||||
// Call RequestEquipItemAsync with empty inventory slot and current equip location
|
||||
UnityGameSession.RequestEquipItemAsync((byte)emptySlot, equipLocation, () =>
|
||||
{
|
||||
Debug.Log($"[InventoryUI] Unequip request sent for item {currentSelectedItem.TemplateId} from equip location {equipLocation} to inventory slot {emptySlot}");
|
||||
// Refresh inventory after unequip
|
||||
RefreshAll();
|
||||
});
|
||||
}
|
||||
|
||||
private byte GetEquipLocationForItem(int templateId)
|
||||
{
|
||||
// Simple approach: use the template ID to determine equip location
|
||||
// This is a basic mapping - you may need to adjust based on your game's logic
|
||||
try
|
||||
{
|
||||
// Try to get equip location from ESSENCE data first
|
||||
var edm = ElementDataManProvider.GetElementDataMan();
|
||||
if (edm != null)
|
||||
{
|
||||
uint id = unchecked((uint)templateId);
|
||||
object data = edm.get_data_ptr(id, ID_SPACE.ID_SPACE_ESSENCE);
|
||||
if (data != null)
|
||||
{
|
||||
var equipLocationField = data.GetType().GetField("equip_location", BindingFlags.Public | BindingFlags.Instance);
|
||||
if (equipLocationField != null && equipLocationField.FieldType == typeof(uint))
|
||||
{
|
||||
uint equipLocation = (uint)equipLocationField.GetValue(data);
|
||||
Debug.Log($"[InventoryUI] Found equip_location {equipLocation} for template {templateId}");
|
||||
return (byte)equipLocation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback: use a simple mapping based on template ID ranges
|
||||
// This is a basic implementation - adjust based on your game's item system
|
||||
Debug.Log($"[InventoryUI] Using fallback equip location for template {templateId}");
|
||||
return GetDefaultEquipLocation(templateId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogWarning($"[InventoryUI] Error getting equip location for template {templateId}: {ex.Message}");
|
||||
return GetDefaultEquipLocation(templateId);
|
||||
}
|
||||
}
|
||||
|
||||
private byte GetDefaultEquipLocation(int templateId)
|
||||
{
|
||||
// Basic equip location mapping based on template ID
|
||||
// Adjust these ranges based on your game's item system
|
||||
if (templateId >= 1000 && templateId < 2000) return 1; // Weapon
|
||||
if (templateId >= 2000 && templateId < 3000) return 2; // Armor
|
||||
if (templateId >= 3000 && templateId < 4000) return 3; // Accessory
|
||||
if (templateId >= 4000 && templateId < 5000) return 4; // Ring
|
||||
if (templateId >= 5000 && templateId < 6000) return 5; // Necklace
|
||||
|
||||
// Default to slot 1 if no specific mapping
|
||||
Debug.Log($"[InventoryUI] Using default equip location 1 for template {templateId}");
|
||||
return 1;
|
||||
}
|
||||
|
||||
private int FindEmptyInventorySlot()
|
||||
{
|
||||
var inventoryData = model.GetInventoryData(PKG_INVENTORY);
|
||||
if (inventoryData == null) return -1;
|
||||
|
||||
// Find first empty slot (assuming slots are numbered 0, 1, 2, ...)
|
||||
for (int i = 0; i < 100; i++) // Assuming max 100 inventory slots
|
||||
{
|
||||
if (!inventoryData.ContainsKey(i))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// === MVC: Model ===
|
||||
private class InventoryModel
|
||||
{
|
||||
@@ -168,8 +320,7 @@ namespace PerfectWorld.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)
|
||||
@@ -238,9 +389,62 @@ namespace PerfectWorld.Scripts.Managers
|
||||
crcText?.Set(item.Crc.ToString());
|
||||
contentLenText?.Set((item.Content?.Length ?? 0).ToString());
|
||||
|
||||
// Setup equip button
|
||||
SetupEquipButton(package, item);
|
||||
|
||||
ShowDetailPanel(true);
|
||||
}
|
||||
|
||||
private void SetupEquipButton(byte package, InventoryItemData item)
|
||||
{
|
||||
if (equipButton == null) return;
|
||||
|
||||
// Clear previous listeners
|
||||
equipButton.onClick.RemoveAllListeners();
|
||||
equipButton.onClick.AddListener(OnEquipButtonClicked);
|
||||
|
||||
// Set button text and visibility based on package
|
||||
var buttonText = equipButton.GetComponentInChildren<UnityEngine.UI.Text>();
|
||||
if (buttonText == null)
|
||||
{
|
||||
var tmpText = equipButton.GetComponentInChildren<TMPro.TextMeshProUGUI>();
|
||||
if (tmpText != null)
|
||||
{
|
||||
if (package == PKG_INVENTORY)
|
||||
{
|
||||
tmpText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else if (package == PKG_EQUIPMENT)
|
||||
{
|
||||
tmpText.text = "UnEquip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
equipButton.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (package == PKG_INVENTORY)
|
||||
{
|
||||
buttonText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else if (package == PKG_EQUIPMENT)
|
||||
{
|
||||
buttonText.text = "UnEquip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
equipButton.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static string GetPackageName(byte pkg)
|
||||
{
|
||||
switch (pkg)
|
||||
|
||||
@@ -128,6 +128,11 @@ namespace BrewMonster.Network
|
||||
Instance._gameSession.RequestInventoryAsync(byPackage, callback);
|
||||
}
|
||||
|
||||
public static void RequestEquipItemAsync(byte iIvtrIdx, byte iEquipIdx, Action callback = null)
|
||||
{
|
||||
Instance._gameSession.RequestEquipItem(iIvtrIdx, iEquipIdx, callback);
|
||||
}
|
||||
|
||||
public static void RequestAllInventoriesAsync(Action callback = null, params byte[] packages)
|
||||
{
|
||||
if (packages == null || packages.Length == 0)
|
||||
|
||||
@@ -555,6 +555,147 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &633515748786992396
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5275130098495308601}
|
||||
- component: {fileID: 7874153745862569389}
|
||||
- component: {fileID: 112648634020396885}
|
||||
- component: {fileID: 3332719603249310962}
|
||||
m_Layer: 5
|
||||
m_Name: PreviewCamera
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5275130098495308601
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 633515748786992396}
|
||||
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: 6778274724352405780}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!20 &7874153745862569389
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 633515748786992396}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 8
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 8400000, guid: da151233895139942837a2c0c07e5c4a, type: 2}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!81 &112648634020396885
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 633515748786992396}
|
||||
m_Enabled: 1
|
||||
--- !u!114 &3332719603249310962
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 633515748786992396}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_RenderShadows: 1
|
||||
m_RequiresDepthTextureOption: 2
|
||||
m_RequiresOpaqueTextureOption: 2
|
||||
m_CameraType: 0
|
||||
m_Cameras: []
|
||||
m_RendererIndex: -1
|
||||
m_VolumeLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
m_VolumeTrigger: {fileID: 0}
|
||||
m_VolumeFrameworkUpdateModeOption: 2
|
||||
m_RenderPostProcessing: 0
|
||||
m_Antialiasing: 0
|
||||
m_AntialiasingQuality: 2
|
||||
m_StopNaN: 0
|
||||
m_Dithering: 0
|
||||
m_ClearDepth: 1
|
||||
m_AllowXRRendering: 1
|
||||
m_AllowHDROutput: 1
|
||||
m_UseScreenCoordOverride: 0
|
||||
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_RequiresDepthTexture: 0
|
||||
m_RequiresColorTexture: 0
|
||||
m_Version: 2
|
||||
m_TaaSettings:
|
||||
m_Quality: 3
|
||||
m_FrameInfluence: 0.1
|
||||
m_JitterScale: 1
|
||||
m_MipBias: 0
|
||||
m_VarianceClampScale: 0.9
|
||||
m_ContrastAdaptiveSharpening: 0
|
||||
--- !u!1 &685363479191399138
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1986,6 +2127,142 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &1284290816170441003
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2466161328052096029}
|
||||
- component: {fileID: 6463394684454733508}
|
||||
- component: {fileID: 8953421006885282374}
|
||||
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 &2466161328052096029
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1284290816170441003}
|
||||
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: 7848525089621781280}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0.000061035156, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6463394684454733508
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1284290816170441003}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8953421006885282374
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1284290816170441003}
|
||||
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: Button
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4281479730
|
||||
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 24
|
||||
m_fontSizeBase: 24
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_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 &1320368067972250102
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -4707,6 +4984,7 @@ RectTransform:
|
||||
- {fileID: 174663297343150196}
|
||||
- {fileID: 292490913284592957}
|
||||
- {fileID: 2929521460947899744}
|
||||
- {fileID: 7848525089621781280}
|
||||
m_Father: {fileID: 5834405183358786743}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -4735,7 +5013,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
|
||||
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
|
||||
@@ -7820,6 +8098,8 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6778274724352405780}
|
||||
- component: {fileID: 5765354275366674162}
|
||||
- component: {fileID: 6707240765686952970}
|
||||
m_Layer: 5
|
||||
m_Name: character_preview
|
||||
m_TagString: Untagged
|
||||
@@ -7838,7 +8118,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: 5275130098495308601}
|
||||
m_Father: {fileID: 3289674559629147232}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@@ -7846,6 +8127,41 @@ RectTransform:
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 361.6641, y: 589.65}
|
||||
m_Pivot: {x: 1, y: 1}
|
||||
--- !u!222 &5765354275366674162
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5468137454250289500}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6707240765686952970
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5468137454250289500}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, 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_Texture: {fileID: 8400000, guid: da151233895139942837a2c0c07e5c4a, type: 2}
|
||||
m_UVRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
--- !u!1 &5473020210238587200
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -8485,13 +8801,7 @@ MonoBehaviour:
|
||||
- {fileID: 1194055256143897199}
|
||||
- {fileID: 1194055256143897199}
|
||||
- {fileID: 486249631205428665}
|
||||
fashionPackButtons:
|
||||
- {fileID: 5698708560429622283}
|
||||
- {fileID: 486249631205428665}
|
||||
- {fileID: 8959369485179892334}
|
||||
- {fileID: 959734950479411724}
|
||||
- {fileID: 961650114002827304}
|
||||
- {fileID: 235698874153373406}
|
||||
fashionPackButtons: []
|
||||
detailPanelRoot: {fileID: 2900449705256812174}
|
||||
hideDetailOnStart: 1
|
||||
nameText:
|
||||
@@ -8521,9 +8831,7 @@ MonoBehaviour:
|
||||
contentLenText:
|
||||
legacy: {fileID: 0}
|
||||
tmp: {fileID: 8920679592020680426}
|
||||
essenceDataText:
|
||||
legacy: {fileID: 0}
|
||||
tmp: {fileID: 1530847087536925506}
|
||||
equipButton: {fileID: 472698755110594484}
|
||||
autoRefresh: 1
|
||||
refreshInterval: 1
|
||||
--- !u!1 &5959049729314796227
|
||||
@@ -9627,6 +9935,127 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &6337357843872489054
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7848525089621781280}
|
||||
- component: {fileID: 1737545770821452063}
|
||||
- component: {fileID: 175496166755478291}
|
||||
- component: {fileID: 472698755110594484}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7848525089621781280
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6337357843872489054}
|
||||
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: 2466161328052096029}
|
||||
m_Father: {fileID: 7205431771786927886}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 81.9021, y: -24.5103}
|
||||
m_SizeDelta: {x: 163.8041, y: 49.0205}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1737545770821452063
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6337357843872489054}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &175496166755478291
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6337357843872489054}
|
||||
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &472698755110594484
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6337357843872489054}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 1
|
||||
m_TargetGraphic: {fileID: 175496166755478291}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &6377806151830969588
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
Reference in New Issue
Block a user