發(fā)布時間:2024-04-08 10:57:44 瀏覽量:229次

(圖片源于網(wǎng)絡,侵刪)
ps:周五給大家推薦一款利用Unity3D引擎開發(fā)的游戲,簡單易學, 文末有領取方式喔~
提到游戲開發(fā)人們的腦海中浮現(xiàn)的要么是一個程序員孤軍奮戰(zhàn)的身影,要么是在發(fā)行商贊助下成立的游戲開發(fā)公司。今天呢就和大家分享零基礎如何利用Unity3D引擎開發(fā)一款第一人稱射擊單機小游戲。
1
簡單介紹一下unity3D,它是由Unity Techologies開發(fā)的一款游戲開發(fā)引擎,也是目前手機游戲和虛擬仿真領域最活躍、最易用的開發(fā)工具。近年來隨著移動平臺擴張的東風,Unity幾乎成為了整個游戲以及虛擬仿真領域的行業(yè)標準。

其編輯器運行在Windows 和Mac OS X下,可發(fā)布游戲至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平臺。也可以利用Unity web player插件發(fā)布網(wǎng)頁游戲,支持Mac和Windows的網(wǎng)頁瀏覽。它的網(wǎng)頁播放器也被Mac 所支持。

(如國名手游王者榮耀就是采用unity開發(fā))
2
基于Unity3D和C#腳本開發(fā)的一款FPS射擊類游戲。大概劇情就是玩家可以利用手中的散彈槍擊殺暴走的機器人,且需要在規(guī)定的時間內(nèi)在地圖內(nèi)尋找到“真實的鑰匙”,如果時間耗盡或者被機器人擊殺則游戲失敗。

(隨便弄的初始界面好吧我知道很丑)
邏輯流程圖:

游戲主要功能描述:
界面部分:主要為登陸游戲界面制作。
地形部分:主要為人物模型以及游戲場景地形
粒子特效火焰粒子特效、爆炸粒子特效
音效:開槍音效、背景音樂、爆炸音效
動作控制:玩家的前進后退左轉右轉子彈發(fā)射

3
Unity3D與Xml的交互
單機小游不需要數(shù)據(jù)庫,通過自定義一個Xml儲存數(shù)據(jù)。以登錄界面的設計為例:
這是一個名為UserInfo的內(nèi)容
<?xml version=”1.0”encoding=”UTF-8”standalone=”no”?>
<users>
<users1 姓名=”張三” 密碼=”123”>我是張三</user1>
<users2 姓名=”李四” 密碼=”123”>我是李四</user2>
上面的Xml有兩層,父節(jié)點叫users,子節(jié)點有兩個,分別為user1和user2,每個節(jié)點有兩個屬性,姓名和密碼。每個節(jié)點有一段文字內(nèi)容,要求能夠讀取每個節(jié)點的名稱內(nèi)容和屬性,并且能夠添加節(jié)點和屬性。
這是一個操作Xml讀取的類,默認繼承Object,這個類里面主要有三個函數(shù)
Load(string filePath):通過文件路徑來加載Xml的文件內(nèi)容
LoadXml(string xmlFile):通過加載Xml文件內(nèi)的文本內(nèi)容加載Xml。
GetRootNode():用來獲取Xml的根節(jié)點,有了這個根節(jié)點,就可以訪問每一個子節(jié)點。
代碼如下:
using System;
using System.IO;
using System.Xml;//添加命名空間
publc class ReadXmlFile
{
XmlDocument xmlDocument;
Public ReadXmlFilet()
{
xmlDocument = new XmlDocunment();
}
///<summary>
///通過文件路徑導入Xml文件,用于單機版
///<summary>
Public bool Laod(string filePath)
{
xmlDocument.Load(filePath);
return true;
}
///<summary>
///通過加載XML文本內(nèi)容加載Xml,用于網(wǎng)頁版
///<summary>
Public bool LoadXml(string xmlFile)
{
xmlDocument.LoadXml(xmlFile);
return true;
}
//獲取根節(jié)點
Public XmlElement GetRootNode()
}
Return xmlDocument.DocumentElement;
}
建立一個UI界面,如圖為一個簡單的登陸界面

