注册事件

This commit is contained in:
YangHua 2024-08-29 21:18:02 +08:00
parent c01e05ddef
commit d08e92b26d
5 changed files with 76 additions and 14 deletions

View File

@ -59,6 +59,15 @@ public class Device_Base : PermanentTriggerBase
this.triggerAction = action;
}
public void AddStartAction(Action callback)
{
startAction += callback;
}
public void AddEndAction(Action callback)
{
endAction += callback;
}
/// <summary>
/// 设置工具回到手中的位置
/// </summary>

View File

@ -65,7 +65,14 @@ public class Tool_Base : PermanentTriggerBase
{
this.triggerAction = action;
}
public void AddStartAction(Action callback)
{
startAction += callback;
}
public void AddEndAction(Action callback)
{
endAction += callback;
}
/// <summary>
/// 设置工具回到手中的位置
/// </summary>

View File

@ -52,6 +52,7 @@ public class Tool_WireStripper : Tool_Base
//¼ô¶Ï
device_Seal.Cut();
isMoving = false;
ReBackHead();
int result = (triggerAction == null ? 0 : triggerAction.Invoke(device_Seal.triggerName, true));
}
@ -68,7 +69,7 @@ public class Tool_WireStripper : Tool_Base
Device_Seal ds = hit.transform.GetComponent<Device_Seal>();
if (ds != null)
{
if ((triggerAction == null ? 0 : triggerAction.Invoke(ds.triggerName, false))== 0)
if ((triggerAction == null ? 0 : triggerAction.Invoke(ds.triggerName, false)) == 0)
{
CutOpen(ds);
}

View File

@ -25,9 +25,29 @@ public class LiveSceneManager : SingletonMono<LiveSceneManager>
currentTool.transform.localPosition = spawnToolPos.localPosition;
currentTool.transform.localEulerAngles = spawnToolPos.localEulerAngles;
if (currentTool.GetComponent<Tool_Base>())
{
currentTool.GetComponent<Tool_Base>().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles);
currentTool.GetComponent<Tool_Base>().AddStartAction(() =>
{
tMDTips.gameObject.SetActive(false);
});
currentTool.GetComponent<Tool_Base>().AddEndAction(() =>
{
tMDTips.gameObject.SetActive(true);
});
}
if (currentTool.GetComponent<Device_Base>())
{
currentTool.GetComponent<Device_Base>().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles);
currentTool.GetComponent<Device_Base>().AddStartAction(() =>
{
tMDTips.gameObject.SetActive(false);
});
currentTool.GetComponent<Device_Base>().AddEndAction(() =>
{
tMDTips.gameObject.SetActive(true);
});
}
tMDTips.gameObject.SetActive(true);
if (currentTool.name.Equals("¹¤×÷Ö¤"))
{

View File

@ -57,37 +57,54 @@ public class UI_MenuBar : BasePanel
private void SwitchSubProcessStepTriggerID(string triggerID)
{
bool isOpen = false;
if (triggerID == workOrderName)
{
GameManager.UIMgr.imageTips.ShowTips(workOrderBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == disassemblyAssemblyWorkOrderName)
{
GameManager.UIMgr.imageTips.ShowTips(disassemblyAssemblyWorkOrderBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == toolKitName)
{
GameManager.UIMgr.imageTips.ShowTips(toolKitBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == siteName)
{
GameManager.UIMgr.imageTips.ShowTips(siteBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == officeName)
{
GameManager.UIMgr.imageTips.ShowTips(officeBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == toolRoomName)
{
GameManager.UIMgr.imageTips.ShowTips(toolRoomBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == notifyName)
{
GameManager.UIMgr.imageTips.ShowTips(notifyBtn.GetComponent<RectTransform>());
isOpen = true;
}
else
{
GameManager.UIMgr.imageTips.HideTips();
isOpen = false;
}
if (isOpen)
{
OpenMenu();
}
else
{
CloseMenu();
}
}
@ -99,11 +116,7 @@ public class UI_MenuBar : BasePanel
public void CheckBtnBySceneName(E_SceneType type)
{
Debug.Log(type.ToString());
if (GetControl<Image>("MenuBar").transform.localPosition.x == 960)
{
GetControl<Image>("CloseDefaultBtn").sprite = ExpandSprite;
GetControl<Image>("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
}
CloseMenu();
toolRoomBtn.gameObject.SetActive(type != E_SceneType.ToolRoom);
siteBtn.gameObject.SetActive(type == E_SceneType.ToolRoom);
workOrderBtn.gameObject.SetActive(type == E_SceneType.Office);
@ -114,6 +127,17 @@ public class UI_MenuBar : BasePanel
notifyBtn.gameObject.SetActive(type == E_SceneType.Site);
}
private void OpenMenu()
{
GetControl<Image>("CloseDefaultBtn").sprite = ExpandSprite;
GetControl<Image>("MenuBar").rectTransform.DOAnchorPosX(0, 0.5f);
}
private void CloseMenu()
{
GetControl<Image>("MenuBar").rectTransform.DOAnchorPosX(110, 0.5f);
GetControl<Image>("CloseDefaultBtn").sprite = CollapseSprite;
}
/// <summary>
/// µ¹¼ÆÊ±
@ -128,7 +152,7 @@ public class UI_MenuBar : BasePanel
while (countDown > 0)
{
yield return waitForSeconds;
GetControl<Image>("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
CloseMenu();
}
}
protected override void OnClick(string btnName)
@ -136,12 +160,13 @@ public class UI_MenuBar : BasePanel
switch (btnName)
{
case "CloseDefaultBtn":
GetControl<Image>("MenuBar").transform.DOLocalMoveX(960, 0.5f);
GetControl<Image>("CloseDefaultBtn").sprite = CollapseSprite;
if (GetControl<Image>("MenuBar").transform.localPosition.x == 960)
if (GetControl<Image>("MenuBar").rectTransform.anchoredPosition.x == 0)
{
GetControl<Image>("CloseDefaultBtn").sprite = ExpandSprite;
GetControl<Image>("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
CloseMenu();
}
else if (GetControl<Image>("MenuBar").rectTransform.anchoredPosition.x == 110)
{
OpenMenu();
}
break;
case "OfficeBtn":