用Unity做一个小Demo入门Unity

举报
布小禅 发表于 2021/09/05 19:55:33 2021/09/05
【摘要】 一个unity的小demo

请添加图片描述

前言

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

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

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

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

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

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

个人介绍

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

效果图:

在这里插入图片描述

效果视频:

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

一、准备工作

1. unity下载安装

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

然后就是漫长的等待了

在这里插入图片描述

2. 个人许可证激活

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

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

  1. 点击右上角的角色

    在这里插入图片描述

  2. 然后点击管理许可证

    在这里插入图片描述

  3. 点击激活新许可证

    在这里插入图片描述

  4. 激活成功

    在这里插入图片描述

3. 素材下载

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

万圣节素材:

链接:https://pan.baidu.com/s/14ZGZCdNQVhnoQZWRFqR2kQ
提取码:aflk

二、项目准备

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

1. 项目创建

  1. 回到主页面,点击项目

    在这里插入图片描述

  2. 填写项目名字和路径,以及选择模板,然后点击创建

  3. 然后等待加载完毕,会自动打开Unity

    当然,我这是调整过的,也是拖拽调整,我喜欢这样的,你们主要看那个菜单栏的作用是什么

    在这里插入图片描述

  4. 到这我们的项目已经创建好了,接下来先导入素材

2. 素材导入

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

在这里插入图片描述

然后就是这样,就OK了

在这里插入图片描述

三、开始项目

1. 将素材变为精灵

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

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

  1. 我们全选图片素材,然后在调整游戏对象的界面将TextTure Type改为Sprite,当然也可以一个一个的改

    在这里插入图片描述

  2. 然后点出去,会跳出一个弹窗,提示你是否要修改。点击应用apply

    在这里插入图片描述

2. 将精灵放在游戏里

  1. 先点击这个2d,将画面变成平面,然后点击第二个箭头的按钮,将第三个按钮电商,将天蓝色关闭,然后在拖拽游戏对象,就可以任意的调教他们啦!哇哈哈~~

    是不是操作很简单,很轻松,不过别放松,后面还有代码的

    在这里插入图片描述

  2. 效果是这样的

  3. 然后拖拽就可以了

    在这里插入图片描述

  4. 然后你看这个大月亮挡住了这些东西,没事,我们可以调(教)

    将游戏对象的值设置为比0大的值,值越大,越在前面

    0就相当于,我把你放在起跑线,而10的是我把你放在离起跑线十米的位置,而我就在前面,所以是10的离我近

    就像几个人站一块,我(10)站你(0)前面,就能挡着你

    在这里插入图片描述

    因为我们的字是要在最前面的,所以这些设置成10,字设置成20

  5. 然后再调整方位

  6. 可以修改修改对象的名字,改成英文的,逼格比较高,然后新建一个空表对象,将三个蝙蝠放到里面(蝙蝠当对象?咦惹!不要慌,以后还有把哥布林什么的当怪物的机会呢~~)

    在这里插入图片描述

  7. 让蝙蝠动起来

    点击bats,右边最下面的add component,输入BatFly,创建一个代码文件

    在这里插入图片描述

    然后双击打开,用记事本就行,将下面的代码复制进去

    在这里插入图片描述

    不需要知道代码什么意思,但是翻译翻译,大致也就明白了,这是给完全零基础的人看的(小声逼逼:不好意思没有写注释的习惯!这个习惯很不好,我已经努力在改了!)

    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;
            }
        }
    }
    
    

    然后就可以点击运行,看到蝙蝠在发神经一样的抽搐 ,没错,是在飞!

3. 粒子效果

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

  1. GameObject选择Effects/Particle System

    http://img2.mukewang.com/61179d300001e27f07890547.jpg

  2. 该粒子在Hierarchy中,F2可以修改名字,也可以不修改

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dbz4Ao1o-1629037131468)(C:\Users\Smly\AppData\Roaming\Typora\typora-user-images\image-20210814183933984.png)]

  3. 在项目的Assets文件夹新建一个Material

    http://img4.mukewang.com/61179dbc0001a74906790688.jpg

  4. 然后再将该Material改一个喜欢的名字

    我是为了项目层次性,先创了个文件夹,再把它放进去的

    http://img4.mukewang.com/61179dda0001773d03000170.jpg

  5. 然后将该Material的Shader设置为Particles/Additive(如果使用unity2020的话,粒子就需要设置为Mobile/Particles/Additive)

    http://img4.mukewang.com/61179e2500012c9703380385.jpghttp://img2.mukewang.com/61179e360001ad1003380385.jpghttp://img1.mukewang.com/61179e4d00013ee003380385.jpg

  6. 设置好后,将素材中的灰色小球设置给这个Material

    http://img1.mukewang.com/6117910800018f6304210241.jpg

  7. 回到粒子划到最后,能看到一个Rnderer的东西,点开http://img.mukewang.com/611792750001dac904060091.jpg

    将你设置好的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是调整半径,根据自己喜好来

    http://img3.mukewang.com/61179fcb0001785003210279.jpg

  14. 调整渐变色是在Color over Lifetime里面,自己调整,上面最后面的指针调整的是最后粒子的透明度,下面是粒子颜色,指针调整的是粒子所在空间的前后位置

    http://img4.mukewang.com/61179f060001a34c07700274.jpg

  15. 然后可以在Size over Lifetime设置粒子的区间大小

    需要注意的是,我第一次使用的时候,下面是没有界面的,只有一个栏,需要我自己把它拉起来,才能调整

    http://img3.mukewang.com/61179cd00001f0de03410483.jpghttp://img3.mukewang.com/61179ccc0001f0de03410483.jpg

4. 给Demo添加背景音效

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

http://img.mukewang.com/6117a15a0001ef1908850672.jpg

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

在这里插入图片描述

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

5. 淡入淡出

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

http://img2.mukewang.com/6117aa8b0001b03f08770316.jpg

输入脚本名字,点回车

http://img.mukewang.com/6117abda0001778602880394.jpg

然后点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

在这里插入图片描述

进去可以选择打包类型

在这里插入图片描述

五、完成

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

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

结语

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

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。