用Unity做一个小Demo入门Unity

简介: 用Unity做一个小Demo入门Unity


image.png

文章目录


前言

在小时候我的梦想就是开发一款自己的游戏

而因为小时候看小说,所以对vr游戏也是极其的感兴趣

后来接触了IT才发现不同的游戏是通过不同的游戏引擎来做的

打听了一下,适合小白的就是Unity这个,简单易学,还跨平台!

所以努力学习Unity成为一个游戏开发人员,是我的目标!

本篇文章适合对游戏开发一窍不通,但是又感兴趣的人,自己实现一个自己的小Demo


个人介绍

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

📢:❤布小禅❤

📢 作者专栏:

❤Python❤

❤Java❤

效果图:

image.png

效果视频:

因为不支持嵌套本地视频,就放在了素材里面,有兴趣的可以看看


一、准备工作

1. unity下载安装

首先,我们应该先安装Unity Hub,然后再Unity Hub上下载Unity

Unity Hub可以前往官网下载: Unity中国官网

下载好之后,需要先登录,不然没法安装Unity,可以点击注册

image.png

注册完,登录后即可按图安装Unity

image.png

点击按钮,选择版本,下载安装

image.png

模块可以按需求安装,当然你电脑内存大,也可以

image.png

然后就是漫长的等待了

image.png


2. 个人许可证激活

在这等待中,我们可以先激活许可证,不然是没法使用的

不过需要放心的是,激活许可证是免费的,虽然有一定的期限,但是到期了,仍然可以免费激活

  1. 点击右上角的角色
    image.png
  2. 然后点击管理许可证
    image.png
  3. 点击激活新许可证
    image.png
  4. 激活成功
    image.png


3. 素材下载

素材嘛,一般都不自己做的,在游戏环节中,属于美工的工作,我们不会的话,就去网络上白嫖!

万圣节素材:

链接:https://pan.baidu.com/s/14ZGZCdNQVhnoQZWRFqR2kQ

提取码:aflk


二、项目准备

下载好素材和Unity了吧,那就打开Unity Hub准备擦黄建项目吧


1. 项目创建

  1. 回到主页面,点击项目
    image.png
  2. 填写项目名字和路径,以及选择模板,然后点击创建
    image.png
  3. 然后等待加载完毕,会自动打开Unity
    当然,我这是调整过的,也是拖拽调整,我喜欢这样的,你们主要看那个菜单栏的作用是什么
    image.png
  4. 到这我们的项目已经创建好了,接下来先导入素材


2. 素材导入

先找到我们下载好存放的文件夹,解压,然后将文件管理器放在Unity上面,将我们解压好的东西,拖到Project里面的Assets

image.png

然后就是这样,就OK了

image.png


三、开始项目

1. 将素材变为精灵

在游戏里面是用的东西,叫做游戏对象(好家伙,果然学了IT就不缺对象了,之前的面向对象,现在的游戏对象O(∩_∩)O哈哈~)

我们需要把素材变为游戏对象,才能在你游戏里面调教他们~~

  1. 我们全选图片素材,然后在调整游戏对象的界面将TextTure Type改为Sprite,当然也可以一个一个的改
    image.png
  2. 然后点出去,会跳出一个弹窗,提示你是否要修改。点击应用apply
    image.png


