主頁 >  其他 > 用Unity做一個小Demo入門Unity

用Unity做一個小Demo入門Unity

2021-08-17 09:03:43 其他

請添加圖片描述

文章目錄

  • 前言
  • 個人介紹
  • 一、準備作業
    • 1. unity下載安裝
    • 2. 個人許可證激活
    • 3. 素材下載
  • 二、專案準備
    • 1. 專案創建
    • 2. 素材匯入
  • 三、開始專案
    • 1. 將素材變為精靈
    • 2. 將精靈放在游戲里
    • 3. 粒子效果
    • 4. 給Demo添加背景音效
    • 5. 淡入淡出
    • 6. 流程控制
  • 四、專案打包
  • 五、完成
  • 結語

前言

在小時候我的夢想就是開發一款自己的游戲

而因為小時候看小說,所以對vr游戲也是極其的感興趣

后來接觸了IT才發現不同的游戲是通過不同的游戲引擎來做的

打聽了一下,適合小白的就是Unity這個,簡單易學,還跨平臺!

所以努力學習Unity成為一個游戲開發人員,是我的目標!

本篇文章適合對游戲開發一竅不通,但是又感興趣的人,自己實作一個自己的小Demo

個人介紹

大家好,我是布小禪,一個盡力讓無情的代碼變得生動有趣的IT小白,很高興能偶認識你,關注我,每天堅持學點東西,我們以后就是大佬啦!

📢 博客主頁:?布小禪?
📢 作者專欄:
?Python?
?Java?

效果圖:

在這里插入圖片描述

效果視頻:

因為不支持嵌套本地視頻,就放在了素材里面,有興趣的可以看看

一、準備作業

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

是不是對游戲開發產生了濃厚的興趣,一起加油吧

結語

代碼看不懂沒事,先會用就行了,先用它做出來一個東西,而不要先去想它為什么這么做,初始階段應該學會不求甚解!

加油吧,努力奮斗的我們!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294313.html

標籤:其他

上一篇:騰訊極客挑戰賽第四期:鵝羅斯方塊——賽后復盤

下一篇:C語言實作小游戲——掃雷

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more