Browse Source

小卡牌预制体

pull/25/head
45 2 years ago
parent
commit
91cb8d02c0
  1. 2
      ColorlessWorld-2024-4-2/Assets/Image/Materials/7尤利乌斯-2D-待机动作-试gif.mat
  2. 8
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/CardSmall.meta
  3. 19
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/Card_v01.prefab
  4. 12334
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  5. 307
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  6. 12
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOnMouseEnter.cs
  7. 8
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall.meta
  8. 59
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall/CardSmall.cs
  9. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall/CardSmall.cs.meta
  10. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs
  11. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs.meta
  12. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs.meta
  13. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta
  14. 49
      ColorlessWorld-2024-4-2/Assets/Scripts/UI/CardActiveSort/CardActiveSort.cs

2
ColorlessWorld-2024-4-2/Assets/Image/Materials/7尤利乌斯-2D-待机动作-试gif.mat

@ -49,7 +49,7 @@ Material:
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _MainTex: - _MainTex:
m_Texture: {fileID: 2800000, guid: b738de9a1a797b3438a0f86f45a7d9a2, type: 3} m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _MetallicGlossMap: - _MetallicGlossMap:

8
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/CardSmall.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5554cccb37d406243933d41534f56ab6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

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

@ -311,9 +311,9 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
@ -542,9 +542,9 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
@ -905,12 +905,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 80971e1d1b78104439c3472d4276e502, type: 3} m_Script: {fileID: 11500000, guid: 80971e1d1b78104439c3472d4276e502, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
follow: 0
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}
dragState: 3
castingPool: [] castingPool: []
layerMask: layerMask:
serializedVersion: 2 serializedVersion: 2
@ -1008,9 +1009,9 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
@ -1083,9 +1084,9 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []

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

File diff suppressed because it is too large

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