2. 将精灵放在游戏里

  1. 先点击这个2d,将画面变成平面,然后点击第二个箭头的按钮,将第三个按钮电商,将天蓝色关闭,然后在拖拽游戏对象,就可以任意的调教他们啦!哇哈哈~~
    是不是操作很简单,很轻松,不过别放松,后面还有代码的
    image.png
  2. 效果是这样的
    image.png
  3. 然后拖拽就可以了
    image.png
  4. 然后你看这个大月亮挡住了这些东西,没事,我们可以调(教)
    将游戏对象的值设置为比0大的值,值越大,越在前面
    0就相当于,我把你放在起跑线,而10的是我把你放在离起跑线十米的位置,而我就在前面,所以是10的离我近
    就像几个人站一块,我(10)站你(0)前面,就能挡着你
    image.png
    因为我们的字是要在最前面的,所以这些设置成10,字设置成20
  5. 然后再调整方位
    image.png
  6. 可以修改修改对象的名字,改成英文的,逼格比较高,然后新建一个空表对象,将三个蝙蝠放到里面(蝙蝠当对象?咦惹!不要慌,以后还有把哥布林什么的当怪物的机会呢~~)
    image.png
  7. 让蝙蝠动起来
    点击bats,右边最下面的add component,输入BatFly,创建一个代码文件
    image.png
    然后双击打开,用记事本就行,将下面的代码复制进去
    image.png
    不需要知道代码什么意思,但是翻译翻译,大致也就明白了,这是给完全零基础的人看的(小声逼逼:不好意思没有写注释的习惯!这个习惯很不好,我已经努力在改了!)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BatShake : MonoBehaviour
{
    Vector3 orgPos;  
    float elapse;  
    public float Interval = 0.05f;
    public float Range = 0.05f;
    void Start()
    {
        orgPos = transform.position;   // 
    }
    // Update is called once per frame
    void Update()
    {
        elapse += Time.deltaTime; // How often to judge
        if (elapse > Interval)
        {
            var pos = transform.position;
            pos.x = orgPos.x + Random.Range(-Range, Range);
            pos.y = orgPos.y + Random.Range(-Range, Range);
            transform.position = pos;
            elapse = 0.0f;
        }
    }
}
  1. 然后就可以点击运行,看到蝙蝠在发神经一样的抽搐 ,没错,是在飞!


3. 粒子效果

就像吹泡泡一样,我在一个点上吹泡泡,你可以把我(咦?那里怪怪的!没事,把我当对象把~~)随意修改位置,方向,让我的泡泡往某个方向吹

  1. GameObject选择Effects/Particle System
    image.png
  2. 该粒子在Hierarchy中,F2可以修改名字,也可以不修改
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dbz4Ao1o-1629037131468)(C:\Users\Smly\AppData\Roaming\Typora\typora-user-images\image-20210814183933984.png)]
  3. 在项目的Assets文件夹新建一个Material
    image.png
  4. 然后再将该Material改一个喜欢的名字
    我是为了项目层次性,先创了个文件夹,再把它放进去的
    image.png
  5. 然后将该Material的Shader设置为Particles/Additive(如果使用unity2020的话,粒子就需要设置为Mobile/Particles/Additive)
    image.pngimage.png
  6. 设置好后,将素材中的灰色小球设置给这个Material
    image.png
  7. 回到粒子划到最后,能看到一个Rnderer的东西,点开image.png
    将你设置好的Material添加进去,就可以了
  8. 在之后的就是细节的调整了
  9. 滑到最上面
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a93Gsr4V-1629037131476)(C:\Users\Smly\AppData\Roaming\Typora\typora-user-images\image-20210814184454513.png)]
  10. Start LifeTime 是粒子生命值
  11. Max Particles是粒子数
  12. Start Sizes是粒子大小
  13. 调整粒子发射速率,在下面一个叫做Emission里面,有一个Rate over time 默认值为10,根据效果来调整,没必要非和老师的一样
    而这个sharp里的angle是调整角度,radius是调整半径,根据自己喜好来
    image.png
  14. 调整渐变色是在Color over Lifetime里面,自己调整,上面最后面的指针调整的是最后粒子的透明度,下面是粒子颜色,指针调整的是粒子所在空间的前后位置
    image.png
  15. 然后可以在Size over Lifetime设置粒子的区间大小
    需要注意的是,我第一次使用的时候,下面是没有界面的,只有一个栏,需要我自己把它拉起来,才能调整
    image.png


4. 给Demo添加背景音效

给游戏添加背景音效是最简单的

image.png

然后同样的,给脸也这么操作一下,当然记得把默认的对钩关掉

image.png

回头我们会设置让南瓜脸等会再出来,然后再让他笑,这些我们在代码里设置


5. 淡入淡出

给face对象创建一个C#脚本

image.png

输入脚本名字,点回车

image.png

然后点Create and add

