Browse Source

手卡UI

pull/24/head
45 2 years ago
parent
commit
601be1cae5
  1. 11
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/Card_v01.prefab
  2. 129
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  3. 12
      ColorlessWorld-2024-4-2/Assets/Scenes/Shop.unity
  4. 113
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  5. 162
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOnMouseEnter.cs
  6. 25
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs

11
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/Card_v01.prefab

@ -907,6 +907,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
originalParent: {fileID: 0} originalParent: {fileID: 0}
originalpoint: {x: 0, y: 0, z: 0} originalpoint: {x: 0, y: 0, z: 0}
originalScale: {x: 0, y: 0, z: 0}
eventSystem: {fileID: 0} eventSystem: {fileID: 0}
ainPanle: {fileID: 1075869202937435496} ainPanle: {fileID: 1075869202937435496}
currentNode: {fileID: 0} currentNode: {fileID: 0}
@ -914,6 +915,7 @@ MonoBehaviour:
layerMask: layerMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 64 m_Bits: 64
cardOnMouseEnter: {fileID: 0}
--- !u!225 &2967471168845626985 --- !u!225 &2967471168845626985
CanvasGroup: CanvasGroup:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -938,6 +940,15 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 523596fd7703bbe44a0c37d83fd5c880, type: 3} m_Script: {fileID: 11500000, guid: 523596fd7703bbe44a0c37d83fd5c880, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
cardDrag: {fileID: 0}
targetScale: {x: 0, y: 0, z: 0}
originScale: {x: 0, y: 0, z: 0}
speed: 4
moveOffset: 100
thisIndexInIndex: 0
originPoint: {x: 0, y: 0, z: 0}
UpperOffset: {x: 0, y: 100, z: 0}
originRotation: {x: 0, y: 0, z: 0}
--- !u!1 &3523919461092501418 --- !u!1 &3523919461092501418
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

129
ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity

@ -3243,7 +3243,7 @@ RectTransform:
m_LocalScale: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 959299392} - {fileID: 1998717001}
- {fileID: 563103080} - {fileID: 563103080}
m_Father: {fileID: 196188496} m_Father: {fileID: 196188496}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -3827,7 +3827,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -1825} m_AnchoredPosition: {x: 0, y: -2480}
m_SizeDelta: {x: 100, y: 100} m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &573479786 --- !u!1 &573479786
@ -6085,16 +6085,16 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959299391} m_GameObject: {fileID: 959299391}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.54, y: 1.54, z: 1.54} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1 m_ConstrainProportionsScale: 1
m_Children: [] m_Children: []
m_Father: {fileID: 469385439} m_Father: {fileID: 1998717001}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -436} m_AnchoredPosition: {x: 0, y: -39}
m_SizeDelta: {x: 1246.8, y: 252.24341} m_SizeDelta: {x: 1246.8, y: 252.24341}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &959299393 --- !u!114 &959299393
@ -6173,8 +6173,9 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
cardCount: 0 cardCount: 0
targrtPoint: {fileID: 563103079} targrtPoint: {fileID: 563103079}
radius: 1400 radius: 2000
angleIncrement: 5 angleIncrement: 3
preparePoint: {fileID: 1239251607}
cardPointDataList: cardPointDataList:
- pivot: {x: 2.63, y: 10} - pivot: {x: 2.63, y: 10}
rotationZ: 6.95 rotationZ: 6.95
@ -7270,6 +7271,41 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 348176937} m_Father: {fileID: 348176937}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1239251607
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1239251608}
m_Layer: 5
m_Name: PreparePoint
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1239251608
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1239251607}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1998717001}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 107}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1242608528 --- !u!1 &1242608528
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -11619,6 +11655,83 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1978148439} m_GameObject: {fileID: 1978148439}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1998717000
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1998717001}
- component: {fileID: 1998717003}
- component: {fileID: 1998717002}
m_Layer: 5
m_Name: ScalePanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1998717001
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1998717000}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.54, y: 1.54, z: 1.54}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 959299392}
- {fileID: 1239251608}
m_Father: {fileID: 469385439}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -8.1971, y: -372.5777}
m_SizeDelta: {x: 658.744, y: 217.4322}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1998717002
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1998717000}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.40392157}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1998717003
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1998717000}
m_CullTransparentMesh: 1
--- !u!1 &2012988517 --- !u!1 &2012988517
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

