昨天审核通过了可以参加了但是我没什么头绪,这里在BattleScene场景搭建纸牌游戏吧

安装Splines

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

image-20260519123849320

image-20260519124144305

image-20260519125122873

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

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

相关知识

1. Bezier 切线模式(Tangent Modes)

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

模式 行为 适用场景
Mirrored In/Out 切线方向相反、长度相等。移动一侧切线,另一侧同步镜像变化。Knot 自身始终朝向 Out 切线方向。 需要平滑对称曲线(如道路、管道)
Continuous In/Out 切线方向相反、长度独立。方向保持 180° 对齐,但可以分别调整两侧长度。 需要一侧曲率强、一侧曲率弱的过渡
Broken In/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

关于2d转3d场景

众所周知Unity是没有像godot和cocos那种的纯2d场景的,本质上就是换一个摄像机projection投影模式

相关知识

在 Unity 中,Projection(投影) 指的是将 3D 场景中的物体映射到 2D 屏幕上的方式,主要涉及相机(Camera)如何将三维空间转换为二维图像。

两种核心投影模式

1. Perspective(透视投影)

模拟人眼真实视觉效果,具有近大远小的特性。

  • 特点:物体离相机越远,看起来越小;平行线会在远处汇聚
  • 适用场景:绝大多数 3D 游戏、写实风格场景、第一/第三人称视角
  • 关键参数:Field of View(FOV,视野角度)

2. Orthographic(正交投影)

无透视变形,物体大小不随距离改变

  • 特点:平行线始终保持平行;没有深度透视感
  • 适用场景:2D 游戏(如平台跳跃、俯视角 RPG)、UI 渲染、建筑图纸、等距视角游戏(Isometric)
  • 关键参数:Size(视口大小)

很明显我们需要改成透视模式

image-20260521232750534

此时就可以看到我们的立方体了

image-20260521233044620

天空盒的切换

image-20260522131948553

image-20260522132014186

当然也可以这样

image-20260522132537566