This commit is contained in:
YangHua 2024-08-29 20:23:51 +08:00
commit c01e05ddef
12 changed files with 109 additions and 77 deletions

View File

@ -67,7 +67,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 8192
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1

View File

@ -13,6 +13,10 @@ public class Device_Base : PermanentTriggerBase
/// trigger触发事件
/// </summary>
public Func<string, bool, int> triggerAction;
/// <summary>
/// 是否正在移动
/// </summary>
public bool isMoving;
private Vector3 head_LocalPos;
private Vector3 head_LocalEulerAnglesl;

View File

@ -184,11 +184,13 @@ public class Device_3Phase4WireMeter : Device_Base
//拆下电能表
if (!fix_screw_left.isInstall && !fix_screw_right.isInstall)
{
startAction?.Invoke();
SiteManager.instance.measuringCabinet.meteringDevice = null;
Debug.Log("电能表已拆除");
transform.DOLocalMove(transform.localPosition - new Vector3(0, 0.2f, 0.2f), 2).OnComplete(() =>
{
CallScoreAction(false);
endAction?.Invoke();
gameObject.SetActive(false);
});
}
@ -203,6 +205,7 @@ public class Device_3Phase4WireMeter : Device_Base
SiteManager.instance.measuringCabinet.meteringDevice = this;
//默认是拆除的状态
Init(false);
startAction?.Invoke();
transform.DOLocalMove(new Vector3(0.1469002f, -0.1793365f, 0.5191498f), 2).OnStart(() =>
{
transform.localEulerAngles = Vector3.zero;
@ -211,6 +214,7 @@ public class Device_3Phase4WireMeter : Device_Base
LiveSceneManager.Instance.currentTool = null;
Debug.Log("电能表已安装");
CallScoreAction(true);
endAction?.Invoke();
});
}
}

View File

@ -31,21 +31,24 @@ public class Device_Cover : Device_Base
protected override void OnMDown()
{
base.OnMDown();
if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0)
if (!isMoving)
{
isCheckOK = true;
if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0)
{
isCheckOK = true;
if (!isOpen)
{
//螺丝都拧松才能拆盖子
if (!cover_screw_Left.isInstall && !cover_screw_Right.isInstall)
if (!isOpen)
{
Open();
//ÂÝË¿¶¼Å¡ËɲÅÄܲð¸Ç×Ó
if (!cover_screw_Left.isInstall && !cover_screw_Right.isInstall)
{
Open();
}
}
else
{
Close();
}
}
else
{
Close();
}
}
}
@ -58,17 +61,21 @@ public class Device_Cover : Device_Base
//盖子螺丝不在动才能动盖子
if (!cover_screw_Left.isMoving && !cover_screw_Right.isMoving)
{
isMoving = true;
Debug.Log("打开盖子");
isOpen = true;
startAction?.Invoke();
Transform parent = cover_screw_Left.transform.parent;
cover_screw_Left.transform.parent = transform;
cover_screw_Right.transform.parent = transform;
transform.DOLocalMove(new Vector3(transform.localPosition.x, -0.1388763f, -0.2485413f), 2).OnComplete(() =>
{
isOpen = true;
cover_screw_Left.transform.parent = parent;
cover_screw_Right.transform.parent = parent;
isMoving = false;
int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
endAction?.Invoke();
});
}
}
@ -81,17 +88,21 @@ public class Device_Cover : Device_Base
//盖子螺丝不在动才能动盖子
if (!cover_screw_Left.isMoving && !cover_screw_Right.isMoving)
{
isMoving=true;
Debug.Log("盖上盖子");
isOpen = false;
startAction?.Invoke();
Transform parent = cover_screw_Left.transform.parent;
cover_screw_Left.transform.parent = transform;
cover_screw_Right.transform.parent = transform;
transform.DOLocalMove(new Vector3(transform.localPosition.x, 0.01112366f, -0.09854126f), 2).OnComplete(() =>
{
isOpen = false;
cover_screw_Left.transform.parent = parent;
cover_screw_Right.transform.parent = parent;
isMoving = false;
int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
endAction?.Invoke();
});
}
}

