public void ResetFOV() { FieldOfViewAsset fovAsset = new FieldOfViewAsset(); fovAsset.Reset = true; ChangeFovOverNetwork(fovAsset); }
public void ChangeFOV(float changeValue) { FieldOfViewAsset fovAsset = new FieldOfViewAsset(); fovAsset.ZOffset = changeValue; ChangeFovOverNetwork(fovAsset); }
private void HandleFieldOfViewMessage(FieldOfViewAsset fovAsset, Sender sender) { UdpFieldOfViewSync udpFovSync; if (_udpFieldOfViewSyncDict.TryGetValue(fovAsset.Asset_Id, out udpFovSync)) { udpFovSync.ApplyFovLocally(fovAsset); } }
private IEnumerator ApplyFovAfter(int frameAmount, FieldOfViewAsset fovAsset) { for (int ii = 0; ii < frameAmount; ++ii) { yield return(null); // Wait for one frame. } ApplyFovLocally(fovAsset); }
// This method changes the FOV on the local host: public void ApplyFovLocally(FieldOfViewAsset fovAsset) { if (fovAsset.Reset == true) { _fieldOfViewManager.ResetFOV(); } else if (fovAsset.ZOffset != 0f) { _fieldOfViewManager.ChangeFOV(fovAsset.ZOffset); } }
private void ChangeFovOverNetwork(FieldOfViewAsset fovAsset) { // Wall only: if (_configMgr.applicationType == CmdConfigManager.AppType.WALL) { // Sending the sync data via UDP: fovAsset.Asset_Id = networkId; udpManager.SenderToFloor.AddMessage(JsonUtility.ToJson(fovAsset)); // Apply the field of view delayed: StartCoroutine(ApplyFovAfter(_configMgr.networkFrameDelay, fovAsset)); } else // Floor only: { // Apply the field of view: ApplyFovLocally(fovAsset); } }