IEnumerator DirectoryCreate() { JCloudDocumentOperation operation = JCloudDocument.DirectoryCreate("Test"); while (!operation.finished) { yield return(null); } documentResultString = "cloud document did create test directory with " + ((bool)operation.result ? "success" : "failure") + (operation.error != null ? (" ; error : " + operation.error) : ""); }
IEnumerator SaveGame() { // Failsafe if (player && playerCamera && redCube && greenCube && blueCube) { // Prepare a memory stream & a binary writer System.IO.MemoryStream dataStream = new System.IO.MemoryStream(); System.IO.BinaryWriter writer = new System.IO.BinaryWriter(dataStream); // Write player state SerializeTransformToWriter(player.transform, writer); SerializeRigidbodyToWriter(player.rigidbody, writer); // Write player camera state SerializeTransformToWriter(playerCamera.transform, writer); // Write red, green & blue cubes state SerializeTransformToWriter(redCube.transform, writer); SerializeRigidbodyToWriter(redCube.rigidbody, writer); SerializeTransformToWriter(greenCube.transform, writer); SerializeRigidbodyToWriter(greenCube.rigidbody, writer); SerializeTransformToWriter(blueCube.transform, writer); SerializeRigidbodyToWriter(blueCube.rigidbody, writer); // Save game -- make sure directory exists JCloudDocumentOperation operation; operation = JCloudDocument.DirectoryExists("Savegames"); while (!operation.finished) { yield return(null); } // Look for error -- if any, handle & stop coroutine here if (operation.error.HasValue) { HandleDocumentError(operation.error.Value); yield break; } if (!(bool)operation.result) { operation = JCloudDocument.DirectoryCreate("Savegames"); while (!operation.finished) { yield return(null); } // Look for error -- if any, handle & stop coroutine here if (operation.error.HasValue) { HandleDocumentError(operation.error.Value); yield break; } } // Write file operation = JCloudDocument.FileWriteAllBytes("Savegames/My saved game.sav", dataStream.GetBuffer()); while (!operation.finished) { yield return(null); } // Look for error -- if any, handle & stop coroutine here if (operation.error.HasValue) { HandleDocumentError(operation.error.Value); yield break; } } }