第一个Unity项目——Flappy Bird

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

Unity是什么:
它就是一个2D/3D编辑器,同时又是一个游戏引擎
游戏引擎:使用者只需要调用这些功能,而不需要重写实现这些功能

第一步:资源导入与资源处理

资源导入的方法:

  1. 在这里插入图片描述

  2. 直接将资源拖入Project面板

资源处理
2D游戏总的来说是依靠Sprites(图片精灵)

在这里插入图片描述
Sprite的类型
Default——默认纹理类型
Normal map——法线贴图资源
Editor GUI and Legacy ——用户界面的特图资源
Sprite——图片精灵
Cursor——鼠标光标
Cookie——光斑
Lightmap——光照贴图
Directional Lightmap——方向光贴图
Single Channel——单通道纹理

主角图片的创建
在这里插入图片描述
首先要将Single(单张图片) 变为Multiple(多张图片)
然后点击Sprite Editor 进行图片编辑
在这里插入图片描述
对图片进行分割
Automatic 自动
Grid By Cell Size 按照每一格像素切割
Gird By Cell Count 按照图片的数量切割

在这里插入图片描述
透明模式与颜色模式

场景创建

在这里插入图片描述
场景的层级关系
不同的图片处于不同的层级
Sorting Layer 层级的设置
Order in Layer 层级的优先级
1、
同一层级的图片,优先级越大,图片越处在前面

2、
在这里插入图片描述
添加新的图层,越在下的图层就越在前。

项目开始:快捷Ctrl+P

主角组件创建

在这里插入图片描述
增加组件

在这里插入图片描述
2D物理组件
2d
2D刚体

在这里插入图片描述
圆形碰撞器

场景组件创建

在这里插入图片描述
添加Colider(碰撞器)

在这里插入图片描述
编辑编辑器

第二步:添加代码脚本

设置代码编辑器:
在这里插入图片描述

在这里插入图片描述
常见的MonoBehaviour类的消息
在这里插入图片描述
快捷使用unity的各类方法(消息)
在这里插入图片描述
在这里插入图片描述

  1. 点击屏幕时,使Bird能够飞翔
  if (Input.GetMouseButtonUp(0))//Input为unity的一个类,调用这个类中的GetMouseButtonUp()的方法 ,检查鼠标是否按下。(0位左键,1为右键)
            {
   
   
                rb2d.velocity = Vector2.zero;//将速度设置为0,每一帧的速度都为0

                rb2d.AddForce(new Vector2(0, 360));//添加一个向上的力
            }

2.小鸟碰撞与死亡

   bool isDead=false;
    private void OnCollisionEnter2D(Collision2D collision)//碰撞检测
    {
   
   
        isDead = true;

    }

碰撞有三种状态
1、OnCollisionStay2D 碰撞进行
2、OnCollisionEnter2D 碰撞开始
3、OnCollisionExit2D 碰撞退出

思考题
1、Unity引擎是如何知道我们的脚本中没有写特定名字的方法的?又是如何调用的?
通过反射,查找特定的名字
通过反射直接调用该方法
2、能否将碰撞处理放在Ground对象上?

   private void OnCollisionEnter2D(Collision2D collision)
    {
   
   
        //collision.gameObject.GetComponent<SpriteRenderer>().enabled = false;//获得碰撞体的SpriteRenderer组件,并启用状态设为关闭

        collision.gameObject.GetComponent<Bird>().isDead = true;//将碰撞体的Bird组件的isDead设为ture
    }

3、一个对象A的子对象B发生1碰撞,A会不会收到碰撞信息

1、如果父节点和子节点都有Rigidbody,就相当于两个独立的物体,各自碰各自的。
2、如果父节点有Rigidbody,子节点没有,子节点相当于父节点的一部分,就看在谁的身上有响应的接口,在父节点有响应接口,父节点响应,子节点有接口,子节点响应,两者都有接口,父节点不会影响到子节点,但子节点响应会让父节点也响应。
3、如果父节点没有Rigidbody,子节点有,子节点会响应,父节点没有响应。

GameObject 和gameobject的区别

GameObject是Unity场景中所有实体的基类,是一个类型
gameobject是一个对象,就和this一样,指这个脚本所附着的游戏物体

第三步 动画创建

unity中的动画系统

1、选中游戏对象
在这里插入图片描述
2、创建动画并命名
在这里插入图片描述

在这里插入图片描述
动画控制器
在这里插入图片描述
游戏对象上Animator都会有一个动画控制器

在这里插入图片描述
动画片段

3、动画制作
打开动画片段后,选中游戏对象

进入动画编辑界面

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值