void Start() { if (peerType == EasyWiFiConstants.PEER_TYPE.Client) { lastSendTime = Time.realtimeSinceStartup; //set the rate switch (clientMaxSendRate) { case EasyWiFiConstants.CONTROLLERDATA_MAX_SEND_RATE.CapAt30Hz: maxRate = .033333333f; break; case EasyWiFiConstants.CONTROLLERDATA_MAX_SEND_RATE.CapAt60Hz: maxRate = .016666666f; break; case EasyWiFiConstants.CONTROLLERDATA_MAX_SEND_RATE.CapAt90Hz: maxRate = .011111111f; break; case EasyWiFiConstants.CONTROLLERDATA_MAX_SEND_RATE.SendAsFastAsPossible: maxRate = 0f; break; case EasyWiFiConstants.CONTROLLERDATA_MAX_SEND_RATE.SendInfrequentlyOncePerSecond: maxRate = 1f; break; default: maxRate = 0f; break; } //There can be a timing issue between when the server has been discovered but we might not be ready yet //to transmit our inventory. Becuase this script executes in start and registrations in awake all the local registrations have now take place EasyWiFiController.readyToTransmitInventory = true; if (!transmittedInventory && (EasyWiFiController.clientState != EasyWiFiConstants.CURRENT_CLIENT_STATE.Broadcasting && EasyWiFiController.clientState != EasyWiFiConstants.CURRENT_CLIENT_STATE.NotConnected)) { //depending on the order in which client and server are started check our state and send inventory immediately EasyWiFiController.sendControllerInventory(EasyWiFiController.createInventoryMessage()); EasyWiFiController.clientState = EasyWiFiConstants.CURRENT_CLIENT_STATE.SendingInventory; } if (heartbeatTimeout > 0f) { InvokeRepeating("checkHeartbeatForTimeout", heartbeatTimeout, heartbeatTimeout); } } else { if (serverSendBackchannel) { EasyWiFiController.readyToTransmitBackchannel = true; } if (serverSendHeartbeatRate > 0f) { InvokeRepeating("sendServerHeartbeat", serverSendHeartbeatRate, serverSendHeartbeatRate); } if (clientTimeout > 0f) { InvokeRepeating("checkForClientTimeout", clientTimeout, clientTimeout); } } }