首页 > 其他分享 >19. 卡牌拖拽

19. 卡牌拖拽

时间:2024-03-05 15:44:59浏览次数:21  
标签:19 void 卡牌 currentCard 拖拽 private public

给 Card 添加 CardDragHandler

代码如下

using UnityEngine;
using UnityEngine.EventSystems;

public class CardDragHandler : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    private Card currentCard;
    private bool canMove;
    private bool canExecute;

    private void Awake() 
    {   
        currentCard = GetComponent<Card>();
    }

    public void OnBeginDrag(PointerEventData eventData)
    {
        switch (currentCard.cardData.cardType)
        {
            case CardType.Attack:
                break;
            case CardType.Defense:
            case CardType.Abilities:
                canMove = true;
                break;
        }
    }

    public void OnDrag(PointerEventData eventData)
    {
        if (canMove)
        {
            currentCard.isAnimating = true;
            Vector3 screenPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10.0f);
            Vector3 worldPos = Camera.main.ScreenToWorldPoint(screenPos);

            currentCard.transform.position = worldPos;
            canExecute = worldPos.y > 1f;
        }
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        if (canExecute)
        {

        }
        else
        {
            currentCard.ResetCardTransform();
            currentCard.isAnimating = false;
        }
    }
}

目前实现的效果是,当正在拖拽的卡牌是Defense或者Abilities时,就允许它进行拖拽

拖拽的时候,会将鼠标当前的位置转换为世界坐标的位置,然后让卡牌来到这个位置

当停止拖拽的时候,会让卡牌来到最初的位置

如果卡牌拖动到 y 轴为 1 及以上位置的时候,就执行这张牌

项目相关代码

代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git

标签:20240305_1449

标签:19,void,卡牌,currentCard,拖拽,private,public
From: https://www.cnblogs.com/hellozjf/p/18054197

相关文章

  • (19)Lazarus学习之TreeFilterEdit1过滤TreeView1数据
    与(18)Lazarus学习ListViewFilterEdit1过滤ListView1数据 类似1]界面上添加一个TreeView1,双击添加好树结点 2]拖一个TreeFilterEdit1到界面上,设置它的FilteredTreeview 可以设置是不是大小写敏感   最好设置它的Text为空,这样一开始就可以看到所有树结点 pro......
  • leetcode--1976. 到达目的地的方案数(最短路)
    记录12:052024-3-5https://leetcode.cn/problems/number-of-ways-to-arrive-at-destination/通过最短路找到从源点到目标点距离,在更新的过程中,对某个点记录下可以达到最短距离的父亲节点,然后从目标点往回dp就可以了(有种逆向拓扑排序的感觉)当然这是不必要的,在更新最短距离的......
  • 17. 实现卡牌扇形布局
    通过角度和半径算出卡牌位置相关代码最终效果项目相关代码代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git标签:20240305_1323......
  • 15. 创建卡牌布局
    在项目中添加CardLayoutManager代码如下usingSystem.Collections.Generic;usingUnityEngine;publicclassCardLayoutManager:MonoBehaviour{publicboolisHorizontal;//摄像机的大小是6,分辨率是1920x1080,也就是说摄像机可以看到(-10.7,-6)~(10.7,6)的物体......
  • Windows RDP远程漏洞|CVE-2019-0708
    WindowsRDP远程漏洞|CVE-2019-0708目录WindowsRDP远程漏洞|CVE-2019-07081描述:2影响范围:3漏洞检测3.10708detector3.1.1程序说明3.1.2下载地址3.1.3使用方法3.2cve_2019_0708_bluekeep.rb4缓解措施5修复建议:1描述:北京时间2019年5月14日当未经身份验证的攻击者使......
  • 19 SWERC 2022-2023 - Online Mirror (Unrated, ICPC Rules, Teams Preferred)L. Cont
    L.Controllers思路:#include<bits/stdc++.h>#defineintlonglong#definerep(i,a,b)for(inti=(a);i<=(b);++i)#definefep(i,a,b)for(inti=(a);i>=(b);--i)#define_for(i,a,b)for(inti=(a);i<(b);++i)#definepiipair&......
  • 洛谷题单指南-搜索-P1219 [USACO1.5] 八皇后 Checker Challenge
    原题链接:https://www.luogu.com.cn/problem/P1219题意解读:八皇后,经典回溯问题。解题思路:逐行摆放棋子,关键在于如何快速判断行、列、正斜(左上到右下)、反斜(右上到左下)方向没有已放其他棋子1、由于逐行摆放,因此行不需要判断通过一个boolcol[N]数组即可判断列上是否已摆放其他棋......
  • AP5193 降压恒流IC PWM 线性调光 5-100V 2.5A LED汽车灯驱动芯片
    产品  AP5193是一款PWM工作模式,效率、简单、内置功率MOS管,适用于4.5-100V输入的高精度降压LED恒流驱动芯片。电流2.5A。AP5193可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5193工作频率可以通过RT外部电阻编程来设定,同时内置抖频电路,可以降低对其他设备的EM......
  • 12. 创建卡牌数据类
    创建数据类上一节,我们添加了卡牌的形状,这一节,我们来添加卡牌的数据,使用ScriptableObject来添加卡牌的数据如上图所示,我们在Scripts/Card/ScriptableObject下面创建了CardDataSO文件,它里面有卡牌名字、卡牌图片、卡牌费用、卡牌类型、描述等信息然后再添加一个Card类,......
  • QNX-19—QNX Proc文件
    一、/proc/pid#ls/proc/12310ascmdlinectlexefilemappingspmapvmstat1.as包含进程整个内存空间的地址空间。2.cmdline传递给进程的参数,以空字符分隔。例如:#pidin-p1130602arg//查看参数pidArguments1130602m.samsung.home......