(我知道界面很丑!重要的是學習方法?。?/span>
將Xml文件加載進來的代碼如下:
readXmIFile=new ReadXmlFile();
//發(fā)布為EXE訪問本地Xml的時候使用這種加載方式,這種方式發(fā)布網(wǎng)頁不支持。
readXmlFile.Load(Application.dataPath+”/Data/Xml/UserInf
開始登陸驗證,首先判斷是否存在這個用戶,如果存在獲取這個Xml節(jié)點,將節(jié)點密碼這個屬性與用戶輸入的屬性進行比較,相同則登陸成功,否則失敗。
部分代碼如下
Void OnGUI()
{
GUI.matrix=Matrix4x4.TRS(Vector3.zero,Quaternion.identity,new Vector3(GUIR.wscale,GUIRoot.hscale,I));
windowRect = GUI.WindowRect,DoMyWindow,””);
)
Void DoMy Window(int windoeID)
{
GUI.Label(new Rect(100,5,100,50),”登錄驗證”,labeIStyle);
GUI.Label(new Rect(40,65,60,40),”用戶名”,labeIStyle);
name=GUI.TextField(new Rect(105,75,100,20),name,15);
GUI.Label(new Rect(40,130,60,60),”密碼”,labeIStyle);
pwd=GUI.TextField(new Rect(105,145,100,20),pwd,15);
if(GUI.Button(new Rect(100,200,100,40)”Login”))
{
}
}
粒子特效實現(xiàn)
射的火焰,滾滾的濃煙、螢火蟲、雨、霧或者你可以想到的其他任何效果,這些效果通常稱為粒子效果(particle effect)這里主要講述的是槍支射擊火焰效果的實現(xiàn)。
首先導入槍支模型,為了增加真實性。在槍口位置設置一個子物體,其子物體展示粒子效果(GameObject——ParticleSystem)其粒子效果充當火焰特效。

游戲粒子效果如圖所示:

動畫的運用
基本知識
動畫是預制的可視動作集,在2D游戲中,這涉及具有多福順序的圖像,并且可以非常快的翻轉他們,結果就是對象看似在移動。這種效果類型于老式的翻轉書,3D世界里的動畫有很大的差別。在3D游戲中,使用模型來表示游戲實體,不能簡單地在模型只見切換,以提供運動的幻覺。
Animation運用
射擊及換子彈動畫的實現(xiàn),首先在Unity Asset Store中下載所需的模型并導入,動畫通常是作為模型的一部分出現(xiàn)的,Animations選項卡中包含管理內(nèi)置的動畫所需的所有屬性和控制選項。
將動畫拖到Animation組件的Animations屬性上,把它們應用于模型,這樣使動畫可供模型使用,但是不會實際的創(chuàng)建模型的動畫,在多個動畫間的切換通過腳本完成,C#腳本如下:
void Start ()
{
aui = this.GetComponent<AudioSource>();//獲取AudioSource的組件
A = Q.GetComponent<Animation>();//獲取Animation的組件
}
void Update ()
{
if (!A.IsPlaying ("Gun02Reload"))
{
if (Input.GetMouseButtonDown (0)&&IsAttck==true )
{
Zcount++;//計算子彈個數(shù)
if (Zcount==5) {
A.Play("Gun02Reload");
Zcount = 0;
} else {
A.Play("Gun02Shoot");
}//判斷播放動畫
IsAttck = false;//禁止開槍
Invoke ("OnAttck", 1.2f);//通過延遲12S允許開槍
aui.clip = G;
aui.Play();//播放開槍音效
L.transform.gameObject.SetActive(true );//火焰粒子效果開啟
Invoke ("OFFL", 0.1f);//通過0.1S延遲關閉粒子效果
GameObject xx = Instantiate(XX);//“克隆”子彈預制件
xx.transform.position = came .transform.position;//為“克隆”的子彈賦予初始位置
xx.GetComponent<Rigidbody>().velocity = came .transform .TransformDirection (Vector3.forward) * speed;
//為子彈添加方向與力
Destroy(xx,2f);//兩秒后自動銷毀子彈
}
}
}
void OFFL(){
L.transform.gameObject.SetActive(false);
}
void OnAttck(){
IsAttck = true;
}
觸碰效果的應用
首先我們要制作一個玩家需要去收集的物體,從Assert store下載并導入一3D模型。如圖導入的一個書本模型:

然后為了讓它能夠和玩家物體發(fā)生交互,我們將為它添加一個原型碰撞器。點擊菜單Component——Physice——Box Collider 因為我們不希望玩家在收集它的時候突然撞上去然后停止運動,所以我們將它的碰撞器設置為觸發(fā)模式,在組件中勾起Is Trigger。

部分C#腳本如下:
void OnTriggerEnter(Collider col)//Player觸發(fā)事件
{
if (col.transform.tag == "DIR")//假如觸發(fā)對象的tag為“DIR”(敵人)
{
f -= 0.1f;//每攻擊一次減少0.1
S.value = f;
if (f<= 0)//血量小于等于0
{
this.transform .gameObject .SetActive (false );//關閉玩家本身
TT.fontSize = 60;//
TT.text = "你輸了!!!";
Time.timeScale = 0;//暫停游戲所有運行
}
}
if (col.transform.tag =="B1")//當觸發(fā)對象的tag為“B1”
{
tis.transform.gameObject.SetActive(true);
tis.text = "一頁殘卷";
Invoke("ZanT",1);//通過1S延遲關閉UI的TXT顯示
aui.clip = ZHH;
aui.Play();
}
if (col.transform.tag == "B2")//當觸發(fā)對象的tag為B2”“
{
G1++;
tis.transform.gameObject.SetActive(true);
tis.text = "真實鑰匙";
Invoke("ZanT", 1);//通過1S延遲關閉UI的TXT顯示
aui.clip = ZHH;
aui.Play();
}
}
void ZanT()
{
tis.transform.gameObject.SetActive(false );
}

(游戲運行的截圖)
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設計領域和數(shù)字藝術教育的重要性,歡迎點擊咨詢報名。
2. 手機游戲如何開發(fā)(如何制作傳奇手游,都需要準備些什么?)
?如何制作傳奇手游,都需要準備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時代在進步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費、一鍵制作炫酷特效,適合新手小白。快來試試!
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結局,不限主線發(fā)展,高自由...
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應并不會推出《巫師4》。因為《巫師》系列在策劃的時候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
6. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當提到3D動畫軟件或動畫工具時,指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
想讓你的3D打印模型更堅固?不妨嘗試一下Cura參數(shù)設置和設計技巧,讓你輕松掌握!
8. 虛幻引擎5節(jié)省存儲空間用這招!緩存的清理與設置
眾所周知,虛幻引擎5(下面簡稱UE5)特別占用存儲空間,僅一個版本安裝好的文件就有60G,這還不包括我們在使用時保存的工程文件和隨之產(chǎn)生的緩存文件。而...
9. Bigtime加密游戲經(jīng)濟體系揭秘,不同玩家角色的經(jīng)濟活動
Bigtime加密游戲經(jīng)濟模型分析,探討游戲經(jīng)濟特點,幫助玩家更全面了解這款GameFi產(chǎn)品。
10. 3D動漫建模全過程,不是一般人能學的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準備設計圖片,我從雕刻進入。這一次,它將是一種純粹關注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
最新文章
同學您好!