View File

@ -34,6 +34,7 @@ public class Device_NamePlate : Device_Base
GameObject tip = Instantiate<GameObject>(checkUiPrefb, GameManager.UIMgr.canvas.transform);
ProcessTipPanel processTipPanel = tip.GetComponent<ProcessTipPanel>();
startAction?.Invoke();
//¿ªÊ¼×ß½ø¶È
processTipPanel.StartProcess(result =>
{
@ -49,6 +50,7 @@ public class Device_NamePlate : Device_Base
}
int state = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
CallScoreAction();
endAction?.Invoke();
}
});
}

View File

@ -23,6 +23,7 @@ public class Device_CabinetDoor : Device_Base
public void Open()
{
Debug.Log("开门");
startAction?.Invoke();
//开锁
transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(-45f, 0, 0), 1).OnComplete(() =>
{
@ -30,12 +31,14 @@ public class Device_CabinetDoor : Device_Base
transform.DOLocalRotate(new Vector3(0, 0, 180), 3).OnComplete(() =>
{
isOpen = true;
endAction?.Invoke();
});
});
}
public void Close()
{
Debug.Log("关门");
startAction?.Invoke();
//关门
transform.DOLocalRotate(new Vector3(0, 0, 0), 3).OnComplete(() =>
{
@ -43,6 +46,7 @@ public class Device_CabinetDoor : Device_Base
transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(0, 0, 0), 1).OnComplete(() =>
{
isOpen = false;
endAction?.Invoke();
});
});
}

View File

@ -90,6 +90,7 @@ public class Tool_Base : PermanentTriggerBase
transform.localPosition = head_LocalPos;
transform.localEulerAngles = head_LocalEulerAnglesl;
isMoving = false;
endAction?.Invoke();
});
}
}

View File

