尝试splines制作卡牌游戏

安装Splines

Unity 的 Splines 工具 是一套用于创建、编辑和使用平滑曲线的内置系统,主要用于路径动画、物体运动轨迹、程序化生成等场景

​ image-20260519123849320

​ image-20260519124144305

​ image-20260519125122873

选取三个点,并设成对称位置,像使用PS的钢笔工具一样拉成一条曲线

然后使用移动工具,点击中间的那个点并点击splines工具,选择Bezier(贝塞尔曲线)里的Mirrored

1. Bezier 切线模式(Tangent Modes)

当 Knot 的 Tangent Mode 设为 Bezier 后,可以进一步选择三种 Bezier 子模式

模式行为适用场景
MirroredIn/Out 切线方向相反、长度相等。移动一侧切线,另一侧同步镜像变化。Knot 自身始终朝向 Out 切线方向。需要平滑对称曲线(如道路、管道)
ContinuousIn/Out 切线方向相反、长度独立。方向保持 180° 对齐,但可以分别调整两侧长度。需要一侧曲率强、一侧曲率弱的过渡
BrokenIn/Out 切线完全独立,方向和长度均可自由调整,互不影响。需要尖锐转角或不对称形状

关键细节

  • Knot 朝向:在 Mirrored 和 Continuous 模式下,Knot 的旋转始终指向其 Out 切线方向。如果你旋转 Knot,切线会跟着旋转;如果你移动切线,Knot 会自动调整朝向以指向 Out 切线

    。

  • 设置时的对齐基准:通过 API SetTangentMode(int index, TangentMode mode, BezierTangent main = BezierTangent.Out) 设置时,第三个参数 main 决定以哪一侧切线为基准进行对齐。默认以 Out 为准,也可以指定为 In

    。

2. In / Out 切线

每个 Knot 有两条切线

  • In Tangent:定义进入该 Knot 的线段的曲率
  • Out Tangent:定义离开该 Knot 的线段的曲率

在 Element Inspector 中可以直接调整:

  • Magnitude(长度):影响切线对曲线的影响力,值越大曲线越"被拉扯"
  • Direction(方向):切线从 Knot 指出的方向

3. Reverse Spline Flow(反转曲线流向)

这个功能会整体反转 Spline 的方向,产生以下效果

变化项说明
Knot 索引反转第一个 Knot 变成最后一个,最后一个变成第一个
In/Out 切线互换对于 Bezier 模式的 Knot,原来的 In 切线变成 Out 切线,反之亦然
视觉箭头反向Scene 视图上的流向箭头全部反向

沿X轴拖动这个黄色的圈改变曲线形状直到形成一个好看的弧度,然后搭载相关脚本

​ image-20260519130358327

然后将其移动到界面的底部充当手牌区域,启动游戏,按下空格键生成卡牌

​ image-20260519141053911

然后实现自定义ScriptableObject 对象

[CreateAssetMenu(menuName = "Data/CardData")]

​ image-20260519150536724