如何切換玩家控制的角色

功能效果展示

 

運行環境

Win7,Win8,Win10

Reworld版本 體驗版

vc_redist.x64 運行環境

 

針對零基礎讀者的補充

下載安裝 Reworld對應版本

Reworld官網鏈接http://www.reworlder.com/

Reworld創作者之家論壇:http://bbs.reworlder.com

下載後安裝後註冊賬號打開空地圖

下載安裝 vc_redist.x64.rar運行環境

redist.x64下載鏈接

 

思路分析

想要切換玩家控制的角色,我們首先要預創建一個新角色,在觸發了某個事件後,在出生點加載這個新角色,就能做到切換角色的效果了。

 

功能搭建

一、角色搭建過程

工作區內創建一個新的角色。如下圖所示:

 

二、切換新角色功能搭建過程

1.在工作區下創建一個零件,重命名爲切換新角色,爲了方便區分,修改顏色爲紅色。如下圖所示:

2.在零件下創建一個服務器腳本。如下圖所示:

編寫服務器腳本如下:

local part = script.Parent
local LoadAva = WorkSpace.女孩--準備要拷貝的角色avatar
 
part.TriggerEnter:Connect(function(hit)--角色觸碰零件時
  if hit:IsClass("Avatar") then 
    local player = Players:GetPlayerByUserId(hit.PlayerId) 
    player:LoadCharacter(LoadAva) --在出生點加載角色,如果填寫了函數參數,則加載指定的Avatar對象,反之加載玩家初始化下的角色。
  end
end)

 

三、換回老角色功能搭建過程

1.在工作區下創建一個零件,重命名爲換回老角色,爲了方便區分,修改顏色爲藍色。如下圖所示:

2.在零件下創建一個服務器腳本。如下圖所示:

編寫服務器腳本如下:

local part = script.Parent 
part.TriggerEnter:Connect(function(hit)--角色觸碰零件時
  if hit:IsClass("Avatar") then 
    local player = Players:GetPlayerByUserId(hit.PlayerId) 
    player:LoadCharacter() --括號裏不填新的角色,就是加載默認的角色,位置是出生點,沒有出生點就是到00點
  end
end)

 

補充說明

1.什麼是工作區?

工作區中的對象是會被可視化顯示到3D場景中的,並且只有在工作區中的對象纔會發生物理交互。

 

2.什麼是服務器腳本?

只會在服務器運行的Lua腳本代碼,用於編寫服務器邏輯。

 

4.爲什麼要使用服務器腳本?

服務器腳本與客戶端腳本不同,客戶端執行的操作只有本地客戶端,也就是玩家自己有效。而服務器執行的操作不僅針對單人有效,還針對與服務器相連的所有客戶端同步生效。
在多人遊戲中,如果這個對象的變化是針對一個人的,必須在客戶端腳本進行編寫;如果這個對象的變化是針對所有人的,那就必須在服務器腳本進行編寫。
對於只能在客戶端腳本修改的對象,如何讓服務器知曉變化結果是很重要的。這裏採用傳統遊戲的製作流程,也就是在客戶端進行修改,把修改後的結果通過與服務器通信的方式發送到服務器,再通過服務器進行邏輯運算,把執行結果再同步給所有客戶端。


 

好了,接下來我們開始遊戲,觸碰到紅色塊我們就會切換到一個新角色,觸碰到藍色塊我們就會換回我們的老角色啦。如果有什麼問題或者有更好的實現方式,大家可以在下方積極交流討論,我們也會參與進來和大家一起分享經驗,期望能和大家共同進步~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章