创建成功后,修改代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FaceResult : MonoBehaviour
{
    public float waitTime = 3f;
    float elapse;
    // Start is called before the first frame update
    void Start()
    {
    }
    void setAlpha(float a)
    {
        var sp = gameObject.GetComponent<SpriteRenderer>();
        var c = sp.color;
        c.a = a;
        sp.color = c;
    }
    // Update is called once per frame
    void Update()
    {
        if(elapse < waitTime)
        {
            elapse += Time.deltaTime;
            setAlpha(elapse / waitTime);
        }
    }
}


6. 流程控制

创建一个名为AllK的c#脚本

用我的蹩脚英语注释了,至于我为啥不用中文注释,因为英文显得逼格高一点,咳咳

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AllK : MonoBehaviour
{
    float[] timeArray = new float[] { 4, 6, 8, 10, 12 };  // create time 
    int index;  // index is timeArray's index 
    // create game object
    public GameObject particle;
    public GameObject moon;
    public GameObject word;
    public GameObject face;
    public GameObject bat1;
    public GameObject bat2;
    public GameObject bat3;
    bool OnClick;  // let word don't click
    // Start is called before the first frame update
    void Start()
    {
        // set game objects can't run
        particle.SetActive(false);
        moon.SetActive(false);
        word.SetActive(false);
        face.SetActive(false);
        bat1.SetActive(false);
        bat2.SetActive(false);
        bat3.SetActive(false);
    }
    // Update is called once per frame
    void Update()
    {
        // set time
        if(index < timeArray.Length && Time.realtimeSinceStartup>=timeArray[index])
        {
            OnTime(index);
            index++;
        }
        // if  word can click and click word ,let word appear
        if(OnClick && Input.GetMouseButtonUp(0))
        {
            word.SetActive(true);
        }
    }
    void OnTime(int index)
    {
        Debug.Log(index);
        switch (index)
        {
            case 0:  // time is 0, let particle appear
                {
                    particle.SetActive(true);
                }
                break;
            case 1:  // time is 1, let moon appear
                {
                    moon.SetActive(true);
                }
                break;
            case 2:  // time is 2, let bats appear
                {
                    bat1.SetActive(true);
                    bat2.SetActive(true);
                    bat3.SetActive(true);
                }
                break;
            case 3:  // time is 3, let face appear
                {
                    face.GetComponent<AudioSource>().Play();  // time is 3, let face laugh
                    face.SetActive(true);
                }
                break;
            case 4:  // time is 4, let word can click
                {
                    OnClick = true;
                }
                break;
        }
    }
}


四、项目打包

点击右上角的File

image.png

进去可以选择打包类型

image.png


五、完成

做到这里,那就恭喜你已经通过unity擦黄建了一个自己的小Demo

是不是对游戏开发产生了浓厚的兴趣,一起加油吧


结语

代码看不懂没事,先会用就行了,先用它做出来一个东西,而不要先去想它为什么这么做,初始阶段应该学会不求甚解!

加油吧,努力奋斗的我们!


目录
相关文章
|
3月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
77 0
|
5月前
|
前端开发 图形学
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
30 0
|
6月前
|
定位技术 C# 图形学
Unity和C#游戏编程入门:创建迷宫小球游戏示例
Unity和C#游戏编程入门:创建迷宫小球游戏示例
153 2
|
11月前
|
C# 图形学
Unity的几个入门小常识
Unity的几个入门小常识
|
11月前
|
人工智能 C# 图形学
Unity入门
Unity入门
|
前端开发 C# 图形学
unity入门必备的案例2.0
unity入门必备的案例你还不知道?
106 0
|
API 图形学
【unity实践demo】unity-2D游戏官方案例【2】
【unity实践demo】unity-2D游戏官方案例【2】
285 0
|
API 图形学
unity之子弹发射小demo
unity之子弹发射
211 0
|
前端开发 C# 图形学
unity入门必备的案例你还不知道?
unity入门必备的案例你还不知道?
162 0
|
人工智能 图形学
Unity Rain Ai 插件的使用入门(一)
Unity Rain Ai 插件的使用入门
578 1
Unity Rain Ai 插件的使用入门(一)