【unity】快速了解游戏制作流程-制作九宫格简单游戏demo

2 篇文章 1 订阅
订阅专栏

前言

        hi~大家好呀!欢迎来到我的unity学习笔记系列~,本篇我会简单的记录一下游戏流程并且简单上手一个通过九宫格移动到指定位置的小游戏,话不多说,我们直接开始吧~

        

        本篇源自我看B站一位up主的视频所做的笔记,感兴趣的可以去看原视频哦:从无到有,制作一个游戏小样【超简短的独立游戏开发教学Ep.05】_哔哩哔哩_bilibili

        上一篇unity相关笔记链接在这里哦:

【unity】将unity编辑c#配置为vscode_柒海啦的博客-CSDN博客_unity用vscode

爱你们哟~

 

目录

一、unity开发游戏流程

1.了解

 2.简单制作demo流程规划

二、简单九宫格游戏demo制作

1.创建项目

2.场景搭建

组装九宫格:

 添加移动方形(玩家控制的方块)和目标绿球:

3.编写脚本 

定义变量GameObject:

 编写方法:

串联逻辑:

打包导出:


一、unity开发游戏流程

1.了解

        首先,我们要明确我们是在用游戏开发引擎来进行编写游戏,所以,我们需要的也就是好好的利用此引擎的优势。现在我们使用unity进行开发,开发的话就要熟悉它们的用法,针对其用法和流程,我们通过制作一个简单的游戏demo来大致理解如下过程:

unity开发游戏流程:

        1.导入资源

        2.搭建场景

        3.配置组件

        4.定义变量

        5.编写方法

        6.串联逻辑

 2.简单制作demo流程规划

        根据如上流程,我们简单规划一下我们要制作的九宫格游戏demo,首先导入资源:我们是使用的3d模式,unity自带的有方块、球形等,所以导入资源这一部就使用自带的即可

         然后搭建场景:我们使用一些方块搭建一个九宫格,控制摄像机位置,防止我们玩家操控的一个方格和要到达起点球。颜色可以做区分

        配置组件:组件信息配置好,在之后的脚本控制需要用到这些组件

        定义变量:如果我们想要存储某些数据的话们就可以定义变量来保存对应的对象。当然是在脚本里面进行控制和存储

        编写方法:即在对应对象下的脚本中进行编写,来控制这一对象的行为逻辑,比如我们这个demo就编写player的wasd逻辑以及碰到球就显示输出信息(控制台)的效果。

        串联逻辑:将编写好的方法,类等各种对象的行为属性串联一起,使其组成一个完整的游戏逻辑,游戏得以运行。

        如下就是我们即将制作的一个简单demo:

         是不是很简单?轻松上手,让我们从零开始制作吧~

二、简单九宫格游戏demo制作

1.创建项目

        相信看到这里的同学unity肯定是安装齐全了吧~博主这里使用的是2021稳定版本的,建议2021年以上哦~

        脚本编写使用的是vscode,不知道unity如何配置vscode进行编写的可以看我的上一篇unity学习笔记哦~如果vscode来编写unity没有提示的话可以参看下面这篇博客,希望能对你有所帮助!

解决VSCode无法显示Unity代码提示的真正解决办法_斯幽柏雷科技的博客-CSDN博客_vscode没有unity提示

         耐心等待创建完即可。

         创建成功后初始画面如上,我们可以将页面布置调成2by3进行方便的操作(看个人喜好,下面仅仅展示个人设置)

        也可以通过window->General->Console将控制台调出来,方便我们观察脚本的状态报错信息,打印信息等。

         最终效果如下:

        左上是显示场景,左下game显示玩家看到的场景,左下Console就是控制台,中间Hierarchy显示游戏场景里所有的对象,以及展示其关系 ,Project即展示所有资源的地方,右边的inspector展示对应对象的各种属性,比如各种组件以及脚本等,可以随时修改。详细的下面会一一介绍。

 

2.场景搭建

(导入资源 搭建场景 配置组件)

         在项目创建完成后,我们终于可以进入实践操作啦~ 重在理解过程 而不是制作游戏哦~

