【建造】工具类

iOS_release
zhangaotian 2024-07-16 16:00:20 +08:00
parent c44e84122e
commit a76b0a2b53
3 changed files with 129 additions and 42 deletions

View File

@ -17,7 +17,7 @@ public class BuildBoot : MonoBehaviour
/// <summary>
/// 节点类
/// </summary>
public class Node
private class Node
{
public string Name;
@ -50,7 +50,7 @@ public class BuildBoot : MonoBehaviour
/// <summary>
/// 选项类
/// </summary>
public class Option
private class Option
{
public GameObject NodeObj;
public GameObject OptionObj;
@ -64,6 +64,9 @@ public class BuildBoot : MonoBehaviour
}
}
/// <summary>
/// 物品栏类
/// </summary>
private class BuildBar
{
private GameObject _bar;
@ -135,6 +138,9 @@ public class BuildBoot : MonoBehaviour
}
}
/// <summary>
/// 物品栏Icon类
/// </summary>
private class BuildItem
{
private Button _btn;
@ -195,7 +201,7 @@ public class BuildBoot : MonoBehaviour
private void Start()
{
UpdateUI();
UpdateBuildDisplay();
}
private void OnDisable()
@ -205,6 +211,9 @@ public class BuildBoot : MonoBehaviour
#region Build相关
/// <summary>
/// 初始化建造物数据
/// </summary>
private void InitBuildData()
{
_nodes = new Dictionary<string, Node>();
@ -215,42 +224,11 @@ public class BuildBoot : MonoBehaviour
_nodes.Add(child.name, node);
}
}
#endregion
#region UI相关
private void InitUI()
{
_btnClose = transform.Find("UIRoot/UIMainBuild/UI_LiuHaiTop/BG_Top/Btn_Close").GetComponent<Button>();
_btnClose.onClick.AddListener(CloseBuildPanel);
InitTipPanel();
InitBuildBar();
}
private void InitTipPanel()
{
_tipObj = transform.Find("UIRoot/UIMainBuild/Build_Tip").gameObject;
_btnTipClose = _tipObj.transform.Find("Btn_Close").GetComponent<Button>();
_btnTipGoGame = _tipObj.transform.Find("Btn_Game").GetComponent<Button>();
_btnTipClose.onClick.AddListener(CloseTipPanel);
_btnTipGoGame.onClick.AddListener(TipGoGame);
}
private void InitBuildBar()
{
var bar = transform.Find("UIRoot/UIMainBuild/UI_LiuHaiBottom/Build_Bar").gameObject;
_buildBar = new BuildBar(bar);
_btnBarClose = transform.Find("UIRoot/UIMainBuild/UI_LiuHaiBottom/Build_Bar/Btn_Close")
.GetComponent<Button>();
_btnBarYes = transform.Find("UIRoot/UIMainBuild/UI_LiuHaiBottom/Build_Bar/Btn_Yes").GetComponent<Button>();
_btnBarClose.onClick.AddListener(CloseBar);
_btnBarYes.onClick.AddListener(YesBar);
}
private void UpdateUI()
/// <summary>
/// 刷新建造物表现
/// </summary>
private void UpdateBuildDisplay()
{
foreach (var node in _nodes)
{
@ -273,16 +251,66 @@ public class BuildBoot : MonoBehaviour
}
}
#endregion
#region UI相关
/// <summary>
/// 初始化UI
/// </summary>
private void InitUI()
{
_btnClose = transform.Find("UIRoot/UIMainBuild/UI_LiuHaiTop/BG_Top/Btn_Close").GetComponent<Button>();
_btnClose.onClick.AddListener(CloseBuildPanel);
InitTipPanel();
InitBuildBar();
}
/// <summary>
/// 初始化上锁提示界面
/// </summary>
private void InitTipPanel()
{
_tipObj = transform.Find("UIRoot/UIMainBuild/Build_Tip").gameObject;
_btnTipClose = _tipObj.transform.Find("Btn_Close").GetComponent<Button>();
_btnTipGoGame = _tipObj.transform.Find("Btn_Game").GetComponent<Button>();
_btnTipClose.onClick.AddListener(CloseTipPanel);
_btnTipGoGame.onClick.AddListener(TipGoGame);
}
/// <summary>
/// 初始化物品栏
/// </summary>
private void InitBuildBar()
{
var bar = transform.Find("UIRoot/UIMainBuild/UI_LiuHaiBottom/Build_Bar").gameObject;
_btnBarClose = bar.transform.Find("Btn_Close").GetComponent<Button>();
_btnBarClose.onClick.AddListener(CloseBar);
_btnBarYes = bar.transform.Find("Btn_Yes").GetComponent<Button>();
_btnBarYes.onClick.AddListener(YesBar);
_buildBar = new BuildBar(bar);
}
/// <summary>
/// 关闭建造界面
/// </summary>
private void CloseBuildPanel()
{
GameStateManager.Instance.ChangeState(new GameStateStart(UIConstants.UIMainPanel));
}
/// <summary>
/// 关闭提示界面
/// </summary>
private void CloseTipPanel()
{
_tipObj.SetActive(false);
}
/// <summary>
/// 开始游戏
/// </summary>
private void TipGoGame()
{
var levelID = $"level{LevelSelectManager.Instance.CurPassLevelIndex + 1}";
@ -292,12 +320,18 @@ public class BuildBoot : MonoBehaviour
}
}
/// <summary>
/// 关闭物品栏
/// </summary>
private void CloseBar()
{
_buildBar.Close();
_curBubble.SetActive(true);
}
/// <summary>
/// 保存更改
/// </summary>
private void YesBar()
{
DebugUtil.LogError("保存更改");
@ -306,11 +340,19 @@ public class BuildBoot : MonoBehaviour
#endregion
private void OnBuilItemClick(GameObject obj)
#region 点击事件
/// <summary>
/// 建造物节点点击
/// </summary>
private void OnBuildItemClick(GameObject obj)
{
DebugUtil.LogError("obj");
}
/// <summary>
/// 泡泡点击
/// </summary>
private void OnBuildBubbleClick(GameObject obj)
{
_curBubble = obj;
@ -327,11 +369,17 @@ public class BuildBoot : MonoBehaviour
}
}
/// <summary>
/// 解锁图标点击
/// </summary>
private void BuildIconClick()
{
DebugUtil.LogError("点击了图标");
}
/// <summary>
/// 未解锁图标点击
/// </summary>
private void BuildLockIconClick()
{
DebugUtil.LogError("点击了上锁图标");
@ -340,13 +388,15 @@ public class BuildBoot : MonoBehaviour
private void RegisterClickEvent()
{
InputManager.Instance.OnBuildItemClick += OnBuilItemClick;
InputManager.Instance.OnBuildItemClick += OnBuildItemClick;
InputManager.Instance.OnBuildBubbleClick += OnBuildBubbleClick;
}
private void UnregisterClickEvent()
{
InputManager.Instance.OnBuildItemClick -= OnBuilItemClick;
InputManager.Instance.OnBuildItemClick -= OnBuildItemClick;
InputManager.Instance.OnBuildBubbleClick -= OnBuildBubbleClick;
}
#endregion
}

View File

@ -0,0 +1,26 @@
using System.Text.RegularExpressions;
namespace Framework.GameBuild
{
public static class GameBuildUtils
{
public static int ExtractNumber(string input)
{
var str = input;
int lastIndex = input.LastIndexOf('_');
if (lastIndex != -1 && lastIndex < input.Length - 1)
{
str = input.Substring(lastIndex + 1);
}
Match match = Regex.Match(str, @"\d+");
if (match.Success)
{
return int.Parse(match.Value);
}
return 0;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 78df10e0d84464c68800c006f61d2d4c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: