RemoteFunction

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

遠端功能 對象可以協助在客戶端-伺服器邊界上進行同步、雙向通訊。您可以使用它來定義自訂回呼功能,並手動呼叫 RemoteFunction:InvokeClient()RemoteFunction:InvokeServer() 來執行。呼叫功能 的代碼會持續輸出直到收到來自收件人的回應為止 為了讓服務器和客戶都能存取 RemoteFunction 個體、實例,必須在兩方都能看到它的地方,例如 ReplicatedStorage , 雖然在某些情況下,將它存儲在 Workspace 或內部的 Tool 中也是適當的。

如果結果是 不需要 ,建議您使用 RemoteEvent ,因為它的呼叫是異步的,不需要等待回應繼續執行。請參閱 遠端事件和回呼 以獲得代碼樣本和 RemoteFunction

傳輸注意事項

請注意,如果被呼叫的 RemoteFunction 在服務伺服器上創建實例,在函數返回時沒有保證它存在於客戶端。這在啟用實例 串流 的地方特別重要,當創建的實例是 或 時,因為離玩家角色很遠的部分可能不會傳送到客戶端,而且依賴於部分是否被串流的模型也會依賴於部分是否被串流。即使模型是 Persistent ,創建模型和複製到客戶端之間可能會有一些延遲。

參數限制

任何類型的 Roblox 對象,例如 Enum , Instance , 或其他對象,在呼叫 RemoteFunction 時都可以作為參數傳送,以及 Luau 類型,例如數字、字串和布林,雖然你應該仔細探索 限制

屬性

方法

InvokeClient

暫停

呼叫 RemoteFunction ,進而呼叫 OnClientInvoke 回調。由於此方法用於從伺服器傳送到客戶端通訊,因此只能在 Script 中使用時才能運作。

任何類型的 Roblox 對象,例如 Enum , Instance , 或其他對象,都可以傳送到 InvokeClient() 作為參數,以及 Luau 類型,例如數字、字串和布林,雖然你應該仔細探索 限制

請參閱 遠端事件和回呼 以獲得代碼樣本和有關 RemoteFunction 的進一步細節。

警告

在實務中,伺服器通常不會呼叫客戶端,因為客戶端通常沒有服務器沒有的資訊,並且只有客戶端才能執行的行動,例如顯示 GUI,通常不需要回調。因此,RemoteEvent:FireClient() 建議作為一種異步方法,不需要等待回應繼續執行。

如果您合法需要從伺服器呼叫客戶端,請注意以下風險:

  • 如果客戶端發生錯誤,伺服器也會發生錯誤。
  • 如果客戶在被呼叫時斷開連線,InvokeClient() 將發出錯誤。
  • 如果客戶端沒有返回值,伺服器永遠不會返回。

參數

player: Player

與客戶端相關的 Player 用於呼叫。

預設值:""
arguments: Tuple

值傳送到 OnClientInvoke 回調。

預設值:""

返回

OnClientInvoke 回調中返回的值。

InvokeServer

暫停

呼叫 RemoteFunction ,進而呼叫 OnServerInvoke 回調。因為這個方法用於從伺服器戶端傳送到服務器通信,所以只能在 LocalScript 中使用。

如果返回的結果不需要,建議使用 RemoteEvent:FireServer() ,因為它的呼叫是異步的,不需要等待回應繼續執行。

任何類型的 Roblox 對象,例如 Enum , Instance , 或其他對象,都可以傳送到 InvokeServer() 作為參數,以及 Luau 類型,例如數字、字串和布林,雖然你應該仔細探索 限制

請參閱 遠端事件和回呼 以獲得代碼樣本和有關 RemoteFunction 的進一步細節。

參數

arguments: Tuple

值傳送到 OnServerInvoke 回調。

預設值:""

返回

OnServerInvoke 回調中返回的值。

活動

回調

OnClientInvoke

當使用 RemoteFunction 召喚 InvokeClient() 時,此回呼會被呼叫。當綁定的函數返回時,返回的值將被傳回到呼叫服務伺服器。

請參閱 遠端事件和回呼 以獲得代碼樣本和有關 OnClientInvoke 的進一步細節。

參數

arguments: Tuple

通過 InvokeClient() 傳送的參數。


返回

回應函數返回的值。

OnServerInvoke

當使用 RemoteFunction 召喚 InvokeServer() 時,此回呼會被呼叫。當綁定的函數返回時,返回的值會傳回到呼叫客戶端。

請參閱 遠端事件和回呼 以獲得代碼樣本和有關 OnServerInvoke 的進一步細節。

參數

player: Player

與來自 Player 客戶端的呼叫源相關的 InvokeServer()

arguments: Tuple

通過 InvokeServer() 傳送的參數。


返回

回應函數返回的值。