组装九宫格:

        首先,我们先把摄像机固定好:(Main Camera对象,创建项目后unity初始两个对象之一)

        按照如下图进行设置:

解释:我们确定平面0,0位坐标原点(unity使用左手坐标系,平面xz轴,竖轴y轴)。

        Transform组件:Position显示坐标属性

                                   Rotation显示旋转属性

                                   Scale显示大小属性

        调整看向平面中心位置0 0 ,离地高度大概3.5。在旋转界面,让其绕着X轴旋转90度(摄像机沿着z轴照向),大小保持不变。

         补充查看场景界面快捷键:

                alt+鼠标左键快速反转,alt+鼠标右键放大和缩小。

                

                 如上图快速切换控制。

                鼠标右键+wasd 漫游

        摄像机位置调整好后,我们创建对象Ground作为初识对象,使其变成一个九宫格,那么我们可以控制其中心位置在0 0(x z),长和宽为3,3,长度设为1,效果如图:

在Hierarchy窗口创建3d对象-cude:

取名为Ground,设置transform组件:

效果:

 

         地面创建好了,我们创建地板来划分好九个位置。地板同样可以使用方形对象,只需厚度缩小即可,根据如下具体的坐标操作即可:

 创建3个floor对象,和创建地面类似,在Hierarchy中进行创建:

        首先创建第一个:

                调整transform属性,位置为右上角,高度为0.5(地面高度是0,其高为1,y+0.5&&y-0.5,所以我们往        上高出0.5,将其地板的0.1高度漏出即可)。

                其次为了区分颜色,我们在Project资源文件夹的Assets下创建材质:

                 编辑名字为black,调整颜色为黑色:

                 将其拖入对象floor下就可获取其组件:

                 效果如图:

         重复上述操作(ctrl c + ctrl v就可以执行,将其坐标修改为一行即可,材质属性就套用这一个black即可)

        效果如下:

选中对象,利用ctrl选中多个,进行复制,粘贴,然后贴满整个表面,表面有九个地板:

        效果如图:

 然后每个地板对象让其长宽(Scale属性)缩小到0.9使其之间有个分隔即可:下面也就是最终效果图:

         最后可以将其floor对象加载到Ground对象下,这样floor就是Ground的子级对象了,会产生联系哦~

 

 添加移动方形(玩家控制的方块)和目标绿球:

        和上面步骤一致,在场景窗口创建方形对象和球对象即可,控制其大小,放在上层,一个放在左下角,一个放在右上角,颜色一个控制为红色,一个为绿色。现在你先不看下面的题解,先自己尝试尝试吧~

创建另外两种材质:红和绿:(放在资源文件下的材质文件下 -- 好区分)

 

创建方形(命名为Player为玩家操控对象)和球对象,控制其位置一个左下,一个右上。大小自行控制合适即可:

 然后添加材质(玩家红色,目标绿色),最终效果如下:

(上述可以将其大小在调整--为了最终观感自行调整哦~)

3.编写脚本 

(定义变量 编写方法 串联逻辑)

        恭喜你场景搭建完成!现在只需要对我们的操作目标方块添加一个组件--脚本,来控制其行为,那么我们这个小demo就算完成啦~

