日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3D游戏开发套件指南(入门篇)

發布時間:2024/8/26 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3D游戏开发套件指南(入门篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天將介紹最新的3D游戲開發套件。不論是使用2D還是3D游戲開發套件,都可以在不編寫任何代碼的情況下,通過設置與拖放便能快捷的實現游戲創意。
?


指南簡介

本指南將引導開發者設置一個空的場景,使用3D游戲開發套件開始創建新的關卡。 這將幫助開發者了解如何使用游戲開發套件創建游戲。3D游戲開發套件中已經包含一個完整的游戲, 其中包含本開發套件中所有功能的相關示例。

你可以訪問Asset Store資源商店下載3D游戲開發套件:

創建新場景

首先我們創建一個新場景。3D游戲開發套件中已含有一個工具可以自動創建一個新的默認場景,其中包含我們的英雄Ellen和移動、攻擊所需要的元素以及地面元素。

點擊Unity瀏覽器頂部菜單Go to Kit Tools (訪問套件工具),選擇Create New Scene(創建新場景)。
?


輸入新場景名稱。
?


點擊創建,新創建的場景中,將包含:地面,Ellen、UI元素和游戲菜單。
?


點擊編輯器頂部菜單Play(播放)按鈕。
?


我們的玩家角色Ellen控制方式如下。
?


添加移動平臺

我們將為場景添加移動平臺。所有可交互對象都能在項目的Prefabs > Interactables目錄中找到。

添加MovingPlatform的步驟如下:
?

  • 找到項目窗口,打開Assets > 3DGameKit > Prefabs > Interactables。
  • 左鍵單擊并拖拽MovingPlatform 對象到場景視圖中。


?

  • 使用Transform工具來將平臺平移(W)、旋轉(E)和縮放(R)到合適的位置。


?

  • 在編輯器頂部點擊Play。



MovingPlatform 目前是靜止的。我們要讓它動起來:
?

  • 在場景視圖中的MovingPlatform 上找到End Point(終點)工具。


?

  • 查看檢視窗口。
  • 找到Simple Translator 組件。
  • 使用Preview Position (預覽位置)上的滑塊來查看平臺的移動位置。


?

  • 在Simple Translator 組件,勾選Activate。


?


點擊Play,MovingPlatform 將向上移動,并在到達設定路徑頂端時停下。

我們要讓這個平臺來回移動,首先選中MovingPlatfrom :
?

  • 查看檢視窗口,找到Simple Translator 腳本。
  • 將Loop Type(循環模式)設為Ping Pong(乒乓球模式)。


?


點擊Play,MovingPlatform 會向上移動到頂部再向下移動。它會移動到任意被設定為End Point的位置。

使用指令開門

在3D游戲開發套件中,游戲指令(Game Commands)能發送信號給Unity中的其它對象,讓它們執行動作。

在這里我們將使用壓力板(Pressure Pad)來打開一扇門。首先添加門對象到場景中:
?

  • 在項目窗口中,打開Prefabs > Interactables。
  • 找到DoorSmall 并拖入場景視圖中。


?


對象上會有很多輔助圖示。我們可以通過調整讓對象上只顯示用于操作物體或者放置物體的Transform工具。

在層級窗口選中DoorSmall對象,查看檢視窗口。
?

  • 點擊Simple Translator組件上的箭頭圖標,折疊組件信息。
  • 這樣就只會顯示對象的Transform工具,使用Transform工具來放置DoorSmall 對象。


?


現在我們添加壓力板:
?

  • 在項目窗口中,打開Prefabs > Interactables。
  • 找到PressurePad 對象并點擊拖入場景視圖中。
  • 使用Transform工具將其放到門口附近。


?


現在將PressurePad和DoorSmall連接起來,從而在Ellen踩到壓力板的時候,大門會打開。
?

  • 在層級窗口點擊選中PressurePad對象。


?

  • 在層級窗口中,點擊拖拽DoorSmall對象到PressurePad對象上Send on Trigger Enter 組件的Interactive Object(交互對象)屬性欄中。


?


這時在場景視圖中,會出現一個白色帶箭頭的線,顯示PressurePad和DoorSmall之間的連接關系。
?


點擊Play,當Ellen踩上壓力板時,壓力板會發光,下降并使門口打開。

敵人對象

在開發套件中,有三個預制敵人對象Chomper、Spitter和Grenadier。它們可以在Prefabs > Characters > Enemies > […..]目錄下找到。

Chomper是個近戰敵人;Spitter是遠程敵人,能造成遠距離傷害;Grenadier是Boss級敵人,有著特別的攻擊模式,混合著遠程傷害、近戰傷害和盾形防御三種行動方式。
?


首先將Chomper放入場景中,與Ellen交戰:
?

  • 在項目窗口中,打開Prefabs > Characters > Enemies > Chomper。
  • 將Chomper拖入場景視圖中。
  • 使用Transform工具來移動Chomper的位置。


?


在Chomper前會出現一個大型深藍色半圓,這是它的探測半徑(Detection Radius)。當Ellen走入這個區域中時,Chomper會追逐并攻擊Ellen。

現在我們減少Chomper的視野區域,在層級窗口中選中Chomper對象。
?

  • 在檢視窗口中,找到Chomper Behaviour 組件。
  • 點擊Player Scanner (玩家掃描器)旁的小箭頭展開它。


?

  • 將Detection Radius的數值設為3。


?


現在要讓Chomper只能看到前方的物體:
?

  • 拖動Detection Angle(探測角度)滑塊,二手手游賣號平臺將數值設為180。


?


現在Chomper只能看到它前方的物體,能看到的距離也更短了。
?


注意:如果想要從場景視圖中移除這個輔助圖示,折疊Chomper Behaviour 組件即可。
?

  • 點擊Play,讓Ellen在Chomper附近奔跑。


?


Chomper會探測到Ellen,但只會原地跑動。我們要告訴Chomper它所能移動的地方,于是我們加入NavMesh Surface(尋路網格面)。
?

  • 在層級窗口中點擊Plane對象。


?

  • 在檢視窗口中,點擊Add Component,搜索NavMeshSurface。


?

  • 在腳本上點擊鍵盤的回車鍵,添加組件到Plane對象上。
  • 找到NavMesh Surface組件,設置Agent Type(代理類型)為Chomper(這對所有敵人類型都適用)。
  • 設置Include Layers(包含圖層 )為Nothing(無),選擇Environment(環境),選擇Vegetation(植被)。


?

  • 在NavMesh Surface 組件底部,點擊Bake(烘焙)。



這時會在地面上出現一個淺藍色表面,它指明場景中的敵人所能移動的位置。

點擊Play,移動到Chomper面前,Chomper現在會追著你并進行攻擊,左鍵點擊并使用道具進行攻擊。
?


Chomper會在受到一次攻擊后死亡。如果想要提高攻擊次數:
?

  • 在層級窗口中,選中Chomper。
  • 在檢視窗口找到Damageable組件。
  • 根據你想要Chomper死前所能承受的傷害,提高Max Hit Points(生命值上限)。Ellen的道具每次造成一點傷害。



造成對象傷害

我們可以使用接觸傷害源(Contact Damager)組件來對擁有Damageable 組件的對象造成傷害。

在此使用一個箱子和Chomper進行演示:
?

  • 在項目窗口中,打開Prefabs > Interactables。
  • 找到DestructibleBox 預制件,點擊拖入場景視圖中。
  • 使用平移工具將箱子放在Chomper上方。



點擊Play,箱子會下落到在Chomper上,然后呆在那里,什么都沒發生。
?


注意:不要離Chomper太近,否則它會追逐Ellen。你可以降低它的探測半徑為0。
?


我們想要箱子在砸到Chomper時造成傷害。
?

  • 在層級窗口中點擊DestructibleBox 旁的箭頭,展開其子對象。
  • 選中DestructibleBox子對象。


?

  • 查看檢視窗口移至檢視窗口底部,點擊Add Component,搜索Box Collider。
  • 按下鍵盤上的回車鍵或是點擊Box Collider組件將其添加到DestructibleBox對象上。
  • 在Box Collider組件上,勾選Is Trigger 屬性。


?

  • 點擊Add Component,搜索Contact Damager(接觸傷害源)。
  • 點擊鍵盤上的回車鍵或是點擊Contact Damager腳本將其作為組件加入對象。
  • 在Contact Damager組件上,將Amount(傷害量)設為3,要注意傷害量必須與Chomper的Max Hit Points數值相等,從而使Chomper受到足夠的傷害。本例中我們設為3,請記得檢查Chomper的Damageable 組件上的Max Hit Points。
  • 設定Damaged Layers (傷害圖層)為Enemy。


?


按下Play,箱子會落到Chomper上,Chomper會丟失生命值,然后轉變為布娃娃(ragdoll)狀態,而箱子則會彈開。
?


我們已經成功對Chomper造成足夠傷害并擊殺,但這個效果看起來不夠好。我們可以讓箱子在砸中Chomper時裂開。箱子上已經有接觸傷害源,所以我們要對其進行調整使它也會影響箱子自身。
?

  • 查看層級窗口,找到Chomper并選中。
  • 查看檢視窗口,點擊Add Component ,搜索Contact Damager。
  • 按下鍵盤上的回車鍵或點擊腳本名,將其添加到Chomper上。
  • 在Contact Damager組件上將Amount 設為1。
  • 在Damaged Layer屬性下拉列表中選中Enemy。


?


按下Play箱子會砸到Chomper上,并在碰撞時破裂,讓Chomper丟失所有生命值并轉為布娃娃狀態。
?


裝飾

在開發套件中,我們提供了在構建示例游戲中所使用的所有環境對象,它們被分散到多個不同資源類型的文件夾中。請查看這些文件夾,開始構建出自己的場景,你可以在Prefabs > Environment > [….]目錄下找到它們。

你會創建出怎樣的世界呢?
?


我們需要為敵人對象重新烘焙NavMesh,使它們知道哪些是新增的可移動平面,或是讓它們知道要避免哪些對象,例如:大型植物。
?

  • 在層級窗口中選中Plane。
  • 查看檢視窗口,在NavMesh表面點擊Bake。


?


石塊和植被繪畫器

為了進一步裝扮場景,我們創建了一個石頭繪畫器和植被繪畫器。這些工具能讓你以多種大小和旋轉方向放置植被和石塊,并使它們與所放置的平面對齊。

如果要使用這些工具,在層級窗口找到VegetationPainter,點擊小箭頭來展開子對象。
?


點擊GroundCover,將鼠標移到場景視圖中的平面上,左鍵點擊放置一些草被或睡蓮。
?


你可以修改放置對象的類型,查看檢視窗口在Instance Painter組件中,有繪畫器中每個預制件的圖片。
?


點擊白色高亮方框,選中要繪制的預制件,被選中的預制件會變為灰色。

我們可以在Instance Painter組件頂部的方框中找到繪畫器的操作說明,這里介紹一些簡單操作:
?

  • 左鍵點擊 = 繪圖
  • Ctrl (Cmd) + 左鍵點擊 = 刪除
  • Alt + 滾輪 = 調整筆刷大小
  • 空格鍵 = 隨機設置位置和旋轉角度



我們繪制的任意對象會保存為子對象。例如:查看層級窗口,展開GroundCover。所繪制的類型對象都會保存其為子對象。我們可以點擊它們來單獨編輯和放置。
?


這個過程和繪制VegetationSmall、VegetationMedium和VegetationLarge的過程一致。
?


我們可以用同樣的方法繪制石塊,在層級窗口中找到RockPainter,點擊小箭頭展開子對象,點擊RocksSmall,將鼠標移動到想要的位置并點擊左鍵放置石塊。
?


傳送玩家

在3D游戲開發套件中,我們有一個傳送系統。可以將Ellen傳送到其它關卡,或是場景中的不同位置。

首先在場景中創建傳送器,在項目窗口中,打開Prefabs > Structures找到GateWayHugeTeleporter。

從名字可以看出這個入口很大:
?

  • 使用縮放工具和平移工具定位并縮放這個對象為Ellen的大小。
  • 在層級窗口中展開GatewayHugeTeleporter ,暴露其子對象,選TeleportPlane。
  • 查看檢視窗口,點擊Add Component,搜索BoxCollider。
  • 按下鍵盤上的回車鍵或是點擊BoxCollider 來添加組件到TeleportPlane對象上。
  • 在Box Collider 組件上勾選Is Trigger。


?

  • 點擊Add Component,搜索Teleporter。
  • 按下回車鍵或是點擊Teleporter腳本來將其添加到TeleportPlane對象上。


?

  • 在Teleporter 組件上,將Layer(圖層)改為Player(玩家)。
  • 在層級窗口上,找到Checkpoints對象。
  • 點擊Checkpoint 對象旁邊的箭頭展開其子對象。


?

  • 在層級窗口選中TeleporterPlane 。
  • 將子對象Checkpoint對象拖入Teleporter 組件的Destination Transform屬性欄。
  • 在層級窗口找到并展開Ellen,顯示其子對象,找到RespawnParticles對象。


?

  • 在層級窗口上選中GateWayHugeTeleporter 。
  • 將RespawnParticles 拖到Teleporter組件的Enter Effect(進入特效)屬性欄中。
  • 將RespawnParticles 拖到Teleporter組件的Exit Effect (離開特效)屬性欄中。
  • 按下Play并測試,讓Ellen跑到傳送器中。


?


在通過傳送器時,Ellen會傳送到最初的出生點,并會出現藍色的粒子包圍著她。

小結

在3D游戲開發套件中的多數對象會使用類似壓力板功能的事件系統。我們可以探索Scenes > GamePlay 中的已有場景,了解其它對象在第一關和第二關是如何使用指令系統設置的。

今天的3D游戲開發套件指南入門篇就為大家介紹到這里,后續我們會分享相關套件的進階開發篇,盡請期待,希望開發者能使用游戲開發套件盡情享受游戲設計的快樂!

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的3D游戏开发套件指南(入门篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。