12
ColorlessWorld-2024-4-2/Assets/Scenes/Shop.unity

@ -2293,24 +2293,18 @@ MonoBehaviour:
m_GameObject: {fileID: 378610458} m_GameObject: {fileID: 378610458}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b93371d37dce58d4c9c2aa4a5f8bea43, type: 3} m_Script: {fileID: 11500000, guid: e8e58dce5964fff478de0e99c4696e30, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
selectedDeleteIndex: 0 selectedDeleteIndex: 0
cardDeck: 11270000122700001327000014270000 cardDeck: 112700001127000011270000
cardPrefab: {fileID: 6007039648128040781, guid: aca792d113461d44a8227dffd169496d, cardPrefab: {fileID: 6007039648128040781, guid: aca792d113461d44a8227dffd169496d,
type: 3} type: 3}
cardFatherPanle: {fileID: 2114505808} cardFatherPanle: {fileID: 2114505808}
deletePanle: {fileID: 2102594624} deletePanle: {fileID: 2102594624}
banDeleteCardIcon: {fileID: 931767495} banDeleteCardIcon: {fileID: 931767495}
selectedSaleIndex: 0 selectedSaleIndex: 0
saleCardList: saleCardList: []
- {fileID: 6726700768224339748}
- {fileID: 559998871}
- {fileID: 1560066191}
- {fileID: 1147410003}
- {fileID: 1669132170}
- {fileID: 1446486241}
templatePlayerState: {fileID: 11400000, guid: afd7daa84e9985b45bd00c91505acb37, templatePlayerState: {fileID: 11400000, guid: afd7daa84e9985b45bd00c91505acb37,
type: 2} type: 2}
playerState: {fileID: 0} playerState: {fileID: 0}

113
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs

@ -15,8 +15,10 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
// public Vector3 OriginTransform; // public Vector3 OriginTransform;
//private Vector3 EndTransform; //private Vector3 EndTransform;
[Header("拖拽参数")] [Header("拖拽参数")]
public bool follow;
public Transform originalParent; public Transform originalParent;
public Vector3 originalpoint; public Vector3 originalpoint;
public EventSystem eventSystem; public EventSystem eventSystem;
bool canUse = true;//决定卡牌是否可以释放 bool canUse = true;//决定卡牌是否可以释放
bool choosed;//标识卡牌是否被选中 bool choosed;//标识卡牌是否被选中
@ -36,8 +38,13 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
[Header("射线图层剔除")] [Header("射线图层剔除")]
public LayerMask layerMask; public LayerMask layerMask;
[Header("鼠标检测脚本")]
public CardOnMouseEnter cardOnMouseEnter;
void Start() void Start()
{ {
cardOnMouseEnter = GetComponent<CardOnMouseEnter>();
eventSystem = GameObject.FindObjectOfType<EventSystem>(); eventSystem = GameObject.FindObjectOfType<EventSystem>();
cardEntity = GetComponent<CardEntity>(); cardEntity = GetComponent<CardEntity>();
} }
@ -154,6 +161,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
//其他位置都归位 //其他位置都归位
transform.SetParent(originalParent); transform.SetParent(originalParent);
GetComponent<CanvasGroup>().blocksRaycasts = true; GetComponent<CanvasGroup>().blocksRaycasts = true;
transform.localScale = new Vector3(1f, 1f, 1f);
// transform.position = originalpoint; // transform.position = originalpoint;
// CardActiveSort.Instance.ReflashCardPoint(); // CardActiveSort.Instance.ReflashCardPoint();
return; return;
@ -164,16 +172,15 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
{ {
if (choosed && Mouse.current.rightButton.wasPressedThisFrame) if (choosed && Mouse.current.rightButton.wasPressedThisFrame)
{ {
GameManager.Instance.onDrag = false; GameManager.Instance.onDrag = false;
Debug.Log("取消释放"); Debug.Log("取消释放");
canUse = false;//取消释放 canUse = false;//取消释放
ainPanle.SetActive(false); ainPanle.SetActive(false);
resetComponentPosition(); resetComponentPosition();
} }
} }
public void OnBeginDrag(PointerEventData eventData) public void OnBeginDrag(PointerEventData eventData)
{ {
// if (GameObject.Find("CardPanel") != null) // if (GameObject.Find("CardPanel") != null)
@ -196,6 +203,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
transform.SetParent(transform.parent.parent); transform.SetParent(transform.parent.parent);
transform.position = eventData.position; transform.position = eventData.position;
GetComponent<RectTransform>().localScale = cardOnMouseEnter.targetScale;
//根据卡牌数据决定是否调用曲线 //根据卡牌数据决定是否调用曲线
if (cardEntity.cardOriginalData.CastingRange != 0) if (cardEntity.cardOriginalData.CastingRange != 0)
@ -365,6 +373,23 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
} }
dyeing(); dyeing();
Debug.Log(eventData.pointerCurrentRaycast.gameObject.name);
if (eventData.pointerCurrentRaycast.gameObject.name == "TotalPanel")
{
follow = false;
}
else
{
follow = true;
}
if (follow == true )
{
transform.position = eventData.position;
}
else
{
transform.position = CardActiveSort .Instance .preparePoint .transform .position ;
}
} }
private void dyeing() private void dyeing()
@ -396,47 +421,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
{ {
if (eventData.pointerCurrentRaycast.gameObject != null) if (eventData.pointerCurrentRaycast.gameObject != null)
{ {
if (eventData.pointerCurrentRaycast.gameObject.name == "Card") resetComponentPosition();
{
transform.SetParent(eventData.pointerCurrentRaycast.gameObject.transform.parent);
transform.position = eventData.pointerCurrentRaycast.gameObject.transform.position;
eventData.pointerCurrentRaycast.gameObject.transform.position = originalParent.position;
eventData.pointerCurrentRaycast.gameObject.transform.SetParent(originalParent);
GetComponent<CanvasGroup>().blocksRaycasts = true;
//关闭贝塞尔曲线
ainPanle.SetActive(false);
//遍历范围预览池消除影响色
foreach (MapUnity mapUnity in GameManager.Instance.player.influencePreviewPool)
{
mapUnity.influenced = false;
}
//GameManager.Instance.player.influencePreviewPool.Clear();
yield break;
}
else if (eventData.pointerCurrentRaycast.gameObject.name == "cardSlot")
{
transform.SetParent(eventData.pointerCurrentRaycast.gameObject.transform);
transform.position = eventData.pointerCurrentRaycast.gameObject.transform.position;
GetComponent<CanvasGroup>().blocksRaycasts = true;
//关闭贝塞尔曲线
ainPanle.SetActive(false);
//遍历范围预览池消除影响色
foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool)
{
mapUnity.influenced = false;
}
MapUnityManager.Instance.castPool.Clear();
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{
mapUnity.influenced = false;
}
cardEntity.influencePreviewPool.Clear();
//GameManager.Instance.player.influencePreviewPool.Clear();
yield break;
}
} }
if (ainPanle.activeSelf) if (ainPanle.activeSelf)
{ {
@ -493,7 +478,47 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
/* if (eventData.pointerCurrentRaycast.gameObject.name == "Card")
{
transform.SetParent(eventData.pointerCurrentRaycast.gameObject.transform.parent);
transform.position = eventData.pointerCurrentRaycast.gameObject.transform.position;
eventData.pointerCurrentRaycast.gameObject.transform.position = originalParent.position;
eventData.pointerCurrentRaycast.gameObject.transform.SetParent(originalParent);
GetComponent<CanvasGroup>().blocksRaycasts = true;
//关闭贝塞尔曲线
ainPanle.SetActive(false);
//遍历范围预览池消除影响色
foreach (MapUnity mapUnity in GameManager.Instance.player.influencePreviewPool)
{
mapUnity.influenced = false;
}
//GameManager.Instance.player.influencePreviewPool.Clear();
yield break;
}
else if (eventData.pointerCurrentRaycast.gameObject.name == "cardSlot")
{
transform.SetParent(eventData.pointerCurrentRaycast.gameObject.transform);
transform.position = eventData.pointerCurrentRaycast.gameObject.transform.position;
GetComponent<CanvasGroup>().blocksRaycasts = true;
//关闭贝塞尔曲线
ainPanle.SetActive(false);
//遍历范围预览池消除影响色
foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool)
{
mapUnity.influenced = false;
}
MapUnityManager.Instance.castPool.Clear();
foreach (MapUnity mapUnity in cardEntity.influencePreviewPool)
{
mapUnity.influenced = false;
}
cardEntity.influencePreviewPool.Clear();
//GameManager.Instance.player.influencePreviewPool.Clear();
yield break;
}*/

162
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOnMouseEnter.cs

@ -5,13 +5,173 @@ using UnityEngine.EventSystems;
public class CardOnMouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler public class CardOnMouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{ {
[Header("鼠标事件控制")]
public CardDrag cardDrag;
public Vector3 targetScale;
public Vector3 originScale;
public float speed =2;
private Coroutine coroutineBig;
private Coroutine coroutineSmall;
private Coroutine coroutineMoveSideway;
private Coroutine coroutineMoveComeback;
public float moveOffset =100;
// private Transform originParent;
public int thisIndexInIndex;
public Vector3 originPoint;
public Vector3 UpperOffset;
public Vector3 originRotation;
RectTransform rectTransform;
private void Start()
{
cardDrag = GetComponent<CardDrag>();
rectTransform = GetComponent<RectTransform>();
targetScale = new Vector3(1.3f, 1.3f, 1.3F);
originScale = transform.localScale;
// childIndex = transform.GetSiblingIndex();
}
public void OnPointerEnter(PointerEventData eventData) public void OnPointerEnter(PointerEventData eventData)
{ {
Debug.Log("放大"); // if(coroutineSmall !=null )
// StopCoroutine(coroutineSmall);
if (GameManager.Instance.onDrag == false)
{
StopAllCoroutines();
transform.position = originPoint;
rectTransform.eulerAngles = new Vector3(0f, 0f, 0f);
coroutineBig = StartCoroutine(ZoomBig());
}
} }
public void OnPointerExit(PointerEventData eventData) public void OnPointerExit(PointerEventData eventData)
{ {
// if(coroutineBig != null )
// StopCoroutine(coroutineBig);
if(GameManager .Instance . onDrag ==false )
{
StopAllCoroutines();
rectTransform.eulerAngles = originRotation;
coroutineSmall = StartCoroutine(ZoomSmall());
}
}
IEnumerator ZoomBig()
{
thisIndexInIndex = transform.GetSiblingIndex();
transform.position += UpperOffset;
OffsetOtherCard(thisIndexInIndex);
transform.SetAsLastSibling();
while (Vector3.Distance(transform.localScale, targetScale) > 0.1)
{
transform.transform.localScale = Vector3.Lerp(this.transform.localScale, targetScale, Time.deltaTime * speed);
yield return null;
}
}
IEnumerator ZoomSmall()
{
transform.SetSiblingIndex(thisIndexInIndex);
transform.position = originPoint ;
ComebackOtherCard(thisIndexInIndex);
while (Vector3.Distance(transform.localScale, originScale) > 0.1)
{
transform.transform.localScale = Vector3.Lerp(this.transform.localScale, originScale, Time.deltaTime * speed);
yield return null;
}
yield return 0;
}
public void OffsetOtherCard(int thisIndex)
{
List <CardEntity > cardEntities = TurnMaster.Instance.handCard.cardEntityList;
for(int i = 0;i<cardEntities .Count; i++)
{
int index = cardEntities[i].transform.GetSiblingIndex();
if(index != thisIndex )
{
cardEntities[i].GetComponent<CardOnMouseEnter>().StartMoveSideway(thisIndex);
}
}
}
public void ComebackOtherCard(int thisIndex)
{
List<CardEntity> cardEntities = TurnMaster.Instance.handCard.cardEntityList;
for (int i = 0; i < cardEntities.Count; i++)
{
int index = cardEntities[i].transform.GetSiblingIndex();
if (index != thisIndex)
{
cardEntities[i].GetComponent<CardOnMouseEnter>().StartComeBack();
}
}
}
public void StartMoveSideway(int chlidIndex)
{
if(originPoint.x != 0 )
{
//先归位
transform.position = originPoint;
}
//向侧面移动排开
int thisIndex = transform.GetSiblingIndex();
float thisOffset = moveOffset;
thisOffset = moveOffset / (thisIndex- chlidIndex );
Vector3 targetPos = originPoint + new Vector3(thisOffset, 0, 0);
if (coroutineMoveComeback != null)
{
StopCoroutine(coroutineMoveComeback);
}
coroutineMoveSideway = StartCoroutine(MoveSideway(targetPos));
}
public void StartComeBack()
{
if (coroutineMoveSideway != null)
StopCoroutine(coroutineMoveSideway);
coroutineMoveComeback= StartCoroutine(MoveComeBack());
}
IEnumerator MoveSideway(Vector3 targetPos)
{
while (Vector3.Distance(transform.position, targetPos) > 0.1)
{
transform.position = Vector3.Lerp(transform.position, targetPos, Time.deltaTime * speed);
yield return null;
}
}
IEnumerator MoveComeBack()
{
while (Vector3.Distance(transform.position, originPoint) > 0.1)
{
transform.position = Vector3.Lerp(transform.position, originPoint, Time.deltaTime * speed);
yield return null;
}
} }
} }

25
ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs

@ -11,14 +11,16 @@ public class CardActiveSort : Singleton <CardActiveSort>
public float radius;//半径 public float radius;//半径
public float angleIncrement;//起始角度增量 public float angleIncrement;//起始角度增量
public GameObject preparePoint;
[Header ("卡牌位置")] [Header ("卡牌位置")]
public List<CardPointData> cardPointDataList= new List<CardPointData>();//奇数 public List<CardPointData> cardPointDataList= new List<CardPointData>();//奇数
public List<CardPointData> cardPointDataListEven = new List<CardPointData>();//偶数 public List<CardPointData> cardPointDataListEven = new List<CardPointData>();//偶数
void Update() void Update()
{ {
if(transform .childCount !=cardCount && transform .childCount >1) if(transform .childCount !=cardCount && transform .childCount >1)
{ {
ReflashCardPoint(); ReflashCardPoint();
cardCount = this.transform.childCount; cardCount = this.transform.childCount;
} }
@ -33,7 +35,15 @@ public class CardActiveSort : Singleton <CardActiveSort>
for (int i = 0; i < transform.childCount; i++) for (int i = 0; i < transform.childCount; i++)
{ {
cardEntitieList.Add(transform.GetChild(i).GetComponent<RectTransform>()); cardEntitieList.Add(transform.GetChild(i).GetComponent<RectTransform>());
} }
//ÍŁÖšŇĆśŻ
foreach (var card in cardEntitieList )
{
CardOnMouseEnter cardOnMouseEnte = card.GetComponent<CardOnMouseEnter>();
cardOnMouseEnte.StopAllCoroutines();
}
Debug.Log("排序"); Debug.Log("排序");
float currentangle = 0; float currentangle = 0;
@ -56,7 +66,16 @@ public class CardActiveSort : Singleton <CardActiveSort>
float angle = Vector3.SignedAngle(-cardEntitieList[i].transform.up, direction, cardEntitieList[i].transform.forward); float angle = Vector3.SignedAngle(-cardEntitieList[i].transform.up, direction, cardEntitieList[i].transform.forward);
cardEntitieList[i].transform.Rotate(0, 0, angle); cardEntitieList[i].transform.Rotate(0, 0, angle);
} }
//ÖŘÖĂłőʟΝÖĂ
foreach (var card in cardEntitieList)
{
CardOnMouseEnter cardOnMouseEnte = card.GetComponent<CardOnMouseEnter>();
cardOnMouseEnte.originPoint= cardOnMouseEnte.transform.position ;
cardOnMouseEnte.originRotation = cardOnMouseEnte.GetComponent <RectTransform >().eulerAngles;
}
} }
[System .Serializable ] [System .Serializable ]

Loading…
Cancel
Save