用Unity做一个小Demo入门Unity

这篇具有很好参考价值的文章主要介绍了用Unity做一个小Demo入门Unity。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用Unity做一个小Demo入门Unity

前言

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

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

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

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

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

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

个人介绍

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

📢 博客主页:❤布小禅❤
📢 作者专栏:
❤Python❤
❤Java❤

效果图:

用Unity做一个小Demo入门Unity

效果视频:

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

一、准备工作

1. unity下载安装

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

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

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

用Unity做一个小Demo入门Unity

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

用Unity做一个小Demo入门Unity

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

用Unity做一个小Demo入门Unity

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

用Unity做一个小Demo入门Unity

然后就是漫长的等待了

用Unity做一个小Demo入门Unity

2. 个人许可证激活

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

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

  1. 点击右上角的角色

    用Unity做一个小Demo入门Unity

  2. 然后点击管理许可证

    用Unity做一个小Demo入门Unity

  3. 点击激活新许可证

    用Unity做一个小Demo入门Unity

  4. 激活成功

    用Unity做一个小Demo入门Unity

3. 素材下载

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

万圣节素材:

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

二、项目准备

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

1. 项目创建

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

    用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity

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

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

    用Unity做一个小Demo入门Unity

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

2. 素材导入

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

用Unity做一个小Demo入门Unity

然后就是这样,就OK了

用Unity做一个小Demo入门Unity

三、开始项目

1. 将素材变为精灵

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

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

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

    用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity

2. 将精灵放在游戏里

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

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

    用Unity做一个小Demo入门Unity

  2. 效果是这样的

    用Unity做一个小Demo入门Unity

  3. 然后拖拽就可以了

    用Unity做一个小Demo入门Unity

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

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

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

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

    用Unity做一个小Demo入门Unity

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

  5. 然后再调整方位

    用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity

  7. 让蝙蝠动起来

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

    用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity

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

    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

    用Unity做一个小Demo入门Unity

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

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

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

    用Unity做一个小Demo入门Unity

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

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

    用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity用Unity做一个小Demo入门Unity用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity

  7. 回到粒子划到最后,能看到一个Rnderer的东西,点开用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity

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

    用Unity做一个小Demo入门Unity

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

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

    用Unity做一个小Demo入门Unity用Unity做一个小Demo入门Unity

4. 给Demo添加背景音效

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

用Unity做一个小Demo入门Unity

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

用Unity做一个小Demo入门Unity

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

5. 淡入淡出

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

用Unity做一个小Demo入门Unity

输入脚本名字,点回车

用Unity做一个小Demo入门Unity

然后点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入门Unity

进去可以选择打包类型

用Unity做一个小Demo入门Unity

五、完成

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

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

结语

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

加油吧,努力奋斗的我们!文章来源地址https://www.toymoban.com/news/detail-408156.html

到了这里,关于用Unity做一个小Demo入门Unity的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity Shader】从入门到感慨(2)用C#画一个立方体

    这个问题是面试经常被问到的题。如上图,我们知道在几何中立方体有6个面,8个顶点。但在图形学中,顶点指的是模型空间的Vector3位置坐标,我们以A点为例,很明显为了表达三个面不同的方向,这里就需要三个重合的顶点来表达不同的方向。 那么,我们很容易得出每个立

    2024年02月11日
    浏览(39)
  • Unity快速入门教程-制作一个简易版的计时器Time.deltaTime

    制作游戏的时候,可能会需要到一个计时器,本篇文章附完整计时器代码 本文将简单介绍 一次计时器 和 循环计时器 的代码 Time.deltaTime是帧与帧相减出来的,即 Time.deltaTime=后一帧时间-前一帧时间 ,计算结果由你的电脑配置而定,不是固定值。由于Time.deltaTime的结果是由后一

    2024年02月12日
    浏览(41)
  • 【unity demo】使用unity制作射击游戏demo (上)

    主要是安装unity对应的版本,并配置相应的ide,目前我用的是unity 2021.3.21。 通过edit-prefreneces面板,external tools选项中配置ide环境,自动使用vs code来打开工程中的代码文档。 即游戏设计文档(Game Design Document, GDD),我们需要预先对待实现的完整demo进行设计,包括5个部分:

    2024年02月08日
    浏览(53)
  • React 第一个Demo

    CTF 加解密合集 CTF Web合集 网络安全知识库 次笔记仅记录学习React过程中的笔记,因为有必要掌握一门前端的框架, 在vue和React中选择了React。 目标: 实现Demo: react.development.js 是react核心库 react-dom.development.js 是跨站库 babel.min.js 是转换库,主要作用是为了将jsx转为js 相对于正

    2024年02月09日
    浏览(26)
  • 编写一个Dag作业Demo

    假设我们有一个在线商店,需要对每天的订单数据进行分析,得出以下指标: 总销售额 总订单数 每种商品的销售额和销售数量排名 每个省份的销售额和销售数量排名 我们可以使用Airflow编写一个DAG作业,每天自动运行,将数据从数据源抽取并进行转换和计算,最后将结果存

    2024年02月15日
    浏览(53)
  • 【Django 笔记】第一个demo

     python - Django creating new project - access is denied - Stack Overflow 问题解决 ;  选择其他路径创建,不要再 \\\'D:\\\\software\\\\python3\\\\anconda3\\\\Lib\\\\site-packages\\\\django\\\\bin下执行命令    查看 manange 提供的命令 官方命令文档 : django-admin and manage.py | Django documentation | Django  E:datapythondjaongo_prjg

    2024年02月07日
    浏览(23)
  • 迷宫算法的unity demo实现

    在之前博客提及过A*寻路算法,同时想实现生成迷宫算法,所以有了这次主题。 参考链接:有关迷宫的生成算法和解密算法_迷宫求解摸墙算法-CSDN博客 我们采用prim算法来生成迷宫: 让迷宫全是墙. 选一个单元格作为迷宫的通路,然后把它的邻墙放入列表 当列表里还有墙时

    2024年01月18日
    浏览(31)
  • 搭建一个简单的Spring Demo

    要学习Spring 源码,一个是从Spring GitHub 上去down源码,然后倒入IDEA编译,但这种方法费时费力,如果你不需要对Spring 源码进行修改后,再编译的话,直接搭建一个Spring Demo 的Maven项目,引入Spring 对应依赖,下载源码包,通过Demo来学习。 本专栏就通过该Demo来学习Spring 源码,并

    2024年01月23日
    浏览(28)
  • vue3中如何编写一个组件---demo

    当使用 Vue 3 来开发组件时,可以使用 Composition API 来定义组件逻辑和实现组件传值。下面是一个详细的 Vue 3 组件示例和讲解: 假设我们要开发一个简单的待办事项列表组件,包括添加待办事项、显示待办事项列表以及删除待办事项的功能。 在 TodoList.vue 文件中: 在上面的示

    2024年02月11日
    浏览(31)
  • 微信小程序实现的一个登录页面Demo

    微信小程序登录页面示例代码,包括了获取验证码按钮等30秒点一次功能和勾选同意用户条款的功能,仅供参考,效果图如下 *.wxml文件: *.wxss文件: *.js文件: 这个示例代码实现了一个登录页面,并且包括了输入手机号和验证码,获取验证码按钮,勾选同意用户条款,登录按

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包