用Unity做一個小Demo入門Unity

布小禪 2021-08-16 00:16:31 阅读数:431

本文一共[544]字,预计阅读时长:1分钟~
unity demo unity

請添加圖片描述

前言

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

而因為小時候看小說,所以對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://gsmany.com/2021/08/20210816001626250K.html