Kirisame1969の魔法屋
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

我要成为Unity糕手——VER.001

写作时间:2026-06-06 20:24:14
# 我要成为unity糕手
# 按键检测
# 刚体
# 碰撞体
# 移动控制
# 基础内容

写在最前

这一系列的杂谈是为了记录并鞭策我的unity学习的,所以一些地方写的既像教程,又像自言自语。如果在未来的某一天可以帮到某个人的话,那么我可能会觉得很开心吧。

‍

由于我习惯先在笔记软件里写好再发,所以可能会出现一些时序问题,不过我想应该不用在意吧。

‍

命名准则

一切变量的命名法均遵循以下原则:
第一个字母小写,后面随意,建议后续的单词词头大写
如:healthText
你知道吗,写成HealthText会报错。很神奇对吧?

‍

也许在之后这一条仍然会继续更新,没准我会遇到更奇葩的情况呢?

‍

按键检测

当我们需要移动一个物体时,常用的方法是建立一些变量,并使用特定的方法改变这些变量的数值,再将这些数据输入刚体对象中。

例如以下代码:

void FixedUpdate()

    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");
        ...
    }

可以看到这里有两个浮点变量horizontal和vertical。

当我们调用Input.GetAxis()时,我们实际上是在查询unity引擎的输入管理器( Input Manager,在 编辑-项目设置 中可以找到 ),其中有一些条目,例如传入该方法的字符串"Horizontal",它负责监听玩家的左右方向或AD键。这些映射可以被更改。

当按下左键(-1)或右键(+1)时,它会把这个值存储到变量中。

‍

刚体与碰撞体

Collider 碰撞体

碰撞体有许多种形状可供选择。为游戏物体添加这类组件后,游戏物体会拥有体积。选择编辑碰撞体后的按钮来选中碰撞体的边缘,来手动修改它的范围。

‍

Rigidbody 刚体

刚体组件会赋予物体一些物理特性,比如重力,质量等等。我们可以直接把重力大小设为0来消除重力影响。
我们可以在Constraints下选择”冻结旋转 Z“来让物体不会因为移动而旋转。
要想在代码中使用它相关的内容,我们可以在脚本中创建以下内容:

    //创建一个公共的Rigidbody2D引用,命名为rb
    public Rigidbody2D rb;

在unity编辑器中,当游戏物体搭载包含以上内容的脚本后,脚本对应的面板中会出现一个槽位,允许将对应的需要通信的刚体组件拖入,以建立联系。

‍

基础的移动控制

当游戏物体具有刚体组件时,它将具有一定的物理性质。其中容易被观察到的性质之一就是速度。
我们可以通过设置刚体的速度为一个新的二维向量来实现。
二维向量可以用来描述我们想要的移动的方向。

//创建一个公共的Rigidbody2D引用,命名为rb
public Rigidbody2D rb;
...
{
    // velocity为速度,x、y为外部传入的X轴分量与Y轴分量。
    rb.velocity = new Vector2(x,y);
}

如果在这个二维向量后乘以给定的速度值,就可以方便地控制刚体的速度。
一般而言,x与y是与检测玩家按键相关的float变量,如 按键检测 一节中出现的horizontal和vertical变量,它们在这里分别可以担任x与y。

‍

avatar

Kirisame1969

软件工程在读小登,正在学习C#与神秘Unity魔法

RECOMMENDED

我要成为Unity糕手——VER.002

2026-06-16 14:33:58

Table of Contents