IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> unity实战:教你做黄豆君 -> 正文阅读

[游戏开发]unity实战:教你做黄豆君


前言

提示

最近看工作室发行了一款新游戏,初步调查发现:

游戏还是有趣的好,有时感觉3D大作
还不如一个不到100MB游戏带来快乐的多
在这里插入图片描述

今天就教大家一款休闲游戏


一、Unity2D入门

1.入门准备

在这里插入图片描述

游戏是一个2D平台,可以控制主角移动、跳跃、爬墙,你会控制黄豆君绕过障碍物。攀爬墙壁,通过重重阻碍最后得到一碗拉面来获得胜利。

1.1导入开发所需要的资源

Unity丰富的功能和组件可以让帮助你制造引人注目的2D游戏。除了标准组件,如精灵,动画和物理碰撞系统,你还可以得到专门的物理,关节和区域效应组件。当你创建超级黄豆君时,你将探索最常用和最有用的2D组件以及物理碰撞系统。
现在开始你的2D之旅!首先打开 Unity并新建工程。导入你需要工作的所有资源和精灵。加载游戏场景中的场景。
在这里插入图片描述

1.2 创建地形

在这里插入图片描述

你可能想知道精灵子文件夹中的白色精灵是怎么回事。答案很简单:你可以很容易地在游戏中动态地渲染它们,或者在编辑器中用自己的颜色选择,而不必为每个颜色创建几个精灵。

1.3改变地形颜色

在层次结构中,选择地形精灵游戏对象,并在Inspector中单击颜色以生成颜色选择器。
在这里插入图片描述
输入十六进制值:59443CFF ,然后关闭颜色选择器。
在这里插入图片描述

2.游戏中的2D Camera

2.1了解Camera的基本属性

在这里插入图片描述

2.2创建相机跟随脚本

在这里插入图片描述

2.3把主角装载到照相机跟随脚本上

在这里插入图片描述

3.物理碰撞系统

3.1设置地形碰撞检测组件

加粗样式

3.2为主角添加碰撞检测

在这里插入图片描述

4.2D 动画组件

4.1打开Animation窗口,创建新动画

在这里插入图片描述

4.2添加动画内容

在这里插入图片描述

4.3设置默认动画

在这里插入图片描述

5.游戏脚本

5.1添加控制主角脚本代码

在这里插入图片描述

在项目浏览器中,右键单击脚本文件夹并创建一个新的C#脚本。把它命名为SoyBoyController。双击它以打开编辑器中的脚本。

在脚本的顶部,在公共类SoyBoyController定义之上,添加以下内容:

[RequireComponent(typeof(SpriteRenderer), 
typeof(Rigidbody2D), typeof(Animator))]

这一行验证了附加到该脚本的任何游戏对象都有工作所需的最必要的组件——它基本上预先限定了组件。您的SoyBoy GameObject符合要求。
这是一个方便的脚本编写技巧,确保脚本只适用于符合要求的游戏对象。
现在需要拥有有用值的属性字段和缓存组件引用,以供以后使用。
在SoyBoyController定义中添加以下变量,但在Start()之上:

public float speed = 14f;
public float accel = 6f;
private Vector2 input;
private SpriteRenderer sr;
private Rigidbody2D rb;
private Animator animator;

现在,您将创建一个新的方法叫作Awake()。这个方法在Start()方法之前执行。在Awake()中写入以下代码:

void Awake() {
sr = GetComponent<SpriteRenderer>();
animator = GetComponent<Animator>();
rb = GetComponent<Rigidbody2D>();
}

简而言之,这确保了当游戏开始时组件引用被缓存。
更具体地说,它在GameObject上定位指定的组件类型,SoyBoyController.cs将它们分配给三个字段。这样,您就可以获得使用RequireComponent() 类属性。
为了使它成为一个完整的循环,考虑一下:如果你不执行所需的组件类型,并且游戏对象没有一个或多个组件,那么Awake()会在试图找到组件时失败。
现在要确保黄豆君知道它应该面对哪个方向。您将使用Unity的输入类来获取用户输入,这样您就可以改变黄豆君的方向。
将以下代码添加到Update():

void Update() {
// 1
input.x = Input.GetAxis("Horizontal");
input.y = Input.GetAxis("Jump");
// 2
if (input.x > 0f) {
sr.flipX = false;
}
else if (input.x < 0f) {
sr.flipX = true;
}
}

将新创建的SoyBoyController脚本添加到场景中的SoyBoy对象中,然后点击Inspector中的“Apply”按钮来更新SoyBoy预制件。
运行游戏并按左或右(或A和D)在键盘上看到黄豆君开关的方向。
在这里插入图片描述

void FixedUpdate() {
// 1
var acceleration = accel;
var xVelocity = 0f;
// 2
if (input.x == 0) {
xVelocity = 0f;
}
else {
xVelocity = rb.velocity.x;
}
// 3
rb.AddForce(new Vector2(((input.x * speed) - rb.velocity.x)
acceleration, 0));
4
rb.velocity = new Vector2(xVelocity, rb.velocity.y);
}

5.2调整重力设置

在这里插入图片描述

二、深入了解Unity2D

1.配置物理碰撞层

打开Physics 2D Settings
配置Layer Collision Matrix
在这里插入图片描述

2.黄豆君控制器的实现

2.1编写代码让脚本可以控制主角移动,跳跃

在这里插入图片描述

2.2编写代码让主角可以在两堵墙之间跳跃

在这里插入图片描述

3.制作角色动画

设置动画转换参数
在这里插入图片描述

设置默认动画
在这里插入图片描述
设置动画转换的条件
在这里插入图片描述

完成动画之间的关系
在这里插入图片描述

4.创建游戏关卡道具

为游戏添加障碍物
在这里插入图片描述
为障碍物添加脚本

为障碍物添加粒子特效
在这里插入图片描述
把声音添加到游戏


总结

这是一部分,下续要等一段时间了,最近有点小忙啊 !

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 11:04:24  更:2021-09-08 11:05:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/21 20:24:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码