首页 > 其他分享 >20. 攻击牌的拖拽指针

20. 攻击牌的拖拽指针

时间:2024-03-05 15:45:24浏览次数:30  
标签:Vector3 20 normalizedDirection float pointsCount 指针 拖拽 cardPosition

制作攻击指针

首先创建一个 ArrowLine 的对象,然后给它添加 LineRenderer,将线宽改为 1.5,Materials 改为 RedArrow

RedArrow 就长这个样子

鼠标点击攻击牌的时候出现指针

二次贝塞尔曲线理论和实现方式

相关代码

public void SetArrowPosition()
    {
        Vector3 cardPosition = transform.position; // 卡牌位置
        Vector3 direction = mousePos - cardPosition; // 从卡牌指向鼠标的方向
        Vector3 normalizedDirection = direction.normalized; // 归一化方向

        // 计算垂直于卡牌到鼠标方向的向量
        Vector3 perpendicular = new(-normalizedDirection.y, normalizedDirection.x, normalizedDirection.z);

        // 设置控制点的偏移量
        Vector3 offset = perpendicular * arcModifier; // 你可以调整这个值来改变曲线的形状

        Vector3 controlPoint = (cardPosition + mousePos) / 2 + offset; // 控制点


        lineRenderer.positionCount = pointsCount; // 设置 LineRenderer 的点的数量

        for (int i = 0; i < pointsCount; i++)
        {
            float t = i / (float)(pointsCount - 1);
            Vector3 point = CalculateQuadraticBezierPoint(t, cardPosition, controlPoint, mousePos);
            lineRenderer.SetPosition(i, point);
        }
    }

    //计算二次贝塞尔曲线点
    Vector3 CalculateQuadraticBezierPoint(float t, Vector3 p0, Vector3 p1, Vector3 p2)
    {
        float u = 1 - t;
        float tt = t * t;
        float uu = u * u;

        Vector3 p = uu * p0; // 第一项
        p += 2 * u * t * p1; // 第二项
        p += tt * p2; // 第三项

        return p;
    }

项目相关代码

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

标签:20240305_1517

标签:Vector3,20,normalizedDirection,float,pointsCount,指针,拖拽,cardPosition
From: https://www.cnblogs.com/hellozjf/p/18054199

相关文章

  • 19. 卡牌拖拽
    给Card添加CardDragHandler代码如下usingUnityEngine;usingUnityEngine.EventSystems;publicclassCardDragHandler:MonoBehaviour,IBeginDragHandler,IDragHandler,IEndDragHandler{privateCardcurrentCard;privateboolcanMove;privatebool......
  • 文心一言 VS 讯飞星火 VS chatgpt (208)-- 算法导论15.4 5题
    五、设计一个O($n^2$)时间的算法,求一个n个数的序列的最长单调递增子序列。要写代码的时候,请用go语言。文心一言,抛panic:在Go语言中设计一个O(n^2)时间复杂度的算法来求一个n个数的序列的最长单调递增子序列(LongestIncreasingSubsequence,LIS)可以使用动态规划的方法......
  • 2024.3.5 esp8266开发学习_arduino常用函数
    2024.3.5esp8266开发学习_arduino常用函数pinMode函数引脚模式选择,模式有INPUT(输入),OUTPUT(输出),INPUT_PULLUP(上拉输入,自动拉高电平)//GPIOFUNCTIONS#defineINPUT      0x00//输入#defineINPUT_PULLUP   0x02//上拉输入#defineINPUT_PULLDOWN_16......
  • 科幻:Windows内核攻击是指针对Windows操作系统内核的恶意攻击行为
    Windows内核攻击是指针对Windows操作系统内核的恶意攻击行为。Windows内核作为操作系统的核心组件,控制着系统资源的管理、进程调度、设备访问等关键功能,因此成为黑客和恶意分子攻击的一个重要目标。以下是一些常见的Windows内核攻击方式:内核漏洞利用:黑客通过利用Windows内核中......
  • 第十一届蓝桥杯试题B:寻找2020
    目录题目题解:暴力题目题解:暴力需要知道文件的操作;发现2020的行列标变化li=[]#创建一个空列表用于存储读取的文本内容withopen(r'2020.txt','r')asfp:#打开名为'2020.txt'的文件,并使用文件句柄fpforlineinfp.readlines():#逐行读取文件内容......
  • 20233.5
    int类型占四个字节,而byte类型占一个字节int占4个字节,即表示int类型的存储大小为4个字节。如果转成十进制来说就是“-2147483648~2147483647”即:int只能存放这么大的数字。。。超出范围则溢出。。。再来说bytebyte最大能够存放-128~127的数值。那为什么是-128~127这个跟字......
  • 联合省选2024游记
    day-???THUWC和NOIWC都结束了,一个2=一个Cu,太失败了。面基了HE的其他几个oier,大家都好厉害。回家摆烂,跟上了NFLS的模拟赛,天天被吊打/jk在省选前三周下载米哈游最新力作崩坏星穹铁道然后愤怒开玩,两周过完了主线返校了。day-2教练问高一选手有没有想去体验一下省选的,竟然还可......
  • 2024GDOI邮寄
    省流:菜渣了Day0上午腐败中午在车上腐败下午试机,打了lct+sam,感觉状态不错(flag)晚上腐败Day1看题,然后发现T1就是愁长的柿子,T2不太会,T3题意似乎很像模拟赛原题然后划了一下,T1还是不太会,但性质感觉全会了,T3跟模拟赛原题无任何关系然后继续想无果,赶紧写性质和暴力,写的很慢写完......
  • NTPD monlist Command Enabled|CVE-2013-5211
    NTPDmonlistCommandEnabled|CVE-2013-5211目录NTPDmonlistCommandEnabled|CVE-2013-52111描述2影响范围3漏洞检测3.1Nmap检测4缓解措施5防御措施1描述NTP是用来使计算机时间同步化的一种协议。CVE-2013-5211最早公布是2014年1月10日攻击者HACK发送了一个......
  • 题解 P10220【[省选联考 2024] 迷宫守卫】
    \(\text{Link}\)葬送了我2024省选的一题。题意有一颗深度为\(n+1\)的完全二叉树,其叶子上依次标有一个长为\(2^n\)排列\(a\),非叶结点有选择代价\(b_i\)。Alice、Bob两人进行游戏。Alice可以选择一些选择代价和不超过\(m\)的非叶结点,此后Bob会从根开始深度优先搜索......