遠端功能 對象可以協助在客戶端-伺服器邊界上進行同步、雙向通訊。您可以使用它來定義自訂回呼功能,並手動呼叫 RemoteFunction:InvokeClient() 或 RemoteFunction:InvokeServer() 來執行。呼叫功能 的代碼會持續輸出直到收到來自收件人的回應為止 為了讓服務器和客戶都能存取 RemoteFunction 個體、實例,必須在兩方都能看到它的地方,例如 ReplicatedStorage , 雖然在某些情況下,將它存儲在 Workspace 或內部的 Tool 中也是適當的。
如果結果是 不需要 ,建議您使用 RemoteEvent ,因為它的呼叫是異步的,不需要等待回應繼續執行。請參閱 遠端事件和回呼 以獲得代碼樣本和 RemoteFunction。
傳輸注意事項
請注意,如果被呼叫的 RemoteFunction 在服務伺服器上創建實例,在函數返回時沒有保證它存在於客戶端。這在啟用實例 串流 的地方特別重要,當創建的實例是 或 時,因為離玩家角色很遠的部分可能不會傳送到客戶端,而且依賴於部分是否被串流的模型也會依賴於部分是否被串流。即使模型是 Persistent ,創建模型和複製到客戶端之間可能會有一些延遲。
參數限制
任何類型的 Roblox 對象,例如 Enum , Instance , 或其他對象,在呼叫 RemoteFunction 時都可以作為參數傳送,以及 Luau 類型,例如數字、字串和布林,雖然你應該仔細探索 限制 。
概要
方法
呼叫 RemoteFunction ,進而呼叫 OnClientInvoke 回調。
呼叫 RemoteFunction ,進而呼叫 OnServerInvoke 回調。
回調
當 RemoteFunction 被執行與 InvokeClient() 時,呼叫回應。
當 RemoteFunction 被執行與 InvokeServer() 時,呼叫回應。
屬性
方法
InvokeClient
呼叫 RemoteFunction ,進而呼叫 OnClientInvoke 回調。由於此方法用於從伺服器傳送到客戶端通訊,因此只能在 Script 中使用時才能運作。
任何類型的 Roblox 對象,例如 Enum , Instance , 或其他對象,都可以傳送到 InvokeClient() 作為參數,以及 Luau 類型,例如數字、字串和布林,雖然你應該仔細探索 限制 。
請參閱 遠端事件和回呼 以獲得代碼樣本和有關 RemoteFunction 的進一步細節。
警告
在實務中,伺服器通常不會呼叫客戶端,因為客戶端通常沒有服務器沒有的資訊,並且只有客戶端才能執行的行動,例如顯示 GUI,通常不需要回調。因此,RemoteEvent:FireClient() 建議作為一種異步方法,不需要等待回應繼續執行。
如果您合法需要從伺服器呼叫客戶端,請注意以下風險:
- 如果客戶端發生錯誤,伺服器也會發生錯誤。
- 如果客戶在被呼叫時斷開連線,InvokeClient() 將發出錯誤。
- 如果客戶端沒有返回值,伺服器永遠不會返回。
參數
值傳送到 OnClientInvoke 回調。
返回
從 OnClientInvoke 回調中返回的值。
InvokeServer
呼叫 RemoteFunction ,進而呼叫 OnServerInvoke 回調。因為這個方法用於從伺服器戶端傳送到服務器通信,所以只能在 LocalScript 中使用。
如果返回的結果不需要,建議使用 RemoteEvent:FireServer() ,因為它的呼叫是異步的,不需要等待回應繼續執行。
任何類型的 Roblox 對象,例如 Enum , Instance , 或其他對象,都可以傳送到 InvokeServer() 作為參數,以及 Luau 類型,例如數字、字串和布林,雖然你應該仔細探索 限制 。
請參閱 遠端事件和回呼 以獲得代碼樣本和有關 RemoteFunction 的進一步細節。
參數
值傳送到 OnServerInvoke 回調。
返回
從 OnServerInvoke 回調中返回的值。
活動
回調
OnClientInvoke
當使用 RemoteFunction 召喚 InvokeClient() 時,此回呼會被呼叫。當綁定的函數返回時,返回的值將被傳回到呼叫服務伺服器。
請參閱 遠端事件和回呼 以獲得代碼樣本和有關 OnClientInvoke 的進一步細節。
參數
通過 InvokeClient() 傳送的參數。
返回
回應函數返回的值。
OnServerInvoke
當使用 RemoteFunction 召喚 InvokeServer() 時,此回呼會被呼叫。當綁定的函數返回時,返回的值會傳回到呼叫客戶端。
請參閱 遠端事件和回呼 以獲得代碼樣本和有關 OnServerInvoke 的進一步細節。
參數
與來自 Player 客戶端的呼叫源相關的 InvokeServer() 。
通過 InvokeServer() 傳送的參數。
返回
回應函數返回的值。