指针功能完成,齿轮未接入

This commit is contained in:
2025-01-16 22:20:04 +08:00
parent b80d78ad23
commit 74025f3d5b
11 changed files with 123 additions and 398 deletions
+21 -7
View File
@@ -6,7 +6,8 @@ using UnityEngine.EventSystems;
namespace AibisDream.FixSystem
{
public class Plug : MonoBehaviour, IDragHandler, IPointerDownHandler, IPointerUpHandler
[RequireComponent(typeof(EventTriggerEx))]
public class Plug : MonoBehaviour
{
#region
@@ -22,6 +23,7 @@ namespace AibisDream.FixSystem
private CableSystem _cableSystem;
private SpriteRenderer _sprite;
private Transform _plugRootPos;
private EventTriggerEx _trigger;
#endregion
@@ -30,6 +32,7 @@ namespace AibisDream.FixSystem
private void Awake()
{
InitComponentRef();
EventRegister();
}
private void InitComponentRef()
@@ -37,6 +40,14 @@ namespace AibisDream.FixSystem
_cableSystem = transform.parent.GetComponent<CableSystem>();
_sprite = GetComponent<SpriteRenderer>();
_plugRootPos = transform.Find("Plug Root Pos");
_trigger = GetComponent<EventTriggerEx>();
}
private void EventRegister()
{
_trigger.Register(EventTriggerType.Drag, OnDrag);
_trigger.Register(EventTriggerType.PointerDown, OnPointerDown);
_trigger.Register(EventTriggerType.PointerUp, OnPointerUp);
}
public void InitPlug(ISocket initSocket)
@@ -90,18 +101,21 @@ namespace AibisDream.FixSystem
_cableSystem.curSocket = null;
}
public void OnDrag(PointerEventData eventData)
private void OnDrag(BaseEventData eventData)
{
// 系统被锁定就返回
if (!_cableSystem.IsPlugAvailable()) return;
// 未被拖拽也返回
if (!_isDragging) return;
transform.position = CommonUtil.GetMouseWorldPos(eventData.position, transform);
if (eventData is PointerEventData pointerData)
{
transform.position = CommonUtil.GetMouseWorldPos(pointerData.position, transform);
}
}
public void OnPointerDown(PointerEventData eventData)
private void OnPointerDown(BaseEventData eventData)
{
// 系统被锁定就返回
if (!_cableSystem.IsPlugAvailable()) return;
@@ -115,7 +129,7 @@ namespace AibisDream.FixSystem
AdjustPlugPos();
}
public void OnPointerUp(PointerEventData eventData)
private void OnPointerUp(BaseEventData eventData)
{
// 停止拖拽
_isDragging = false;