定义变量GameObject:

        首先选中Player,在Inspector界面下Add Component添加组件,输入Player(此时实际上就是创建C#脚本,也可以直接在资源文件夹下创建,只不过这一步需要拖拽)

         创建完成后,资源文件下会出现此C#脚本,双击打开即可:

        双击打开后会出现如下默认画面:

        此时脚本正事开始编写:

        首先,我们要获取到目标这个对象,C#关于unity中,在场景中的所有对象均为GameObject类型,C#中的变量定义为:权限 + 类型 + 变量名(目前权限了解public和private即可,这里我们使用公共(方便下面的对象在unity中引用))(在类中进行定义)

         

    public GameObject Sphere;

        定义好后,回到unity操作页面,找到此处:

         将我们的目标对象拖拽至此处,方便之后的代码调用此对象的transform信息。

        这样就好。 

 编写方法:

        我们想要让Player对象能够听从wasd进行上下左右进行移动(Move),并且控制其不能超过边界。控制其移动,说白了也就是控制其transfrom组件的位置信息改变而已,在unity与c#中,transform为一个类,其中提供了Translate(参数)-位移方法:

    transform组件类:组件对应的脚本下transform就代表本身(或者GameObject)
        Translate(参数) - 位移方法
            参数:Vector3 3维向量       

                                forward Z+1 back Z-1 left X-1 right X+1
        position - 组件位置信息
            x、y、z 获取坐标

        知道了位移方法,首先我们应该要接收玩家所按下的按钮,unity结合C#玩家输入在Input类中,有接收按钮的方法:

    Input输入类:
        GetKeyDown(参数) -- 对用户按下按键的行为进行监测:
            参数:KeyCode.按键名
            返回值:( bool ) 按下 - true 否则 - false

        输入后,我们需要判断是否超过边界,那么只需要判断当前组件是否在左上,左下,右上,右下这四个点即可(-1, 1;-1, -1; 1, 1; 1, -1 )。利用transform就可以获取当前组件位置信息进行判断即可。结合上述分析,不难得出代码:

    private void Move() 
    {
        if (Input.GetKeyDown(KeyCode.W) && transform.position.z != 1)
        {
            // 向前移动
            transform.Translate(Vector3.forward); // z轴+1
        }
        if (Input.GetKeyDown(KeyCode.S) && transform.position.z != -1)
        {
            // 向后移动
            transform.Translate(Vector3.back); // z轴-1
        }
        if (Input.GetKeyDown(KeyCode.A) && transform.position.x != -1)
        {
            // 向左移动
            transform.Translate(Vector3.left); // x轴-1
        }
        if (Input.GetKeyDown(KeyCode.D) && transform.position.x != 1)
        {
            // 向右移动
            transform.Translate(Vector3.right); // x轴+1
        }
    }

        移动代码写出后,我们这里简单利用控制台输出信息检测是否到目标值的方法isSphere(),此方法逻辑简单,就判断两个对象transform位置信息是否一致,一致就打印即可:

    private void isSphere()
    {
        if (transform.position == Sphere.transform.position)
            print("GameOver!");  // 控制台打印即可
    }

串联逻辑:

        在unity默认给的方法:strat和update实际上就是生命周期方法一个会在第一帧前调用,一个在每一帧都会调用。因为我们的移动和判断是每一帧都要进行检测的,所以放在update方法中即可,这样这个简单demo的逻辑就串联起来了:

    void Update()
    {
        // 每一帧需要执行的地方
        Move();
        isSphere();
    }

综上,运行效果如下:(如果存在检测不出GameOver的出现,将球形位置y修改为0.5即可(bug))

打包导出:

        windows按住快捷键ctrl+b就可以打包啦(注意不能打包在工程目录下),此时运行你的简单demo把~

        是不是成就感满满~我们主要了解一个游戏在unity制作的大致流程以及学习了一些简单方法和方式,具体还是要系统的学习的,让我们一起努力呀!加油少年!

10步构建Unity游戏:从概念到发布的秘密
java专栏
07-13 840
Unity引擎,一个让无数开发者为之疯狂的游戏开发平台。它就像是哈利波特的魔法棒,轻轻一挥,就能创造出一个个令人惊叹的虚拟世界。Unity以其强大的功能、灵活的扩展性和跨平台的特性,成为了游戏开发者的首选。Unity的物理引擎可以让你的游戏更加真实。它模拟了现实世界中的物理现象,如重力、碰撞等。动画是让游戏角色和对象生动起来的关键。Unity提供了一套完整的动画系统,包括动画剪辑(Animation Clips)、动画状态机(Animator State Machine)等。音频可以极大地增强游戏的沉浸感。
【愚公系列】2022年02月 U3D全栈班 002-Unity游戏结构和游戏开发流程
时光隧道
02-11 3万+
文章目录一、Unity游戏结构二、Unity开发流程三、Unity3D的Helloworld1.纯拖界面的Helloworld2.Unity3D脚本的Helloworld总结 一、Unity游戏结构 游戏结构主要有: 场景 游戏对象 组件 属性 二、Unity开发流程 1、创建项目 2、准备资源素材 在线资源素材网站:https://assetstore.unity.com/ –导入资源(图片、声音、3D模型…) –创建资源(材质、动画…) 3、构建场景 –添加游戏对象 –操纵游戏对象完成游戏逻辑
1.初识Unity了解一个Unity项目的完整创建流程(超详细)
最新发布
grapefruit_lyy的博客
08-08 1619
初识Unity了解一个Unity项目的完整创建流程 1.Unity下载 2.Unity项目的完整创建流程 2.1.新建项目 2.2.导包 2.3.Preferences设置 2.4.Player Setting设置 2.5.打包 3.Unity的界面 4.Unity项目的文件 本篇文章主要介绍一个Unity项目的完整创建流程,以及Unity的界面和项目有关文件。
Unity开发流程
Edward的博客
08-27 2907
unity开发单机游戏流程
weixin_35749545的博客
01-13 1215
Unity是一款跨平台的游戏开发工具,可以用来开发单机游戏。具体的开发流程如下: 准备工作:安装Unity软件并创建新项目。 资源准备:准备游戏所需的素材和资源,包括3D模型、音频、图片等。 场景搭建:使用Unity的场景编辑器进行场景搭建,添加模型、灯光等元素。 编写代码:使用Unity脚本语言(C#)编写游戏逻辑代码,实现游戏中的各种交互和功能。 测试和调试:在Unity编辑器中进行...
Unity】UI九宫格
张不无的博客
03-21 2087
9宫格
Unity制作九宫格手机手势解锁密码
御雪妃舞
09-12 7089
九宫格手机手势解锁密码的demo.
Unity实战篇 | 自己制作一个《大转盘抽奖》 小程序,顺便带你看看抽奖的水可以有多深
努力前行,总会成为自己心中的那道光
12-24 5万+
今天给大家带来一个转盘抽奖的小项目。 在游戏开发日常中,抽奖的需求可算是超级常见了。 那今天就来做这个小项目,顺便了解一下抽奖都有什么内幕吧! #转盘抽奖小程序制作 首先来说一下转盘抽奖小程序的组成 转盘抽奖主要是由两部分组成,一个是转盘,另一个是指针。
斜方向的九宫格图片拉伸
hitheqing的博客
12-14 1076
斜方向的九宫格图片拉伸 先上最终效果图: 阅读本文需要的基础知识:网格,顶点属性 一般九宫格拉伸的原理 在ui制作过程中,九宫格技术通常被用来拉伸一些某个维度上没有明显变化区域。比如按钮和一些界面的底图。它的原理是把一个大的矩形分为9个矩形,保留四个角的矩形不变,上下矩形在横向上无变化作横向拉伸,左右矩形在竖向上无变化作竖向拉伸,中间矩形在横向和竖向都无变化作两个方向拉伸。 在unity中,需要设置精灵图片的border来指定拉伸区域。这种做法的好处就是节省图片资源,用更小分辨率的图去完成更大分辨率的图
Unity实战篇 | 游戏中控制 地图无限自动化生成 的方法,进一步优化项目
热门推荐
努力前行,总会成为自己心中的那道光
09-14 7万+
在一个实际的的游戏项目中,地图和地形基本上是不可或缺的一部分。 假设在游戏中有很多
unity3d游戏开发流程与规范
09-18
Unity3D游戏开发流程与规范 游戏开发是所有软件开发类型中最复杂的一种。 要求各种专业人员(策划、程序、美术、测试、运营等等)高度的协同配合。
Unity3D游戏开发流程与规范
10-18
经验分享 Unity3D游戏开发流程与规范 游戏开发是所有软件开发类型中最难的一种。 要求各种专业人员(策划、程序、美术等等)高度的协同配合。 确保游戏进度良性推进。
5款Unity3D制作的小游戏实例,新手必备(看评论酌情下载)
07-30
5款Unity3D制作的小游戏实例,新手必备
Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程.Part1
空名先生
03-19 1万+
FairyGUI简介导读 她提供了超强的UI编辑器,界面操作与PS类似,友善且简单。主打的是摒弃了脚本和配置文件这些需要代码思维的操作,设计或者美术都可以轻轻松松学会并生产界面。 能实现功能非常之多:最基本的按钮,图片,富文本,进度条,滑动条,列表,树 进阶的有动画,控制器,关联系统,装载器,窗口,动效 支持的引擎也非常之多:Unity,Unreal,Cocos,ThreeJS,Egret,LayaAir等十多款游戏引擎 通过简单的操作来实现复杂的功能,提高开发效率,UI 制作效率提升昂...
【零经验】游戏制作流程攻略(Unity、个人开发、找工作)
chenkai4141的博客
06-26 1万+
零经验想做游戏?网上教程零零碎碎?不知从何学起?快戳进来看看!
Unity学习笔记(五)2D游戏制作入门
xubufanzhou的博客
05-25 9496
跟随UnityLearn上的一个教程,做一个简单但完整的2D游戏,过程包括:创建主角、世界、敌人和伤害区域、可收集物、飞弹、NPC,以及创建丰富游戏的其他系统包括:物理系统、动画、摄像机、粒子系统、UI、音频、对话,最后构建可执行的游戏
unity简易游戏制作
weixin_51008124的博客
04-18 5559
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代.
写文章

热门文章

  • c语言实现各种排序 17587
  • 【c语言】归并排序 8119
  • 【Python3】组合数据类型 7271
  • c语言中的文件操作 6110
  • 人生的第一篇博客φ(>ω<*) 5253

分类专栏

  • Git学习 2篇
  • 分布式学习 1篇
  • 算法学习
  • 动态规划 3篇
  • unity 2篇
  • 类银河恶魔城游戏 1篇
  • MySQL 7篇
  • 数据结构初阶 8篇
  • c语言 16篇
  • C++ 20篇
  • 网络 5篇
  • C++项目 2篇
  • Linux 18篇
  • 刷题笔记 17篇
  • Python3 5篇
  • 数据结构高阶
  • 小知识 2篇
  • opencv 1篇

最新评论

  • 【C++】红黑树的插入实现

    柒海啦: 因为U节点是插入节点父节点的兄弟节点,如果它是存在并且是红色的话就不需要进行旋转操作了呀,只需要变色就好了哦

  • 【C++】红黑树的插入实现

    hoferlee: 左单旋里,U节点存在的话为什么一定是黑的?

  • 【算法学习】简单多状态-动态规划

    CSDN-Ada助手: 不知道 算法 技能树是否可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm

  • 【c语言】快速排序的三种实现以及优化细节

    柒海啦: 平均速度都是快排,后面两种应该只是对代码层面上的优化,避免频繁的判断条件,让代码实现更优雅吧。

  • 【c语言】快速排序的三种实现以及优化细节

    wyo.pub: 三种方法哪个平均速度快些

最新文章

  • 【算法学习】简单多状态-动态规划
  • 【Git】git的分支管理
  • 【Git】Git的基本操作
2024年2篇
2023年29篇
2022年70篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

天下网标王民权网站优化推广seo哪家好黄浦网站优化找哪家邢台网站优化深圳网站建设和优化公司枣庄做网站优化哪家好小网站优化成大型网页建瓯网站关键词优化排名辽宁网站优化与推广专业公司怎么操作网站的内链优化翻译公司网站优化网站的优化采选火30星棒杭州网站优化哪家价钱合理广州荔湾网站优化网站建设优化焊云速捷完美天津搜索引擎网站优化外包常州网站关键词优化公司seo网站优化出站链接东城网站建设和优化网站性能优化测试内江网站推广优化金华网站优化技术网站优化多久更新一次标签奉贤南桥网站优化谈谈网站如何进行优化视觉效果泰州高港网站优化木材行业网站优化方案福田儿童网站优化哪家好靠谱的网站优化效果如何随州有学习网站优化的吗东莞网站优化培训香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化