@ -55,36 +55,24 @@ public class Tool_Screw : Tool_Base
/// <param name="screwdriver"></param>
public void BeInstalled(Tool_Screwdriver screwdriver)
{
if (!isMoving && !screwdriver.isMoving)
{
isMoving = true;
screwdriver.isMoving = true;
Debug.Log("开始拧紧螺丝");
//设置螺丝刀初始位置
screwdriver.transform.parent = null;
screwdriver.transform.DOLocalRotate(installPos.localEulerAngles, 0.5f);
screwdriver.transform.DOMove(installPos.position, 1).OnComplete(() =>
//动画
transform.DOLocalMoveY(initPostionY, 1)
.OnUpdate(() =>
{
//动画
transform.DOLocalMoveY(initPostionY, 1)
.OnUpdate(() =>
{
transform.RotateAroundLocal(Vector3.up, 1);
screwdriver.transform.position = installPos.position;
screwdriver.transform.RotateAroundLocal(Vector3.right, 10);
})
.OnComplete(() =>
{
Debug.Log("螺丝已拧紧");
isInstall = true;
isMoving = false;
screwdriver.isMoving = false;
installAction?.Invoke(true);
screwdriver.ReBackHead();
CallScoreAction(true);
});
transform.RotateAroundLocal(Vector3.up, 1);
screwdriver.transform.position = installPos.position;
screwdriver.transform.RotateAroundLocal(Vector3.right, 10);
})
.OnComplete(() =>
{
Debug.Log("螺丝已拧紧");
isInstall = true;
isMoving = false;
screwdriver.isMoving = false;
installAction?.Invoke(true);
screwdriver.ReBackHead();
CallScoreAction(true);
});
}
}
/// <summary>
@ -93,35 +81,23 @@ public class Tool_Screw : Tool_Base
/// <param name="screwdriver"></param>
public void BeUnInstalled(Tool_Screwdriver screwdriver)
{
if (!isMoving && !screwdriver.isMoving)
{
isMoving = true;
screwdriver.isMoving = true;
Debug.Log("开始卸螺丝");
//设置螺丝刀初始位置
screwdriver.transform.parent = null;
screwdriver.transform.DOLocalRotate(installPos.localEulerAngles, 0.5f);
screwdriver.transform.DOMove(installPos.position, 1).OnComplete(() =>
//动画
transform.DOLocalMoveY(initPostionY - 0.02f, 1)
.OnUpdate(() =>
{
//动画
transform.DOLocalMoveY(initPostionY - 0.02f, 1)
.OnUpdate(() =>
{
transform.RotateAroundLocal(Vector3.up, 1);
screwdriver.transform.position = installPos.position;
screwdriver.transform.RotateAroundLocal(Vector3.right, 10);
})
.OnComplete(() =>
{
Debug.Log("螺丝已拧松");
isInstall = false;
isMoving = false;
screwdriver.isMoving = false;
installAction?.Invoke(false);
screwdriver.ReBackHead();
CallScoreAction(false);
});
transform.RotateAroundLocal(Vector3.up, 1);
screwdriver.transform.position = installPos.position;
screwdriver.transform.RotateAroundLocal(Vector3.right, 10);
})
.OnComplete(() =>
{
Debug.Log("螺丝已拧松");
isInstall = false;
isMoving = false;
screwdriver.isMoving = false;
installAction?.Invoke(false);
screwdriver.ReBackHead();
CallScoreAction(false);
});
}
}
}

View File

@ -14,9 +14,19 @@ public class Tool_Screwdriver : Tool_Base
/// <param name="screw"></param>
public void Install(Tool_Screw screw)
{
if (!screw.isInstall)
if (!screw.isInstall && !screw.isMoving && !isMoving)
{
screw.BeInstalled(this);
screw.isMoving = true;
isMoving = true;
Debug.Log("开始拧紧螺丝");
startAction?.Invoke();
//螺丝刀移到螺丝上
transform.parent = null;
transform.DOLocalRotate(screw.installPos.localEulerAngles, 0.5f);
transform.DOMove(screw.installPos.position, 1).OnComplete(() =>
{
screw.BeInstalled(this);
});
}
}
@ -26,9 +36,19 @@ public class Tool_Screwdriver : Tool_Base
/// <param name="screw"></param>
public void UnInstall(Tool_Screw screw)
{
if (screw.isInstall)
if (screw.isInstall && !screw.isMoving && !isMoving)
{
screw.BeUnInstalled(this);
screw.isMoving = true;
isMoving = true;
Debug.Log("开始卸螺丝");
startAction?.Invoke();
//螺丝刀移到螺丝处
transform.parent = null;
transform.DOLocalRotate(screw.installPos.localEulerAngles, 0.5f);
transform.DOMove(screw.installPos.position, 1).OnComplete(() =>
{
screw.BeUnInstalled(this);
});
}
}

View File

@ -116,6 +116,7 @@ public class Tool_TestPen : Tool_Base
if (tool_base.toolType == ToolType.)
{
var tmp = ((Tool_Screw)tool_base);
base.startAction?.Invoke();
//位置移动
transform.parent = null;
transform.DOLocalRotate(tmp.installPos.localEulerAngles, 0.5f);

View File

@ -15,7 +15,8 @@ public class Tool_WireStripper : Tool_Base
/// <param name="device_Seal"></param>
public void CutOpen(Device_Seal device_Seal)
{
isMoving = true;
base.startAction?.Invoke();
base.isMoving = true;
transform.parent = null;
transform.DORotate(device_Seal.testPosAndRot.eulerAngles, 0.5f);
transform.DOMove(device_Seal.testPosAndRot.position, 1).OnComplete(() =>

View File

@ -18,6 +18,14 @@ public class PermanentTriggerBase : MonoBehaviour
/// 打分事件
/// </summary>
private Action<string, object, int, int> scoreAction;
/// <summary>
/// 开始操作的回调(工具为从手里开始使用时调用,设备为开始操作时调用)
/// </summary>
protected Action startAction;
/// <summary>
/// 操作结束回调(工具为回到手中时调用,设备为操作结束时调用)
/// </summary>
protected Action endAction;
private void Awake()
{