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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Unity3D插件】VOXL插件分享《多人沙盒游戏插件》

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Unity3D插件】VOXL插件分享《多人沙盒游戏插件》 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

推薦閱讀

  • CSDN主頁
  • GitHub開源地址
  • Unity3D插件分享
  • 簡書地址
  • 我的個(gè)人博客
  • QQ群:1040082875

一、介紹

今天給大家介紹一款簡單而又強(qiáng)大的多人沙盒游戲開發(fā)插件VOXL。

VOXL是一款簡單且易于理解的多重體素沙盒游戲,使用Unity的UNET網(wǎng)絡(luò)系統(tǒng)開發(fā)。

由于服務(wù)器和客戶端是一體的,所以我們不用再費(fèi)心搭建服務(wù)器,會(huì)大大提高我們的開發(fā)效率。

VOXL目前只包含大約2500行干凈、優(yōu)雅和易于理解的源代碼。

效果圖:









Demo體驗(yàn)地址:

https://noobtuts.com/_builds/unity-VOXL/

二、下載地址

官方下載地址(已經(jīng)下架):
https://assetstore.unity.com/packages/templates/systems/voxl-multiplayer-voxel-sandbox-75829

CSDN下載:
https://download.csdn.net/download/q764424567/13116891

Github下載:
https://github.com/764424567/Unity-plugin/tree/master/Menu/Unity3D-VOXL

三、快速啟動(dòng)

(1)安裝并打開Unity
(2)導(dǎo)入插件包,并打開World場(chǎng)景文件。

(3)在編輯器中按Play鍵,選擇Server & Play開始游戲。

(4)你也可以運(yùn)行另一個(gè)版本,輸入一個(gè)不同的用戶名,然后按Login查看多人游戲的運(yùn)行情況

四、體系結(jié)構(gòu)概述

VOXL是為用戶修改而設(shè)計(jì)的。下面是代碼和架構(gòu)的快速概述:

  • NetworkManagerSandbox服務(wù)器管理,存在于層次結(jié)構(gòu)中。它用于登錄/加入游戲,啟動(dòng)/停止服務(wù)器。
  • UI ,Canvas包含所有UI元素,每個(gè)元素都有一個(gè)腳本,比如獲取當(dāng)?shù)赝婕业纳怠⒛Хㄖ档葼顟B(tài)。
  • WorldGenerator,世界生成器存在于場(chǎng)景中并生成游戲最初的世界。它對(duì)每個(gè)位置采樣,根據(jù)柏林噪聲函數(shù)運(yùn)行結(jié)構(gòu)生成像素世界因?yàn)槭莻坞S機(jī)的,這意味著相同的種子會(huì)產(chǎn)生每次都是同樣的地形。
  • 有幾個(gè)像素預(yù)制體,玩家摧毀像素預(yù)制體會(huì)掉落材料,玩家可以從上面走過去收集
  • VoxelDrops立體像素是掉落在地上的小立方體,玩家可以收集小立方體收集,這將添加一個(gè)立方體個(gè)數(shù)到玩家的背包中。
  • 玩家會(huì)生成一個(gè)實(shí)例,用來保存屬性如冷卻時(shí)間、數(shù)量等。
  • ItemTemplate數(shù)據(jù)模板通常存儲(chǔ)在數(shù)據(jù)庫中。多虧了Unity 腳本組件功能,我們可以在檢查器中編輯它們。可以在“Resources”文件夾中找到和修改模板。
  • 玩家(以及后來的怪物和npc)都會(huì)繼承實(shí)體。實(shí)體擁有普通屬性,如生命值、法力、傷害、防御。
  • 為了提高性能,會(huì)把世界幾個(gè)部分并根據(jù)周圍的玩家隱藏/顯示它們。

如果感興趣的話,可以看代碼的實(shí)現(xiàn)過程,代碼中有很多的注釋,可以用來學(xué)習(xí)。

五、理解無限世界生成原理

以下是無限世界生成的工作原理:
(1)使用柏林噪聲函數(shù)產(chǎn)生二維噪聲,類似于舊電視上的靜電噪聲。

(2)使用二維柏林噪音函數(shù)循環(huán)生成三維地形,在給定范圍內(nèi)遍歷每一個(gè)x、z坐標(biāo),然后將預(yù)制體填充到這個(gè)范圍內(nèi)的所有方塊。我們只計(jì)算當(dāng)前坐標(biāo)內(nèi)的所有位置,而不進(jìn)行無限生成,因?yàn)橥婕以诓槐寂艿臅r(shí)候就沒有比較生成無限的世界。

