
文章目錄
- 前言
- 個人介紹
- 一、準備作業
- 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. 個人許可證激活
在這等待中,我們可以先激活許可證,不然是沒法使用的
不過需要放心的是,激活許可證是免費的,雖然有一定的期限,但是到期了,仍然可以免費激活
-
點擊右上角的角色

-
然后點擊管理許可證

-
點擊激活新許可證

-
激活成功

3. 素材下載
素材嘛,一般都不自己做的,在游戲環節中,屬于美工的作業,我們不會的話,就去網路上白嫖!
萬圣節素材:
鏈接:https://pan.baidu.com/s/14ZGZCdNQVhnoQZWRFqR2kQ
提取碼:aflk
二、專案準備
下載好素材和Unity了吧,那就打開Unity Hub準備擦黃建專案吧
1. 專案創建
-
回到主頁面,點擊專案

-
填寫專案名字和路徑,以及選擇模板,然后點擊創建

-
然后等待加載完畢,會自動打開Unity
當然,我這是調整過的,也是拖拽調整,我喜歡這樣的,你們主要看那個選單欄的作用是什么

-
到這我們的專案已經創建好了,接下來先匯入素材
2. 素材匯入
先找到我們下載好存放的檔案夾,解壓,然后將檔案管理器放在Unity上面,將我們解壓好的東西,拖到Project里面的Assets

然后就是這樣,就OK了

三、開始專案
1. 將素材變為精靈
在游戲里面是用的東西,叫做游戲物件(好家伙,果然學了IT就不缺物件了,之前的面向物件,現在的游戲物件O(∩_∩)O哈哈~)
我們需要把素材變為游戲物件,才能在你游戲里面調教他們~~
-
我們全選圖片素材,然后在調整游戲物件的界面將TextTure Type改為Sprite,當然也可以一個一個的改

-
然后點出去,會跳出一個彈窗,提示你是否要修改,點擊應用apply

2. 將精靈放在游戲里
-
先點擊這個2d,將畫面變成平面,然后點擊第二個箭頭的按鈕,將第三個按鈕電商,將天藍色關閉,然后在拖拽游戲物件,就可以任意的調教他們啦!哇哈哈~~
是不是操作很簡單,很輕松,不過別放松,后面還有代碼的

-
效果是這樣的

-
然后拖拽就可以了

-
然后你看這個大月亮擋住了這些東西,沒事,我們可以調(教)
將游戲物件的值設定為比0大的值,值越大,越在前面
0就相當于,我把你放在起跑線,而10的是我把你放在離起跑線十米的位置,而我就在前面,所以是10的離我近
就像幾個人站一塊,我(10)站你(0)前面,就能擋著你

因為我們的字是要在最前面的,所以這些設定成10,字設定成20
-
然后再調整方位

-
可以修改修改物件的名字,改成英文的,逼格比較高,然后新建一個空表物件,將三個蝙蝠放到里面(蝙蝠當物件?咦惹!不要慌,以后還有把哥布林什么的當怪物的機會呢~~)

-
讓蝙蝠動起來
點擊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. 粒子效果
就像吹泡泡一樣,我在一個點上吹泡泡,你可以把我(咦?那里怪怪的!沒事,把我當物件把~~)隨意修改位置,方向,讓我的泡泡往某個方向吹
-
GameObject選擇Effects/Particle System

-
該粒子在Hierarchy中,F2可以修改名字,也可以不修改
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Dbz4Ao1o-1629037131468)(C:\Users\Smly\AppData\Roaming\Typora\typora-user-images\image-20210814183933984.png)]
-
在專案的Assets檔案夾新建一個Material

-
然后再將該Material改一個喜歡的名字
我是為了專案層次性,先創了個檔案夾,再把它放進去的

-
然后將該Material的Shader設定為Particles/Additive(如果使用unity2020的話,粒子就需要設定為Mobile/Particles/Additive)



-
設定好后,將素材中的灰色小球設定給這個Material

-
回到粒子劃到最后,能看到一個Rnderer的東西,點開

將你設定好的Material添加進去,就可以了
-
在之后的就是細節的調整了
-
滑到最上面
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a93Gsr4V-1629037131476)(C:\Users\Smly\AppData\Roaming\Typora\typora-user-images\image-20210814184454513.png)]
-
Start LifeTime 是粒子生命值
-
Max Particles是粒子數
-
Start Sizes是粒子大小
-
調整粒子發射速率,在下面一個叫做Emission里面,有一個Rate over time 默認值為10,根據效果來調整,沒必要非和老師的一樣
而這個sharp里的angle是調整角度,radius是調整半徑,根據自己喜好來

-
調整漸變色是在Color over Lifetime里面,自己調整,上面最后面的指標調整的是最后粒子的透明度,下面是粒子顏色,指標調整的是粒子所在空間的前后位置

-
然后可以在Size over Lifetime設定粒子的區間大小
需要注意的是,我第一次使用的時候,下面是沒有界面的,只有一個欄,需要我自己把它拉起來,才能調整


4. 給Demo添加背景音效
給游戲添加背景音效是最簡單的

然后同樣的,給臉也這么操作一下,當然記得把默認的對鉤關掉

回頭我們會設定讓南瓜臉等會再出來,然后再讓他笑,這些我們在代碼里設定
5. 淡入淡出
給face物件創建一個C#腳本

輸入腳本名字,點回車

然后點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語言實作小游戲——掃雷
