| Unity uClientCore > RemoteClientManager |
RemoteClientManager(client)
| getAttributeForClients(clientList, attributeScope, attributeName) | Returns the value of the attribute specified by attributeScope and attributeName for all clients in clientList, which must be an array of client IDs. |
| getClient(clientID) | Returns the specified RemoteClient instance, or null if the client specified isn't found. |
The RemoteClientManager class provides access to RemoteClient instances, which store:
When the current client joins a room, the RemoteClientManager automatically adds a RemoteClient instance for each client in the room at the time of entry. All shared client attributes for each RemoteClient are populated at room-entry time. As clients enter and leave rooms, Unity automatically updates the RemoteClients stored by the RemoteClientManager. An object that implements URoomListener can access the RemoteClient objects in a room from URoomListener.onJoin() (the RemoteClient instances for the room are 100% initialized before onJoin() fires). This allows a room listener to display, say, a list of user names when the current client joins a room.
Clients can set shared attributes using UClient.setClientAttribute(). When a shared attribute is set, it is automatically propogated to all other clients, and can be accessed via RemoteClientManager.getClient().getAttribute().
For example, the following code retrieves the global shared attribute "playerName" for client ID 349:
var name = someUClient.getRemoteClientManager().getClient(349).getAttribute(null, "playerName");
theRemoteClientManager.getAttributeForClients(clientList, attributeScope, attributeName)
null for global attributes.Returns an array of objects containing value of the specified attribute for the clients in clientList. Each object in the array has a clientID property (giving the client id), and a value property (giving the attribute value). The value property will be undefined for clients in clientList that either do not exist or do not have a value set for the specified attribute.
The following code displays all value of the global username attribute for all clients in the room moock.chat:
var clientList = getRoomManager().getRoom("moock.chat").getClientIDs();
var attrList = getRemoteClientManager().getAttributeForClients(clientList, null, "username");
for(var i = 0; i < attrList.length; i++) {
trace("The value of 'username' for client " + attrList[i].clientID + " is: " + attrList[i].value);
}
1.0.4