@ -4,8 +4,6 @@ using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.InputSystem; using UnityEngine.InputSystem;
using static EnemyNode;
using static UnityEngine.Rendering.DebugUI;
using System; using System;
using Unity.VisualScripting; using Unity.VisualScripting;
using System.Data; using System.Data;
@ -15,12 +13,11 @@ 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;//决定卡牌是否可以释放 public bool canUse = true;//决定卡牌是否可以释放
bool choosed;//标识卡牌是否被选中 bool choosed;//标识卡牌是否被选中
[Header("贝塞尔曲线瞄准")] [Header("贝塞尔曲线瞄准")]
@ -29,12 +26,25 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
[Header("影响格参数")] [Header("影响格参数")]
public MapUnity currentNode;//瞄准的格子 public MapUnity currentNode;//瞄准的格子
[Header("卡牌拖拽状态")]
public CardDragState dragState = CardDragState.noDrag ;
public enum CardDragState
{
onBeginDrag,
onDrag,
onEndDrag,
noDrag
}
PointerEventData eventData;
List<RaycastResult> result = new List<RaycastResult>();
//[Header("卡牌属性")] public bool ready;//是否已到达可释放位置
private CardEntity cardEntity;
[Header("卡牌属性")]
public List<MapUnity> castingPool;//卡牌打出范围 public List<MapUnity> castingPool;//卡牌打出范围
private CardEntity cardEntity;
[Header("射线图层剔除")] [Header("射线图层剔除")]
public LayerMask layerMask; public LayerMask layerMask;
@ -43,6 +53,11 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
void Start() void Start()
{ {
originalParent = gameObject.transform.parent;
dragState = CardDragState.noDrag;
eventSystem = GameObject.FindObjectOfType<EventSystem>();
eventData = new PointerEventData(eventSystem);
cardOnMouseEnter = GetComponent<CardOnMouseEnter>(); cardOnMouseEnter = GetComponent<CardOnMouseEnter>();
eventSystem = GameObject.FindObjectOfType<EventSystem>(); eventSystem = GameObject.FindObjectOfType<EventSystem>();
@ -54,7 +69,177 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
{ {
handleRightClickCancel(); handleRightClickCancel();
if (dragState != CardDragState.noDrag && dragState != CardDragState.onDrag)
{
//UI射线检测
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
if (result.Count > 0)
{
Debug.Log(result[0].gameObject.name);
}
}
switch (dragState)
{
case CardDragState.onBeginDrag:
if(choosed ==false )
{
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.useCard;
CardChoose(eventData);
dragState = CardDragState.onDrag;
}
break;
case CardDragState.onDrag:
CardFollow();
if (Mouse.current.leftButton.wasReleasedThisFrame && ready)
{
dragState = CardDragState.onEndDrag;
}
break;
case CardDragState.onEndDrag:
TurnMaster.Instance.playerAction = TurnMaster.PlayerAction.none;
CardUse();
break;
case CardDragState.noDrag:
if (Mouse.current.leftButton.wasReleasedThisFrame && GameManager.Instance.onDrag == false)
{
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
if (result.Count > 0)
{
Debug.Log(result[0].gameObject.name);
if (result[0].gameObject == this.gameObject)
{
dragState = CardDragState.onBeginDrag;
GameManager.Instance.onDrag = true;
}
}
}
break;
}
}
//卡片动作
//开始选中
public void CardChoose(PointerEventData eventData)
{
banActionCardCheck();
disArmCheck();
costCheck();
disCardCheck();
if (!cardEntity.canUse)
{
return;
}
choosed = true;
GetComponent<CanvasGroup>().blocksRaycasts = false;
originalpoint = this.transform.localPosition;
transform.SetParent(transform.parent.parent);
transform.position = eventData.position;
GetComponent<RectTransform>().localScale = cardOnMouseEnter.targetScale;
//根据卡牌数据决定是否调用曲线
if (cardEntity.cardOriginalData.CastingRange != 0)
{
//释放范围为0则不需要调用曲线
ainPanle.SetActive(true);
}
else
{
ainPanle.SetActive(false);
}
} }
//拖拽中
public void CardFollow()
{
if (!cardEntity.canUse)
{
return;
}
dyeing();
eventData.position = Mouse.current.position.value;
eventSystem.RaycastAll(eventData, result);
Debug.Log(result[0].gameObject.name);
if (result.Count > 0)
{
if(result[0].gameObject.name == "TotalPanel")
{
if( ready == false)
{
ready = true;
}
transform.position = cardOnMouseEnter.originPoint;
if (cardEntity.cardOriginalData.CastingRange != 0)
{
ainPanleWork(eventData);
}
else
{
noAinPanleWork(eventData);
}
}
else
{
if(ready ==true )
{
resetComponentPosition();
}
else
{
transform.position = eventData.position;
}
}
}
// if (eventData.pointerCurrentRaycast.gameObject.name == )
// {
// follow = false;
// }
// else
// {
// follow = true;
// }
// if (follow == true)
// {
// transform.position = eventData.position;
// }
// else
// {
// transform.position = CardActiveSort.Instance.preparePoint.transform.position;
// }
}
//卡牌释放
public void CardUse()
{
GameManager.Instance.onDrag = false;
if (canUse)
{
CardActiveSort.Instance.ReflashCardPoint();
StartCoroutine(OnDragIEnumerator(eventData));
}
else
{
canUse = true;
resetComponentPosition();
}
}
//检查卡牌的费用是否可以释放 //检查卡牌的费用是否可以释放
private void costCheck() private void costCheck()
{ {
@ -157,13 +342,17 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
} }
cardEntity.influencePreviewPool.Clear(); cardEntity.influencePreviewPool.Clear();
ready = false;
GameManager.Instance.onDrag = false;
dragState = CardDragState.noDrag;
choosed = false;
canUse = true;//取消释放
ainPanle.SetActive(false);
//其他位置都归位 //其他位置都归位
transform.SetParent(originalParent); transform.SetParent(originalParent);
GetComponent<CanvasGroup>().blocksRaycasts = true; GetComponent<CanvasGroup>().blocksRaycasts = true;
transform.localScale = new Vector3(1f, 1f, 1f); transform.localScale = new Vector3(1f, 1f, 1f);
// transform.position = originalpoint;
// CardActiveSort.Instance.ReflashCardPoint();
return; return;
} }
@ -173,48 +362,13 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
if (choosed && Mouse.current.rightButton.wasPressedThisFrame) if (choosed && Mouse.current.rightButton.wasPressedThisFrame)
{ {
GameManager.Instance.onDrag = false;
Debug.Log("取消释放");
canUse = false;//取消释放
ainPanle.SetActive(false);
resetComponentPosition(); resetComponentPosition();
} }
} }
public void OnBeginDrag(PointerEventData eventData) public void OnBeginDrag(PointerEventData eventData)
{ {
// if (GameObject.Find("CardPanel") != null) dragState = CardDragState.onBeginDrag;
// graphicRaycaster = GameObject.Find("CardPanel").GetComponent<GraphicRaycaster>();
banActionCardCheck();
disArmCheck();
costCheck();
disCardCheck();
if (!cardEntity.canUse)
{
return;
}
GameManager.Instance.onDrag = true;
choosed = true;
GetComponent<CanvasGroup>().blocksRaycasts = false;
originalParent = this.gameObject.transform.parent;
originalpoint = this.transform.localPosition;
transform.SetParent(transform.parent.parent);
transform.position = eventData.position;
GetComponent<RectTransform>().localScale = cardOnMouseEnter.targetScale;
//根据卡牌数据决定是否调用曲线
if (cardEntity.cardOriginalData.CastingRange != 0)
{
//释放范围为0则不需要调用曲线
ainPanle.SetActive(true);
}
else
{
ainPanle.SetActive(false);
}
} }
private void ainPanleWork(PointerEventData eventData) private void ainPanleWork(PointerEventData eventData)
@ -358,38 +512,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
public void OnDrag(PointerEventData eventData) public void OnDrag(PointerEventData eventData)
{ {
if (!cardEntity.canUse)
{
return;
}
if (cardEntity.cardOriginalData.CastingRange != 0)
{
ainPanleWork(eventData);
}
else
{
noAinPanleWork(eventData);
}
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()
@ -405,9 +528,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
public void OnEndDrag(PointerEventData eventData) public void OnEndDrag(PointerEventData eventData)
{ {
GameManager.Instance.onDrag = false;
StartCoroutine(OnDragIEnumerator(eventData));
} }
private IEnumerator OnDragIEnumerator(PointerEventData eventData) private IEnumerator OnDragIEnumerator(PointerEventData eventData)
@ -431,41 +552,23 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
//先判断该卡牌的类型是否是需要范围 //先判断该卡牌的类型是否是需要范围
if (cardEntity.cardOriginalData.CastingRange != 0) if (cardEntity.cardOriginalData.CastingRange != 0)
{ {
//检测碰撞的地图节点是否被影响(可释放) if(currentNode != null&& currentNode.influenced)
if (currentNode == null || currentNode.influenced == false)
{
//遍历范围预览池消除影响色(红色,卡牌的释放范围)
foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool)
{
mapUnity.influenced = false;
}
MapUnityManager.Instance.castPool.Clear();
}
else if (currentNode.influenced)
{ {
//卡牌释放效果 //卡牌释放效果
yield return StartCoroutine(cardEntity.settle(0)); yield return StartCoroutine(cardEntity.settle(0));
} }
cardEntity.influencePreviewPool.Clear(); else
GetComponent<CanvasGroup>().blocksRaycasts = true; {
resetComponentPosition();
//其他位置都归位 }
transform.SetParent(originalParent);
transform.localPosition = originalpoint;
yield break;
}//范围类,需要指定被影响的节点才能释放 }//范围类,需要指定被影响的节点才能释放
else else
{ {
//卡牌释放效果 //卡牌释放效果
yield return StartCoroutine(cardEntity.settle(0)); yield return StartCoroutine(cardEntity.settle(0));
yield break;
}//无范围类,直接释放 }//无范围类,直接释放
yield break;
} }
else else
{ {

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

@ -5,6 +5,8 @@ using UnityEngine.EventSystems;
public class CardOnMouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler public class CardOnMouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{ {
public int oringinIndex;
[Header("Êó±êʼþ¿ØÖÆ")] [Header("Êó±êʼþ¿ØÖÆ")]
public CardDrag cardDrag; public CardDrag cardDrag;
@ -20,8 +22,6 @@ public class CardOnMouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExi
public float moveOffset =100; public float moveOffset =100;
// private Transform originParent;
public int thisIndexInIndex;
public Vector3 originPoint; public Vector3 originPoint;
public Vector3 UpperOffset; public Vector3 UpperOffset;
@ -67,11 +67,9 @@ public class CardOnMouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExi
IEnumerator ZoomBig() IEnumerator ZoomBig()
{ {
thisIndexInIndex = transform.GetSiblingIndex();
transform.position += UpperOffset; transform.position += UpperOffset;
OffsetOtherCard(thisIndexInIndex); OffsetOtherCard(oringinIndex);
transform.SetAsLastSibling(); transform.SetAsLastSibling();
while (Vector3.Distance(transform.localScale, targetScale) > 0.1) while (Vector3.Distance(transform.localScale, targetScale) > 0.1)
@ -85,11 +83,11 @@ public class CardOnMouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExi
IEnumerator ZoomSmall() IEnumerator ZoomSmall()
{ {
transform.SetSiblingIndex(thisIndexInIndex); transform.SetSiblingIndex(oringinIndex);
transform.position = originPoint ; transform.position = originPoint ;
ComebackOtherCard(thisIndexInIndex); ComebackOtherCard(oringinIndex);
while (Vector3.Distance(transform.localScale, originScale) > 0.1) while (Vector3.Distance(transform.localScale, originScale) > 0.1)
{ {

8
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 25d15c8d258a08846bd310f872589d21
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

59
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall/CardSmall.cs

@ -0,0 +1,59 @@
using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using UnityEditor;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class CardSmall : MonoBehaviour
{
public GameObject praticleSystem;
public Camera mainCaera;
public GameObject destination;//目的地
public Vector3 destinationPos;
public Vector3 startPos;//起始位置
public float time;
[Header("速度")]
public float speed;
public float rotationSpeed;
[Header("图层剔除")]
public LayerMask layerMask;
private void Start()
{
float x = destination.transform.position.x;
float y = destination.transform.position.y;
Vector2 positonUItoScreen = new Vector2(x, y);
Ray ray = mainCaera.ScreenPointToRay(positonUItoScreen);
if (Physics.Raycast(ray, out RaycastHit raycastHit))
{
Debug.Log(raycastHit.collider.gameObject.name + raycastHit.point);
destinationPos = raycastHit.point;
}
startPos = transform.position;
}
private void Update()
{
this.transform.position = Vector3.Lerp(transform.position, destinationPos, time += Time.deltaTime * speed);
Vector3 direction = destinationPos - transform.position;
float angle = Vector3.SignedAngle(transform.forward, direction, transform.up);
transform.eulerAngles = Vector3.Lerp(transform.eulerAngles,new Vector3 (0, angle, 0 ),Time.deltaTime *rotationSpeed );
if (Vector3 .Distance (transform.position, destinationPos)<0.1)
{
Destroy(this.gameObject);
}
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardSmall/CardSmall.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7ba86530fb52a2a4e8706eb2f0e9f094
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

2
ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs

@ -267,6 +267,8 @@ public class TurnMaster : Singleton<TurnMaster>
handCard.cardEntityList.Add(cardEntity); handCard.cardEntityList.Add(cardEntity);
} }
} }
CardActiveSort.Instance.ReflashCardPoint();
} }
} }
/* public void ShuffleWithoutLosingCards() /* public void ShuffleWithoutLosingCards()

2
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs.meta

@ -4,7 +4,7 @@ MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 15 executionOrder: 30
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName: assetBundleName:

2
ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs.meta

@ -4,7 +4,7 @@ MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 5 executionOrder: 15
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName: assetBundleName:

2
ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs.meta

@ -4,7 +4,7 @@ MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 8 executionOrder: 18
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName: assetBundleName:

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

@ -14,20 +14,19 @@ public class CardActiveSort : Singleton <CardActiveSort>
public GameObject preparePoint; public GameObject preparePoint;
[Header ("¿¨ÅÆÎ»ÖÃ")] [Header ("¿¨ÅÆÎ»ÖÃ")]
public List<CardPointData> cardPointDataList= new List<CardPointData>();//ÆæÊý public List<CardPointData> cardOringinPointDataList= 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;
} }
// if(transform.childCount < cardCount) if(transform.childCount < cardCount)
// { {
// cardCount = this.transform.childCount; cardCount = this.transform.childCount;
// } }
} }
public void ReflashCardPoint() public void ReflashCardPoint()
{ {
@ -66,7 +65,6 @@ 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) foreach (var card in cardEntitieList)
{ {
@ -75,13 +73,44 @@ public class CardActiveSort : Singleton <CardActiveSort>
cardOnMouseEnte.originRotation = cardOnMouseEnte.GetComponent <RectTransform >().eulerAngles; cardOnMouseEnte.originRotation = cardOnMouseEnte.GetComponent <RectTransform >().eulerAngles;
cardOnMouseEnte.oringinIndex = cardOnMouseEnte.transform.GetSiblingIndex();
} }
} }
public void ReflashCardPointWithSave()
{
List<RectTransform> cardEntitieList = new List<RectTransform>();
for (int i = 0; i < transform.childCount; i++)
{
cardEntitieList.Add(transform.GetChild(i).GetComponent<RectTransform>());
}
//Í£Ö¹ÒÆ¶¯
foreach (var card in cardEntitieList)
{
CardOnMouseEnter cardOnMouseEnte = card.GetComponent<CardOnMouseEnter>();
cardOnMouseEnte.StopAllCoroutines();
}
Debug.Log("ÅÅÐò-Save");
for (int i = 0; i < cardEntitieList.Count; i++)
{
cardEntitieList[i].transform.position = cardOringinPointDataList[i].originPoint;
cardEntitieList[i].transform.eulerAngles = cardOringinPointDataList[i].originRotation;
}
}
[System .Serializable ] [System .Serializable ]
public class CardPointData public class CardPointData
{ {
public Vector2 pivot; public Vector3 originPoint;
public float rotationZ; public Vector3 originRotation;
}
public CardPointData CreateCardPointData (Vector3 originPoint,Vector3 originRotation)
{
CardPointData currentCardPointData = new CardPointData();
currentCardPointData.originPoint = originPoint;
currentCardPointData.originRotation = originRotation;
return currentCardPointData;
} }
} }

Loading…
Cancel
Save