game-bird

太棒了!选择 Unity 是个很好的决定。为了让你最快上手,我们不讲复杂的理论,直接动手做一个**"类似 Flappy Bird 的点击跳跃游戏"**。

这个核心玩法只需要 1 个脚本3 个步骤

准备工作

  1. 打开 Unity Hub ,点击 New Project

  2. 选择 2D Core (2D 核心),项目命名为 MyFirstGame,点击创建。


第一步:创建主角(那只鸟)

我们需要一个东西来代表玩家。

  1. 创建物体: 在左侧的 Hierarchy (层级) 窗口空白处 -> 右键 -> 2D Object -> Sprites -> Circle

  2. 重命名: 把它改名为 Player

  3. 修改颜色: 在右侧 Inspector (属性) 窗口中,点击 Sprite Renderer 下的 Color,把它改成你喜欢的颜色(比如黄色)。

  4. 添加物理属性:

    • 选中 Player

    • 在 Inspector 最下方点击 Add Component

    • 搜索并选择 Rigidbody 2D (刚体)。

    • 解释:加上这个组件,你的圆圈就有了"重量",运行游戏它就会掉下去。

第二步:让它动起来(编写代码)

现在我们要写一点点代码,让它按空格键时跳起来。

  1. 创建脚本: 在下方的 Project 窗口 -> 右键 -> Create -> C# Script

  2. 命名: 一定要命名为 PlayerController (注意大小写,不要有空格),然后双击打开。

  3. 复制粘贴: 把里面的代码全部删掉,粘贴下面的代码:

C#

复制代码
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float jumpForce = 5f; // 跳跃力度,可以在Unity里调整
    private Rigidbody2D rb;

    void Start()
    {
        // 游戏开始时,获取主角身上的物理组件
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        // 如果按下了鼠标左键 或者 空格键
        if (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space))
        {
            // 给主角一个向上的速度
            rb.velocity = Vector2.up * jumpForce;
        }
    }
}
  1. 挂载脚本: 回到 Unity,把写好的 PlayerController 脚本拖拽 到 Hierarchy 里的 Player 物体上。

  2. 测试: 点击屏幕顶部的 ▶ (播放) 按钮。

    • 结果:圆圈会下落,当你按空格时,它应该会跳起来!

第三步:添加地板(处理碰撞)

现在主角会一直掉出屏幕,我们需要一个地板。

  1. 创建地板: 在 Hierarchy -> 右键 -> 2D Object -> Sprites -> Square

  2. 调整形状:

    • 命名为 Ground

    • 在 Inspector 里找到 Transform ,把 Scale X 改成 20Scale Y 改成 1

    • 用鼠标把它拖到屏幕下方。

  3. 添加碰撞体:

    • 选中 Ground -> Add Component -> 搜索 Box Collider 2D

    • 选中 Player -> Add Component -> 搜索 Circle Collider 2D

  4. 测试: 再次运行。现在主角掉下来会停在地板上,而不是穿过去了。


第四步:简单的"游戏失败"(重启)

如果主角掉出屏幕或撞到障碍物,游戏应该重开。

  1. 再次打开 PlayerController 脚本。

  2. 在最上面添加一行:using UnityEngine.SceneManagement;

  3. 在脚本的最后面(但在最后一个 } 之前),添加这段代码:

C#

复制代码
    // 当发生碰撞时自动调用
    void OnCollisionEnter2D(Collision2D collision)
    {
        // 重新加载当前场景(相当于重置游戏)
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

现在的完整逻辑是:

你控制小球跳跃 -> 如果你控制不好撞到了地板 -> 游戏瞬间重置。


你的下一步

恭喜!你刚刚完成了游戏开发的核心循环(输入 -> 反馈 -> 失败判定)。

虽然它很简陋,但所有的大作都是从这里开始的。为了让它更有趣,你可以试着做以下一步(Would you like me to...):

你想学习如何把地板改成"向左移动的柱子"(让游戏变成真正的跑酷),还是想学怎么添加"吃金币加分"的功能?

相关推荐
习惯就好zz8 天前
地图编辑部分教程总结
godot·camera·tilemap·2d·game·tileset
spencer_tseng9 个月前
WeakAuras Lua Script TOC BOSS2 <Lord Jaraxxus>
wow·game·toc
taadis10 个月前
Go语言实现1024终端游戏-不到400行代码
go·1024·game
豆约翰1 年前
JavaSwing游戏开发之Camera原理
java·game
呆呆敲代码的小Y2 年前
2023年Unity面试题大全,共十万字面试题总结【收藏一篇足够面试,持续更新】
游戏·unity·面试·游戏引擎·game·unity面试题
天下布武82 年前
MacOS 中 Agent 图标删除
macos·game
东方佑2 年前
孤独的城市公路(增加开始结束页面)
windows·game
教练、我想打篮球2 年前
13 c++版本的五子棋
c++·game·five
教练、我想打篮球2 年前
12 c++版本的坦克大战
c++·game·tank