(3)柏林噪聲本身是相當(dāng)枯燥的地形。我們將幾個(gè)不同頻率和振幅的柏林噪聲函數(shù)相加,得到更有趣的結(jié)果。這也被稱為八度音階。

(4)然后我們根據(jù)給定位置的八度音節(jié)結(jié)果決定使用哪種體素類型,例如如果 小于0.5,我們可以用水填充它,小于0.7用泥土填充它,大于0.7用石頭填充或者其他更大的東西。這被稱為閾值設(shè)定。

(5)同時(shí)產(chǎn)生一個(gè)無限的世界是不可能的。WorldGenerator組件只生成有用的部分。
我們創(chuàng)建了一個(gè)像素預(yù)測(cè)函數(shù),它可以通過使用八度音節(jié)來預(yù)測(cè)任何給定3D位置的像素類型。
這個(gè)函數(shù)不會(huì)加載任何東西到游戲世界中。
我們還創(chuàng)建了一個(gè)像素生成函數(shù),為給定的3D位置生成預(yù)測(cè)的體素。這個(gè)函數(shù)確實(shí)將體素加載到世界中。
然后也不能一直調(diào)用而不受限制,這個(gè)辦法就是生成一層包圍的區(qū)域,WorldGenerator組件將玩家周圍的區(qū)域分割成塊,然后每個(gè)塊的每個(gè)位置調(diào)用VoxelGenerate,也就是生成像素塊

(6)樹木和建筑物不能產(chǎn)生柏林噪聲,我們?cè)谏伤邢袼睾笫謩?dòng)將它們生成到每個(gè)塊中。
注意:世界生成是偽隨機(jī)的。換句話說:它看起來是隨機(jī)的,但它總是基于種子。我們永遠(yuǎn)會(huì)因?yàn)橐涣7N子而得到完全相同的世界。這真的很整潔,因?yàn)槲覀兛梢酝ㄟ^保存種子來拯救整個(gè)世界,而且我們可以很容易地通過詢問用戶他們的世界種子來調(diào)試故障。

六、腳本文件分析

Chunk.cs
將世界分為幾個(gè)大塊,將所有包含像素,設(shè)置為活躍/不活躍(如果它們不在玩家的范圍內(nèi))的區(qū)域。我們需要分成塊來極大地提高性能。
Database.cs
保存XML文件中的字符數(shù)據(jù)和二進(jìn)制文件中的世界數(shù)據(jù)。位置在"Database/Account/Character"文件。
DefaultVelocity.cs
設(shè)置開始時(shí)剛體的速度。
DestroyAfter.cs
在一段時(shí)間后銷毀游戲片段。
DetectFocus.cs
將此腳本添加到攝像機(jī)(或類似的)以檢測(cè)游戲窗口焦點(diǎn)。
Entity.cs
實(shí)體類是所有像玩家一樣的東西的基類,比如NPC,怪物。

七、功能介紹

  • 完全基于Unity + UNET環(huán)境部署為基礎(chǔ)
  • 客戶端和服務(wù)器的腳本在一起
  • 無限大的世界
  • 通過Perlin生成噪聲過程
  • 結(jié)構(gòu)產(chǎn)生:樹木等。
  • 100%模仿隨機(jī)
  • 第一人稱運(yùn)動(dòng)
  • 玩家的生命值、傷害、防守等。
  • Voxel放置和銷毀
  • 手動(dòng)加工制作模式
  • 動(dòng)態(tài)加載
  • 通過局部遮擋高度優(yōu)化
  • 通過協(xié)同線進(jìn)行平穩(wěn)的世界(UN)裝載
  • 數(shù)據(jù)庫保存玩家和世界數(shù)據(jù)
  • 使用Unity的新UI系統(tǒng)
  • 美麗的紋理
  • 英語、語音、信息聊天
  • 物品及物品掉落
  • 只有2600行精心制作的C#代碼
  • 服務(wù)器可以在Linux上以Headless模式運(yùn)行
  • 登錄面板
  • 以主機(jī)/玩家/特殊身份開始游戲
  • 網(wǎng)絡(luò)時(shí)間同步
  • 平臺(tái)獨(dú)立
  • 沒有矛盾和競(jìng)爭對(duì)手

總結(jié)

以上是生活随笔為你收集整理的【Unity3D插件】VOXL插件分享《多人沙盒游戏插件》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。