This commit is contained in:
mnjnhuang 2025-11-12 18:24:47 +08:00
parent 5f30491de6
commit b81117799d
4 changed files with 47 additions and 47 deletions

View File

@ -55,8 +55,8 @@ public class Card : MonoBehaviour
private void OnMouseDrag() private void OnMouseDrag()
{ {
if (is_drag) return; if (is_drag) return;
if (CardEventOS.Instance.LOCK_GET(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD) && !is_drag) return; if (CardOS.Instance.LOCK_GET(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD) && !is_drag) return;
if (!CardEventOS.Instance.LOCK_APPLY(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD)) return; if (!CardOS.Instance.LOCK_APPLY(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD)) return;
Sequence seq = DOTween.Sequence(); Sequence seq = DOTween.Sequence();
seq.Join(transform.DOMove(hover_position, hover_duration)); seq.Join(transform.DOMove(hover_position, hover_duration));
seq.Join(transform.DOScale(card_status.SCALE * 2f, hover_duration)); seq.Join(transform.DOScale(card_status.SCALE * 2f, hover_duration));
@ -74,7 +74,7 @@ public class Card : MonoBehaviour
seq.Join(transform.DORotateQuaternion(card_status.ROTATION, hover_duration)); seq.Join(transform.DORotateQuaternion(card_status.ROTATION, hover_duration));
seq.OnComplete(() => seq.OnComplete(() =>
{ {
CardEventOS.Instance.LOCK_RELEASE(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD); CardOS.Instance.LOCK_RELEASE(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD);
is_drag = false; is_drag = false;
}); });
sprite_renderer.sortingOrder = card_status.SORTING_ORDER; sprite_renderer.sortingOrder = card_status.SORTING_ORDER;
@ -84,7 +84,7 @@ public class Card : MonoBehaviour
private void m_msg_draw_card() private void m_msg_draw_card()
{ {
CardEventOS.Instance.EVENT_REGISTER<CardEventData.STRUCT_EVENT_DRAW_CARD>( CardOS.Instance.EVENT_REGISTER<CardEventData.STRUCT_EVENT_DRAW_CARD>(
CardEventData.EVENT_REGISTER_CARD_ENUM.EXCUSE_ME_PLEASE_LET_ME_DRAW_CARD, callback); CardEventData.EVENT_REGISTER_CARD_ENUM.EXCUSE_ME_PLEASE_LET_ME_DRAW_CARD, callback);
void callback(CardEventData.STRUCT_EVENT_DRAW_CARD args) void callback(CardEventData.STRUCT_EVENT_DRAW_CARD args)

View File

@ -42,7 +42,7 @@ public class CardManager : MonoBehaviour
{ {
if (Input.GetKeyDown(KeyCode.Space)) if (Input.GetKeyDown(KeyCode.Space))
{ {
if (CardEventOS.Instance.LOCK_GET(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD)) if (CardOS.Instance.LOCK_GET(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD))
{ {
print($"状态已被锁定: {CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD}"); print($"状态已被锁定: {CardEventData.LOCK_EXCLUSIVE_CARD_ENUM.SORRY_PLEASE_LOCK_I_DRAG_CARD}");
return; return;
@ -105,7 +105,7 @@ public class CardManager : MonoBehaviour
Vector3 upwards = Vector3.Cross(up, forward).normalized; // 切线和向上的夹角计算方向 Vector3 upwards = Vector3.Cross(up, forward).normalized; // 切线和向上的夹角计算方向
Quaternion rotation = Quaternion.LookRotation(up, upwards); Quaternion rotation = Quaternion.LookRotation(up, upwards);
CardEventOS.Instance.EVENT_TRIGGER(CardEventData.EVENT_REGISTER_CARD_ENUM.EXCUSE_ME_PLEASE_LET_ME_DRAW_CARD, CardOS.Instance.EVENT_TRIGGER(CardEventData.EVENT_REGISTER_CARD_ENUM.EXCUSE_ME_PLEASE_LET_ME_DRAW_CARD,
new CardEventData.STRUCT_EVENT_DRAW_CARD new CardEventData.STRUCT_EVENT_DRAW_CARD
{ {
ID = i, ID = i,

View File

@ -1,42 +1,42 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using JetBrains.Annotations; using JetBrains.Annotations;
using UnityEngine; using UnityEngine;
public class CardEventOS : MonoBehaviour public class CardOS : MonoBehaviour
{ {
public static CardEventOS Instance { get; private set; } public static CardOS Instance { get; private set; }
private CardLockSvc cardLockSvc; private CardLockSvc cardLockSvc;
private CardEventSvc cardEventSvc; private CardEventSvc cardEventSvc;
private void Awake() private void Awake()
{ {
if (Instance != null && Instance != this) if (Instance != null && Instance != this)
{ {
Destroy(gameObject); Destroy(gameObject);
return; return;
} }
Instance = this; Instance = this;
cardLockSvc = new CardLockSvc(); cardLockSvc = new CardLockSvc();
cardEventSvc = new CardEventSvc(); cardEventSvc = new CardEventSvc();
DontDestroyOnLoad(gameObject); DontDestroyOnLoad(gameObject);
} }
// *************** 锁 **************** // *************** 锁 ****************
public bool LOCK_APPLY(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_APPLY(lock_name); public bool LOCK_APPLY(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_APPLY(lock_name);
public void LOCK_RELEASE(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_RELEASE(lock_name); public void LOCK_RELEASE(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_RELEASE(lock_name);
public bool LOCK_GET(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_GET(lock_name); public bool LOCK_GET(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_GET(lock_name);
// *************** 事件系统 **************** // *************** 事件系统 ****************
public void EVENT_REGISTER<T>(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, Action<T> callback) where T : struct => public void EVENT_REGISTER<T>(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, Action<T> callback) where T : struct =>
cardEventSvc.EVENT_REGISTER(event_name, callback); cardEventSvc.EVENT_REGISTER(event_name, callback);
public void EVENT_TRIGGER(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, object data) => public void EVENT_TRIGGER(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, object data) =>
cardEventSvc.EVENT_TRIGGER(event_name, data); cardEventSvc.EVENT_TRIGGER(event_name, data);
// public void EVENT_UNREGISTER(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, Action<object> callback) => // public void EVENT_UNREGISTER(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, Action<object> callback) =>
// cardEventSvc.EVENT_UNREGISTER(event_name, callback); // cardEventSvc.EVENT_UNREGISTER(event_name, callback);
} }