update world map

This commit is contained in:
Le Duc Anh
2026-04-20 17:08:04 +07:00
parent 16001d78e8
commit 8f921fda4f
7 changed files with 406 additions and 5 deletions
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 712e3991f28e549e7a56ee582a977810
m_currentHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
Hash: 6df2b5e922d0a8184eba54abd29fafeb
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
+122
View File
@@ -107,6 +107,7 @@ RectTransform:
- {fileID: 5306706511345298923}
- {fileID: 5063363011365083800}
- {fileID: 193520446362220398}
- {fileID: 1420511140059353994}
m_Father: {fileID: 121983901978661093}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -248,6 +249,7 @@ MonoBehaviour:
_imageMiniMapPrefab: {fileID: 561411731206337256}
_listImageMiniMap: []
_transformMiniMapParent: {fileID: 4768066627267225838}
_worldMapButton: {fileID: 9145966839271910414}
_spriteAtlas: {fileID: 100100200, guid: b764c7c6d08a20e41a8ebfb3435954db, type: 3}
--- !u!1 &5886515903784990361
GameObject:
@@ -613,6 +615,126 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &7056095192285021313
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1420511140059353994}
- component: {fileID: 981633729936470547}
- component: {fileID: 769315881222033195}
- component: {fileID: 9145966839271910414}
m_Layer: 0
m_Name: Hitbox
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1420511140059353994
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7056095192285021313}
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: 75608124384920614}
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 &981633729936470547
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7056095192285021313}
m_CullTransparentMesh: 1
--- !u!114 &769315881222033195
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7056095192285021313}
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.003921569}
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: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &9145966839271910414
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7056095192285021313}
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: 0
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: 769315881222033195}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &7097774496840152851
GameObject:
m_ObjectHideFlags: 0
@@ -59,3 +59,5 @@ MonoBehaviour:
prefab: {fileID: 9152579472324007262, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3}
- id: Win_FriendList
prefab: {fileID: 7959803810568030828, guid: c3fe60ca49d530e4a9d03e185154c4f5, type: 3}
- id: Win_WorldMap
prefab: {fileID: 6225996695219405878, guid: 2ed5e05eaa1d87341bf25c3cf111cc01, type: 3}
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5cfdae6351b6fac92e853e5e66c95e40da85a9a9b8b45cfdd55f16f0c4e48992
size 303064
oid sha256:833a4e6a7e0e815ce2561d06a74cc92483952cd3b3812e09fc3c5b15d0029695
size 303238
@@ -7,6 +7,9 @@ namespace BrewMonster.UI
public class DlgWorldMap : AUIDialog
{
[SerializeField] private Image mapImage;
[SerializeField] private Image _hostPlayerPositionImage;
[SerializeField] private float _positionFactor = 2f;
[SerializeField] private Button _closeButton;
// 世界 / World
@@ -32,10 +35,68 @@ namespace BrewMonster.UI
return MAJOR_MAP == mapID || GOOD_EVIL_MAP(mapID) || GUILD_WAR_MAP(mapID) || PENGLAI_MAP(mapID);
}
public override void Awake()
{
base.Awake();
_closeButton.onClick.AddListener(OnCloseButtonClicked);
}
public override void Show(bool value)
{
base.Show(value);
if (value)
{
UpdateHostPlayerPositionImage();
}
}
public override bool Render()
{
// UpdateHostPlayerPositionImage();
return base.Render();
}
private void UpdateHostPlayerPositionImage()
{
if (_hostPlayerPositionImage == null)
{
return;
}
if (!TryGetHostPlayerPosition(out Vector3 hostPosition))
{
_hostPlayerPositionImage.enabled = false;
return;
}
if (Mathf.Approximately(_positionFactor, 0f))
{
BMLogger.LogError("DlgWorldMap _positionFactor cannot be zero.");
_hostPlayerPositionImage.enabled = false;
return;
}
_hostPlayerPositionImage.enabled = true;
RectTransform hostPlayerRectTransform = _hostPlayerPositionImage.rectTransform;
hostPlayerRectTransform.anchoredPosition = new Vector2(
hostPosition.x / _positionFactor,
hostPosition.z / _positionFactor);
}
private bool TryGetHostPlayerPosition(out Vector3 hostPlayerPosition)
{
hostPlayerPosition = Vector3.zero;
CECHostPlayer hostPlayer = GetHostPlayer();
if (hostPlayer == null || hostPlayer.transform == null)
{
return false;
}
hostPlayerPosition = hostPlayer.transform.position;
return true;
}
@@ -77,5 +138,10 @@ namespace BrewMonster.UI
BMLogger.LogError($"Invalid transmit type: {dwType}");
}
}
private void OnCloseButtonClicked()
{
CloseDialogue();
}
}
}
@@ -38,6 +38,7 @@ namespace PerfectWorld.UI.MiniMap
[SerializeField] private Image _imageMiniMapPrefab;
[SerializeField] private List<Image> _listImageMiniMap = new();
[SerializeField] private RectTransform _transformMiniMapParent;
[SerializeField] private Button _worldMapButton;
// reference to unity sprite atlas
[SerializeField] private SpriteAtlas _spriteAtlas;
@@ -61,6 +62,8 @@ namespace PerfectWorld.UI.MiniMap
private void Awake()
{
LoadAllMiniMapTextures();
_worldMapButton.onClick.AddListener(OnMiniMapClicked);
}
void Update()
@@ -106,6 +109,14 @@ namespace PerfectWorld.UI.MiniMap
/// <summary>Returns the list of user-placed marks on the minimap (for layout save/load).</summary>
public List<MARK> GetMarks() => m_vecMark;
/// <summary>User click on the minimap, we'll show the world map.</summary>
public void OnMiniMapClicked()
{
var dlg = CECUIManager.Instance.ShowUI("Win_WorldMap") as DlgWorldMap;
// dlg?.Show(true);
// dlg?.OnInitDialog();
}
// keep this so we can load all textures of other map also.
[ContextMenu("LoadAllMiniMapTextures")]
public void LoadAllMiniMapTextures()
+202 -2
View File
@@ -1,5 +1,125 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &936441858863998774
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6519201902855059039}
- component: {fileID: 6772256914059310038}
- component: {fileID: 6199483494086402804}
- component: {fileID: 8858186809287203567}
m_Layer: 0
m_Name: closeBtn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6519201902855059039
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 936441858863998774}
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: 7323734624486819451}
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: 403.03613, y: 341.03613}
m_SizeDelta: {x: 58, y: 58}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6772256914059310038
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 936441858863998774}
m_CullTransparentMesh: 1
--- !u!114 &6199483494086402804
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 936441858863998774}
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: 7e417ca26c6bacc48a4cb0166762f4e9, 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!114 &8858186809287203567
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 936441858863998774}
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: 0
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: 6199483494086402804}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &2084818314179325528
GameObject:
m_ObjectHideFlags: 0
@@ -29,6 +149,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7169122999130120872}
- {fileID: 6519201902855059039}
m_Father: {fileID: 5356465370529170382}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -36,6 +157,81 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &4370684628053341786
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5906545349664091413}
- component: {fileID: 758748006264977830}
- component: {fileID: 4036230907032538800}
m_Layer: 0
m_Name: hostplayerpos
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5906545349664091413
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4370684628053341786}
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: 7169122999130120872}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.518}
m_AnchorMax: {x: 0.5, y: 0.518}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 13, y: 16}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &758748006264977830
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4370684628053341786}
m_CullTransparentMesh: 1
--- !u!114 &4036230907032538800
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4370684628053341786}
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: 448046091, guid: 99520ceed6182dd408f2da040fe0c033, 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 &6225996695219405878
GameObject:
m_ObjectHideFlags: 0
@@ -88,7 +284,10 @@ MonoBehaviour:
m_EditorClassIdentifier:
skillNameText: {fileID: 0}
imageProgress: {fileID: 0}
mapImage: {fileID: 0}
mapImage: {fileID: 1174346096914174862}
_hostPlayerPositionImage: {fileID: 4036230907032538800}
_positionFactor: 2.5
_closeButton: {fileID: 8858186809287203567}
--- !u!1 &8308536083041954008
GameObject:
m_ObjectHideFlags: 0
@@ -193,7 +392,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: 5906545349664091413}
m_Father: {fileID: 7323734624486819451}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}