- 2024-11-18Unity实现鼠标框选功能
usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassDrawRect:MonoBehaviour{publicstaticDrawRectInstance;publicDrawRect(){Instance=this;}
- 2024-10-23unity自定义头像
publicclassCustomHeadImage:Image{[SerializeField]privatefloatshowPercent=1f;[SerializeField]privateintsegments=100;protectedoverridevoidOnPopulateMesh(VertexHelpervh){vh.Clear();floatwid
- 2024-10-15【Unity】mesh绘制简单图形
应用使用mesh绘制一个彩虹色三角形、四边形、多四边形瓦片控制mesh移动,实现游戏的对象的身体关节的动作步骤mesh(网格类)Meshmesh=newMesh();vertices:顶点数组,包括mesh中的所有顶点,如三角形三个顶点//三角形三个顶点Vector3[]vertices=newVector3[3];vertices[0
- 2024-10-08unity 摇杆
/***********************************************EasyTouchControlsCopyright©2016TheHedgehogTeamhttp://www.thehedgehogteam.com/Forum/
[email protected]************************************
- 2024-09-25【Unity】绘制折线图和柱状图
绘制折线图和柱状图,主要包括如下效果:背景网格的绘制;折线和拐点的绘制;长方形柱的绘制(柱宽可以修改);X/Y轴的标签绘制(标签的单位可以修改、X轴的间距可以修改);鼠标移动到折线拐点/长方形柱是显示对应数值Tooltip;成果展示Scene部分脚本部分定义折线图和柱状图的接口//折线
- 2024-09-02Godot向量的angle()返回值情况
问题在Godot中需要进行一些几何运算时,常常忘记Godot里向量转成角度后用的坐标系是什么样的,角度是顺时针增大还是逆时针增大?特此记录我的测试结果,以便今后速查。代码简单打印出角度即可。顺便还能明确这些字面方向在Godot中具体是多少数值extendsNode2Dfunc_ready()
- 2024-08-17Unity 麦扣 x 勇士传说 全解析 之 怪物基类与野猪(附各模块知识的链接,零基础也包学会的牢弟)(案例难度:★★☆☆☆)
通过一阵子的学习,我是这么认为的,因为该教程是难度两星的教程 ,也就是适合学了一阵子基础组件以后的学习者(什么都不会的学习者要是学这套课程会困难重重,如果你什么都不会那么需要学习一星教程)所以该课程没有那么多manger,代码也不那么面向对象,但是从怪物类之后就开始有相关的内
- 2024-08-14unity中, 二维平面上,求从点A出发,沿着方向B,与线段C的交点
代码说明:点A:起始点。方向B:一个方向向量,表示从点A出发的方向。线段C:由两个点C1和C2定义。1usingUnityEngine;23publicclassLineIntersection:MonoBehaviour4{5//返回从点A出发,沿着方向B,与线段C的交点。如果没有交点,则返回null6publicstati
- 2024-07-15【Unity】凸包算法对比及实现
背景在做闵可夫斯基差的可视化的时候,获得了很多个点,想要知道其是否包含原点,需要连接一个包裹这些点的最小凸多边形。因此就单独研究了这个部分,实现了功能并进行分析对比。凸包算法可以在多个散落的点中找到最小能包裹它的外壳,像套上一个橡皮筋一样。这里主要采用Graham算法进行代
- 2024-07-14运算符重载
运算符重载是什么:重新赋予运算符新含义,添加参数或创建,允许在程序中定义或修改运算符的行为类似函数一样。重载位置:在类中写相当于举例:要实现两个向量相加structVector2{ floatx,y; Vector2(floatx,floaty)//初始化结构体变量 :x(x),y(y) { } Vector2Add(cons
- 2024-05-12Unity2D 模拟手柄实现玩家移动
1,创建控制器UI2,挂载脚本3,脚本编写基本要素[Tooltip("玩家游戏体")]publicRigidbody2Dplayer;[Tooltip("玩家速度")]publicfloatspeed=1f;[Tooltip("玩家动画")]publicAnimatoranimator;publicenumMode{BU
- 2024-03-29多边形边界扩大算法 基于MATLAB
首先,通过定义多边形的顶点坐标(在paths、paths1和paths2变量中)和外延大小(extra和extra2变量),确定多边形的形状和外延量。对于每个多边形:使用迭代的方式遍历多边形的每个顶点。对于每个顶点,计算与相邻边的单位向量,并根据指定的外延大小计算扩展向量的长度。使用单位向量和
- 2024-03-15[Kyana]小游戏之Unity推箱子
00|学到的内容01|素材引入02|地图配置03|脚本编写Man.csusingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassMan:MonoBehaviour{Vector2man_direction;//自定义只在本脚本临时生效的名字,需要在编辑器选择具体生
- 2024-02-243-2. 野猪-撞墙判定和等候计时
检测左边和右边是否有地面老师的代码写的是有问题的,见我扩展的代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnity.VisualScripting;usingUnityEngine;publicclassPhysicsCheck:MonoBehaviour{privateCapsuleCollider2Dcoll;[
- 2024-02-22Unity如何从0实现技能CD遮罩
需求描述我们需要实现一个类似英雄联盟中的技能CD遮罩,施放技能后,技能遮罩占满技能图标,随着时间推移,技能遮罩顺时针减少遮挡面积,CD结束时,遮罩应完全消失。需求分析由于每个时刻,都会有一条线从中心点射向上面那条边的中点,我们自然可以想到将遮罩面片分为8个三角形。并且我们只
- 2024-01-142d物理引擎学习 - 解决接触面穿透问题
就是一个物体掉落到另一个物体表面时,相互穿透,部分区域发生了重叠: 原因现实世界,时间是连续的;但在计算机中,时间是离散的,帧与帧之间的时间间隔,没法保证两物体发生碰撞时,正好是表面刚接触。比如:物体1和物体2相距6米,大小均为1x1,物体1向右以10米/s速度移动,物体2静止,0.5s后物体
- 2024-01-132d物理引擎学习 - 斜坡上下滑的物体
效果 代码只是在之前的基础上增加了重力和摩擦力,重力的实现就是给物体加一个持续的力(即:Fg=m*g),摩擦力就是切线方向加一个修正冲量。 代码和之前的主要区别1) 刚体MyRigidbody增加一个Friction,摩擦系数属性2)MyRigidbody.PostSeperation中增加切线方向的冲量privat
- 2024-01-132d物理引擎学习 - 基于约束的公式解决接触稳定性问题
先看下直接用弹性碰撞的公式,会出现的问题:Box落在地面上后,没有停在地面上,而是还在不断的下沉。弹性碰撞公式处理碰撞后弹开没有大问题,但是处理物体碰撞后的接触存在不稳定问题。 如何解决?目前物理引擎最主流的解决方法是:基于约束来组织物理公式,而不是直接套用物理公式。什
- 2023-12-25Unity引擎2D游戏开发,撞墙判定和等候计时
撞墙判定将野猪绑定PhysicsCheck脚本,并将GroundLayer选中Ground,调整ButtonOffset到脚边,CheckRadius为0.1,即可判定悬崖physicsCheck脚本中添加一些变量,用于墙壁判定逻辑publicbooltouchLeftWall;publicbooltouchRightWall;publicVector2leftOffset;publicVecto
- 2023-12-21线段上离p最近的点 - 投影方式
点到线段的最近距离判断依据1)投影结果<0,则线段端点a离p最近2)投影结果>线段ab的长度,则线段端点b离p最近3)否则p在线段上的垂点为最近点 p与ab不共线时1)p在线段两侧2-a)p在线段内侧2-b)p在线段内侧2 p与ab共线时1) p在线段两侧 2-a)p在线段内侧2-b
- 2023-12-15Unity引擎2D游戏开发,实现人物下蹲逻辑和动画
将下蹲动画创建进人物中在Animation窗口中的左侧,新建BlueCrouchStart动画时间轴,然后将下蹲动画拖入时间轴中62,63,64都是下蹲中的动画,但是64号是下蹲动作完毕后的静止动画,因为不拖入时间轴中,单独为其建立一个时间轴为64号下蹲动画完毕的静止动画单独创建一个时间轴,并命名为BlueC
- 2023-11-23交点 - 求两线段交点2
效果 会用到的知识相交-两线段是否相交-yanghui01-博客园(cnblogs.com)线性代数-已知点求直线方程-yanghui01-博客园(cnblogs.com)交点-两直线交点-yanghui01-博客园(cnblogs.com) //两线段是否相交publicstaticboolIsTwoSegmentIntersect2(V
- 2023-11-22重心法判断点是否在三角形内
1)点在三角形的边上时AP=AE+AF(向量加法)设AE=v*AB,AF=u*AC; 则AP=v*AB+u*AC(二元一次方程,u,v为我们引入的变量)根据向量三点共线定理可知:u+v=1 2) 点在三角形内时AE不变, 让AF变短一些, 当用u*AC表示AF时,u的值肯定也比1)中小了,所以此时u+v<1 所以点是否在三
- 2023-11-08原点到线段的垂足
原理:1) 求出向量ao在ab上的投影距离2)a沿着ab方向移动投影距离就是垂足点的位置 //获得原点到直线ab的垂点publicstaticVector2GetPerpendicularToOrigin(Vector2a,Vector2b){varab=b-a;varao=Vector2.zero-a;floatproj=Vector2.D
- 2023-11-08Unity 格子工具
usingUnityEditor;usingUnityEngine;publicclassCustomGridWindow3:EditorWindow{privateTexture2DcustomBackgroundTexture;privateVector2gridSize=newVector2(10,10);privateColor[]cellColors;privateboolisSelecting=fal