├── CODE_OF_CONDUCT.md ├── DemoUnityAndReplayKit ├── .vscode │ └── settings.json ├── Assembly-CSharp-Editor-firstpass.csproj ├── Assembly-CSharp-firstpass.csproj ├── Assembly-CSharp.csproj ├── Assets │ ├── AccelerometerInput.cs │ ├── AccelerometerInput.cs.meta │ ├── Cube.controller │ ├── Cube.controller.meta │ ├── CubeAnimator.anim │ ├── CubeAnimator.anim.meta │ ├── DemoScene.unity │ ├── DemoScene.unity.meta │ ├── Materials.meta │ ├── Materials │ │ ├── VideoRenderTexture.mat │ │ └── VideoRenderTexture.mat.meta │ ├── MyMaterials.meta │ ├── MyMaterials │ │ ├── Blue.mat │ │ ├── Blue.mat.meta │ │ ├── WallsMat.mat │ │ └── WallsMat.mat.meta │ ├── MyModels.meta │ ├── MyModels │ │ ├── trexHead.fbx │ │ └── trexHead.fbx.meta │ ├── MySprites.meta │ ├── MySprites │ │ ├── ustwo-Logo.png │ │ └── ustwo-Logo.png.meta │ ├── Plugins.meta │ ├── Plugins │ │ ├── iOS.meta │ │ └── iOS │ │ │ ├── ReplayKitUnity.meta │ │ │ └── ReplayKitUnity │ │ │ ├── Editor.meta │ │ │ ├── Editor │ │ │ ├── SwiftPostProcessor.cs │ │ │ └── SwiftPostProcessor.cs.meta │ │ │ ├── Source.meta │ │ │ └── Source │ │ │ ├── FileHandler.swift │ │ │ ├── FileHandler.swift.meta │ │ │ ├── RecordViewController.swift │ │ │ ├── RecordViewController.swift.meta │ │ │ ├── ReplayKitBridge.mm │ │ │ ├── ReplayKitBridge.mm.meta │ │ │ ├── ReplayKitNative.swift │ │ │ ├── ReplayKitNative.swift.meta │ │ │ ├── ReplayKitUnity.cs │ │ │ ├── ReplayKitUnity.cs.meta │ │ │ ├── ReplayKitUnityBridge-Bridging-Header.h │ │ │ └── ReplayKitUnityBridge-Bridging-Header.h.meta │ ├── RecordController.cs │ ├── RecordController.cs.meta │ ├── Textures.meta │ └── Textures │ │ ├── VideoRenderTexture.renderTexture │ │ └── VideoRenderTexture.renderTexture.meta ├── DemoUnityAndReplayKit.sln ├── ProjectSettings │ ├── AudioManager.asset │ ├── ClusterInputManager.asset │ ├── DynamicsManager.asset │ ├── EditorBuildSettings.asset │ ├── EditorSettings.asset │ ├── GraphicsSettings.asset │ ├── InputManager.asset │ ├── NavMeshAreas.asset │ ├── NetworkManager.asset │ ├── Physics2DSettings.asset │ ├── ProjectSettings.asset │ ├── ProjectVersion.txt │ ├── QualitySettings.asset │ ├── TagManager.asset │ ├── TimeManager.asset │ └── UnityConnectSettings.asset └── iOSBuild1.app │ └── Contents │ ├── Frameworks │ └── Mono │ │ └── MonoEmbedRuntime │ │ └── osx │ │ ├── libMonoPosixHelper.dylib │ │ └── libmono.0.dylib │ ├── Info.plist │ ├── MacOS │ └── iOSBuild1 │ ├── Mono │ └── etc │ │ └── mono │ │ ├── 1.0 │ │ ├── DefaultWsdlHelpGenerator.aspx │ │ └── machine.config │ │ ├── 2.0 │ │ ├── Browsers │ │ │ └── Compat.browser │ │ ├── DefaultWsdlHelpGenerator.aspx │ │ ├── machine.config │ │ ├── settings.map │ │ └── web.config │ │ ├── browscap.ini │ │ ├── config │ │ └── mconfig │ │ └── config.xml │ ├── MonoBleedingEdge │ └── etc │ │ └── mono │ │ ├── 2.0 │ │ ├── Browsers │ │ │ └── Compat.browser │ │ ├── DefaultWsdlHelpGenerator.aspx │ │ ├── machine.config │ │ ├── settings.map │ │ └── web.config │ │ ├── 4.0 │ │ ├── Browsers │ │ │ └── Compat.browser │ │ ├── DefaultWsdlHelpGenerator.aspx │ │ ├── machine.config │ │ ├── settings.map │ │ └── web.config │ │ ├── 4.5 │ │ ├── Browsers │ │ │ └── Compat.browser │ │ ├── DefaultWsdlHelpGenerator.aspx │ │ ├── machine.config │ │ ├── settings.map │ │ └── web.config │ │ ├── browscap.ini │ │ ├── config │ │ ├── mconfig │ │ └── config.xml │ │ └── registry │ │ └── last-btime │ └── Resources │ ├── Ageia.tif │ ├── Data │ ├── Managed │ │ ├── Assembly-CSharp-firstpass.dll │ │ ├── Assembly-CSharp.dll │ │ ├── Mono.Security.dll │ │ ├── System.Core.dll │ │ ├── System.dll │ │ ├── UnityEngine.AIModule.dll │ │ ├── UnityEngine.AIModule.xml │ │ ├── UnityEngine.ARModule.dll │ │ ├── UnityEngine.ARModule.xml │ │ ├── UnityEngine.AccessibilityModule.dll │ │ ├── UnityEngine.AccessibilityModule.xml │ │ ├── UnityEngine.Analytics.dll │ │ ├── UnityEngine.AnimationModule.dll │ │ ├── UnityEngine.AnimationModule.xml │ │ ├── UnityEngine.AssetBundleModule.dll │ │ ├── UnityEngine.AssetBundleModule.xml │ │ ├── UnityEngine.AudioModule.dll │ │ ├── UnityEngine.AudioModule.xml │ │ ├── UnityEngine.ClothModule.dll │ │ ├── UnityEngine.ClothModule.xml │ │ ├── UnityEngine.ClusterInputModule.dll │ │ ├── UnityEngine.ClusterInputModule.xml │ │ ├── UnityEngine.ClusterRendererModule.dll │ │ ├── UnityEngine.ClusterRendererModule.xml │ │ ├── UnityEngine.CoreModule.dll │ │ ├── UnityEngine.CoreModule.xml │ │ ├── UnityEngine.CrashReportingModule.dll │ │ ├── UnityEngine.CrashReportingModule.xml │ │ ├── UnityEngine.DirectorModule.dll │ │ ├── UnityEngine.DirectorModule.xml │ │ ├── UnityEngine.GameCenterModule.dll │ │ ├── UnityEngine.GameCenterModule.xml │ │ ├── UnityEngine.GridModule.dll │ │ ├── UnityEngine.GridModule.xml │ │ ├── UnityEngine.IMGUIModule.dll │ │ ├── UnityEngine.IMGUIModule.xml │ │ ├── UnityEngine.ImageConversionModule.dll │ │ ├── UnityEngine.ImageConversionModule.xml │ │ ├── UnityEngine.InputModule.dll │ │ ├── UnityEngine.InputModule.xml │ │ ├── UnityEngine.JSONSerializeModule.dll │ │ ├── UnityEngine.JSONSerializeModule.xml │ │ ├── UnityEngine.Networking.dll │ │ ├── UnityEngine.ParticleSystemModule.dll │ │ ├── UnityEngine.ParticleSystemModule.xml │ │ ├── UnityEngine.ParticlesLegacyModule.dll │ │ ├── UnityEngine.ParticlesLegacyModule.xml │ │ ├── UnityEngine.PerformanceReportingModule.dll │ │ ├── UnityEngine.PerformanceReportingModule.xml │ │ ├── UnityEngine.Physics2DModule.dll │ │ ├── UnityEngine.Physics2DModule.xml │ │ ├── UnityEngine.PhysicsModule.dll │ │ ├── UnityEngine.PhysicsModule.xml │ │ ├── UnityEngine.ScreenCaptureModule.dll │ │ ├── UnityEngine.ScreenCaptureModule.xml │ │ ├── UnityEngine.SharedInternalsModule.dll │ │ ├── UnityEngine.SharedInternalsModule.xml │ │ ├── UnityEngine.SpatialTracking.dll │ │ ├── UnityEngine.SpriteMaskModule.dll │ │ ├── UnityEngine.SpriteMaskModule.xml │ │ ├── UnityEngine.SpriteShapeModule.dll │ │ ├── UnityEngine.SpriteShapeModule.xml │ │ ├── UnityEngine.StyleSheetsModule.dll │ │ ├── UnityEngine.StyleSheetsModule.xml │ │ ├── UnityEngine.TerrainModule.dll │ │ ├── UnityEngine.TerrainModule.xml │ │ ├── UnityEngine.TerrainPhysicsModule.dll │ │ ├── UnityEngine.TerrainPhysicsModule.xml │ │ ├── UnityEngine.TextRenderingModule.dll │ │ ├── UnityEngine.TextRenderingModule.xml │ │ ├── UnityEngine.TilemapModule.dll │ │ ├── UnityEngine.TilemapModule.xml │ │ ├── UnityEngine.Timeline.dll │ │ ├── UnityEngine.UI.dll │ │ ├── UnityEngine.UIElementsModule.dll │ │ ├── UnityEngine.UIElementsModule.xml │ │ ├── UnityEngine.UIModule.dll │ │ ├── UnityEngine.UIModule.xml │ │ ├── UnityEngine.UNETModule.dll │ │ ├── UnityEngine.UNETModule.xml │ │ ├── UnityEngine.UnityAnalyticsModule.dll │ │ ├── UnityEngine.UnityAnalyticsModule.xml │ │ ├── UnityEngine.UnityConnectModule.dll │ │ ├── UnityEngine.UnityConnectModule.xml │ │ ├── UnityEngine.UnityWebRequestAudioModule.dll │ │ ├── UnityEngine.UnityWebRequestAudioModule.xml │ │ ├── UnityEngine.UnityWebRequestModule.dll │ │ ├── UnityEngine.UnityWebRequestModule.xml │ │ ├── UnityEngine.UnityWebRequestTextureModule.dll │ │ ├── UnityEngine.UnityWebRequestTextureModule.xml │ │ ├── UnityEngine.UnityWebRequestWWWModule.dll │ │ ├── UnityEngine.UnityWebRequestWWWModule.xml │ │ ├── UnityEngine.VRModule.dll │ │ ├── UnityEngine.VRModule.xml │ │ ├── UnityEngine.VehiclesModule.dll │ │ ├── UnityEngine.VehiclesModule.xml │ │ ├── UnityEngine.VideoModule.dll │ │ ├── UnityEngine.VideoModule.xml │ │ ├── UnityEngine.WebModule.dll │ │ ├── UnityEngine.WebModule.xml │ │ ├── UnityEngine.WindModule.dll │ │ ├── UnityEngine.WindModule.xml │ │ ├── UnityEngine.dll │ │ ├── UnityEngine.xml │ │ └── mscorlib.dll │ ├── Resources │ │ └── unity_builtin_extra │ ├── boot.config │ ├── globalgamemanagers │ ├── globalgamemanagers.assets │ ├── level0 │ ├── level0.resS │ └── sharedassets0.assets │ ├── DefaultPreferences.plist │ ├── KeyConfig.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib │ ├── MainMenu.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib │ ├── Mono.tif │ ├── ScreenSelector.nib │ ├── classes.nib │ ├── designable.nib │ ├── info.nib │ └── keyedobjects.nib │ ├── UnityPlayerIcon.png │ └── unity default resources ├── Images └── unity_replaykit.png ├── LICENSE ├── Plugin Source ├── Editor │ └── SwiftPostProcessor.cs └── Source │ ├── FileHandler.swift │ ├── RecordViewController.swift │ ├── ReplayKitBridge.mm │ ├── ReplayKitNative.swift │ ├── ReplayKitUnity.cs │ └── ReplayKitUnityBridge-Bridging-Header.h ├── README.md ├── ReplayKitUnityBridge.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── sdhin1.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── sonam.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── ReplayKitUnityBridge ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── recordbtnImage.imageset │ │ ├── Contents.json │ │ ├── recordbtnImage.png │ │ ├── recordbtnImage@2x.png │ │ └── recordbtnImage@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── UnityInterface.h └── ViewController.swift ├── ReplayKitUnityBridgeTests ├── Info.plist └── ReplayKitUnityBridgeTests.swift └── ReplayKitUnityBridgeUITests ├── Info.plist └── ReplayKitUnityBridgeUITests.swift /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | As contributors and maintainers of this project, and in the interest of 4 | fostering an open and welcoming community, we pledge to respect all people who 5 | contribute through reporting issues, posting feature requests, updating 6 | documentation, submitting pull requests or patches, and other activities. 7 | 8 | We are committed to making participation in this project a harassment-free 9 | experience for everyone, regardless of level of experience, gender, gender 10 | identity and expression, sexual orientation, disability, personal appearance, 11 | body size, race, ethnicity, age, religion, or nationality. 12 | 13 | Examples of unacceptable behavior by participants include: 14 | 15 | * The use of sexualized language or imagery 16 | * Personal attacks 17 | * Trolling or insulting/derogatory comments 18 | * Public or private harassment 19 | * Publishing other's private information, such as physical or electronic 20 | addresses, without explicit permission 21 | * Other unethical or unprofessional conduct 22 | 23 | Project maintainers have the right and responsibility to remove, edit, or 24 | reject comments, commits, code, wiki edits, issues, and other contributions 25 | that are not aligned to this Code of Conduct, or to ban temporarily or 26 | permanently any contributor for other behaviors that they deem inappropriate, 27 | threatening, offensive, or harmful. 28 | 29 | By adopting this Code of Conduct, project maintainers commit themselves to 30 | fairly and consistently applying these principles to every aspect of managing 31 | this project. Project maintainers who do not follow or enforce the Code of 32 | Conduct may be permanently removed from the project team. 33 | 34 | This Code of Conduct applies both within project spaces and in public spaces 35 | when an individual is representing the project or its community. 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 38 | reported by contacting a project maintainer at open.source+code.of.conduct@ustwo.com. All 39 | complaints will be reviewed and investigated and will result in a response that 40 | is deemed necessary and appropriate to the circumstances. Maintainers are 41 | obligated to maintain confidentiality with regard to the reporter of an 42 | incident. 43 | 44 | 45 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 46 | version 1.3.0, available at 47 | [http://contributor-covenant.org/version/1/3/0/][version] 48 | 49 | [homepage]: http://contributor-covenant.org 50 | [version]: http://contributor-covenant.org/version/1/3/0/ 51 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": 3 | { 4 | "**/.DS_Store":true, 5 | "**/.git":true, 6 | "**/.gitignore":true, 7 | "**/.gitmodules":true, 8 | "**/*.booproj":true, 9 | "**/*.pidb":true, 10 | "**/*.suo":true, 11 | "**/*.user":true, 12 | "**/*.userprefs":true, 13 | "**/*.unityproj":true, 14 | "**/*.dll":true, 15 | "**/*.exe":true, 16 | "**/*.pdf":true, 17 | "**/*.mid":true, 18 | "**/*.midi":true, 19 | "**/*.wav":true, 20 | "**/*.gif":true, 21 | "**/*.ico":true, 22 | "**/*.jpg":true, 23 | "**/*.jpeg":true, 24 | "**/*.png":true, 25 | "**/*.psd":true, 26 | "**/*.tga":true, 27 | "**/*.tif":true, 28 | "**/*.tiff":true, 29 | "**/*.3ds":true, 30 | "**/*.3DS":true, 31 | "**/*.fbx":true, 32 | "**/*.FBX":true, 33 | "**/*.lxo":true, 34 | "**/*.LXO":true, 35 | "**/*.ma":true, 36 | "**/*.MA":true, 37 | "**/*.obj":true, 38 | "**/*.OBJ":true, 39 | "**/*.asset":true, 40 | "**/*.cubemap":true, 41 | "**/*.flare":true, 42 | "**/*.mat":true, 43 | "**/*.meta":true, 44 | "**/*.prefab":true, 45 | "**/*.unity":true, 46 | "build/":true, 47 | "Build/":true, 48 | "Library/":true, 49 | "library/":true, 50 | "obj/":true, 51 | "Obj/":true, 52 | "ProjectSettings/":true, 53 | "temp/":true, 54 | "Temp/":true 55 | } 56 | } -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/AccelerometerInput.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class AccelerometerInput : MonoBehaviour { 6 | 7 | // Use this for initialization 8 | void Start () { 9 | 10 | } 11 | 12 | // Update is called once per frame 13 | void Update () { 14 | transform.Translate(Input.acceleration.x, 0, -Input.acceleration.z); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/AccelerometerInput.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f99796ac16f52495d8d3510bef7da2f7 3 | timeCreated: 1518145356 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Cube.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: Cube 9 | serializedVersion: 5 10 | m_AnimatorParameters: [] 11 | m_AnimatorLayers: 12 | - serializedVersion: 5 13 | m_Name: Base Layer 14 | m_StateMachine: {fileID: 1107090220520425888} 15 | m_Mask: {fileID: 0} 16 | m_Motions: [] 17 | m_Behaviours: [] 18 | m_BlendingMode: 0 19 | m_SyncedLayerIndex: -1 20 | m_DefaultWeight: 0 21 | m_IKPass: 0 22 | m_SyncedLayerAffectsTiming: 0 23 | m_Controller: {fileID: 9100000} 24 | --- !u!1102 &1102741875092374478 25 | AnimatorState: 26 | serializedVersion: 5 27 | m_ObjectHideFlags: 1 28 | m_PrefabParentObject: {fileID: 0} 29 | m_PrefabInternal: {fileID: 0} 30 | m_Name: CubeAnimator 31 | m_Speed: 1 32 | m_CycleOffset: 0 33 | m_Transitions: [] 34 | m_StateMachineBehaviours: [] 35 | m_Position: {x: 50, y: 50, z: 0} 36 | m_IKOnFeet: 0 37 | m_WriteDefaultValues: 1 38 | m_Mirror: 0 39 | m_SpeedParameterActive: 0 40 | m_MirrorParameterActive: 0 41 | m_CycleOffsetParameterActive: 0 42 | m_TimeParameterActive: 0 43 | m_Motion: {fileID: 7400000, guid: 3409ed8dbdffe4b5eb936c39b8118410, type: 2} 44 | m_Tag: 45 | m_SpeedParameter: 46 | m_MirrorParameter: 47 | m_CycleOffsetParameter: 48 | m_TimeParameter: 49 | --- !u!1107 &1107090220520425888 50 | AnimatorStateMachine: 51 | serializedVersion: 5 52 | m_ObjectHideFlags: 1 53 | m_PrefabParentObject: {fileID: 0} 54 | m_PrefabInternal: {fileID: 0} 55 | m_Name: Base Layer 56 | m_ChildStates: 57 | - serializedVersion: 1 58 | m_State: {fileID: 1102741875092374478} 59 | m_Position: {x: 200, y: 0, z: 0} 60 | m_ChildStateMachines: [] 61 | m_AnyStateTransitions: [] 62 | m_EntryTransitions: [] 63 | m_StateMachineTransitions: {} 64 | m_StateMachineBehaviours: [] 65 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 66 | m_EntryPosition: {x: 50, y: 120, z: 0} 67 | m_ExitPosition: {x: 800, y: 120, z: 0} 68 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 69 | m_DefaultState: {fileID: 1102741875092374478} 70 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Cube.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb4b4c8fc4a81448ab62922f5604a2a9 3 | timeCreated: 1515714331 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 9100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/CubeAnimator.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3409ed8dbdffe4b5eb936c39b8118410 3 | timeCreated: 1515714331 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 7400000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/DemoScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94172fe1dd5de43bc917a9d71c02027c 3 | timeCreated: 1515713227 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41369ae399508463dbc85ab50b473e80 3 | folderAsset: yes 4 | timeCreated: 1518145540 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Materials/VideoRenderTexture.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: VideoRenderTexture 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 8400000, guid: 6b1abddb9713b44b5a113feb4f15a612, type: 2} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Materials/VideoRenderTexture.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6667ed190a119455688dd4eeec8c4744 3 | timeCreated: 1518145540 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 2100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyMaterials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51a7323a9076f4aacba0c9adcc7ddebc 3 | folderAsset: yes 4 | timeCreated: 1515713199 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyMaterials/Blue.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Blue 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 0.32536763, g: 0.41615108, b: 0.75, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyMaterials/Blue.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c44709941366c4d3b95357f5a7309f26 3 | timeCreated: 1515713206 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 2100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyMaterials/WallsMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: WallsMat 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 0.9191176, g: 0.3416396, b: 0.20950474, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyMaterials/WallsMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa2ea18a6f510412f90d58281adf1395 3 | timeCreated: 1519961973 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 2100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyModels.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2cb9a03dec1a4e2a9f487da01d51a20 3 | folderAsset: yes 4 | timeCreated: 1519961864 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyModels/trexHead.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/Assets/MyModels/trexHead.fbx -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MyModels/trexHead.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1435d1cf486c6498c92a4a511f43ae6b 3 | timeCreated: 1519961878 4 | licenseType: Free 5 | ModelImporter: 6 | serializedVersion: 22 7 | fileIDToRecycleName: 8 | 100000: Camera 9 | 100002: ConnectingMouth 10 | 100004: Lamp 11 | 100006: left_pupil 12 | 100008: LeftEyeBall 13 | 100010: LeftEyeBall.001 14 | 100012: LowerMouth 15 | 100014: mouthupper 16 | 100016: right_pupil 17 | 100018: RightEye 18 | 100020: Teeth 19 | 100022: Teeth.001 20 | 100024: Teeth.002 21 | 100026: Teeth.003 22 | 100028: TREXHead 23 | 100030: //RootNode 24 | 100032: TrexLowerMouth 25 | 100034: UpperMouth 26 | 400000: Camera 27 | 400002: ConnectingMouth 28 | 400004: Lamp 29 | 400006: left_pupil 30 | 400008: LeftEyeBall 31 | 400010: LeftEyeBall.001 32 | 400012: LowerMouth 33 | 400014: mouthupper 34 | 400016: right_pupil 35 | 400018: RightEye 36 | 400020: Teeth 37 | 400022: Teeth.001 38 | 400024: Teeth.002 39 | 400026: Teeth.003 40 | 400028: TREXHead 41 | 400030: //RootNode 42 | 400032: TrexLowerMouth 43 | 400034: UpperMouth 44 | 2000000: Camera 45 | 2100000: Material.002 46 | 2100002: Black 47 | 2100004: white 48 | 2100006: BlueBody 49 | 2100008: No Name 50 | 2300000: ConnectingMouth 51 | 2300002: left_pupil 52 | 2300004: LeftEyeBall 53 | 2300006: LeftEyeBall.001 54 | 2300008: mouthupper 55 | 2300010: right_pupil 56 | 2300012: RightEye 57 | 2300014: Teeth 58 | 2300016: Teeth.001 59 | 2300018: Teeth.002 60 | 2300020: Teeth.003 61 | 2300022: TrexLowerMouth 62 | 3300000: ConnectingMouth 63 | 3300002: left_pupil 64 | 3300004: LeftEyeBall 65 | 3300006: LeftEyeBall.001 66 | 3300008: mouthupper 67 | 3300010: right_pupil 68 | 3300012: RightEye 69 | 3300014: Teeth 70 | 3300016: Teeth.001 71 | 3300018: Teeth.002 72 | 3300020: Teeth.003 73 | 3300022: TrexLowerMouth 74 | 4300000: RightEye 75 | 4300002: right_pupil 76 | 4300004: LeftEyeBall 77 | 4300006: LeftEyeBall.001 78 | 4300008: left_pupil 79 | 4300010: mouthupper 80 | 4300012: Teeth.002 81 | 4300014: Teeth.003 82 | 4300016: TrexLowerMouth 83 | 4300018: Teeth 84 | 4300020: Teeth.001 85 | 4300022: ConnectingMouth 86 | 10800000: Lamp 87 | externalObjects: {} 88 | materials: 89 | importMaterials: 1 90 | materialName: 0 91 | materialSearch: 1 92 | materialLocation: 1 93 | animations: 94 | legacyGenerateAnimations: 4 95 | bakeSimulation: 0 96 | resampleCurves: 1 97 | optimizeGameObjects: 0 98 | motionNodeName: 99 | rigImportErrors: 100 | rigImportWarnings: 101 | animationImportErrors: 102 | animationImportWarnings: 103 | animationRetargetingWarnings: 104 | animationDoRetargetingWarnings: 0 105 | importAnimatedCustomProperties: 0 106 | animationCompression: 1 107 | animationRotationError: 0.5 108 | animationPositionError: 0.5 109 | animationScaleError: 0.5 110 | animationWrapMode: 0 111 | extraExposedTransformPaths: [] 112 | extraUserProperties: [] 113 | clipAnimations: [] 114 | isReadable: 1 115 | meshes: 116 | lODScreenPercentages: [] 117 | globalScale: 1 118 | meshCompression: 0 119 | addColliders: 0 120 | importVisibility: 1 121 | importBlendShapes: 1 122 | importCameras: 1 123 | importLights: 1 124 | swapUVChannels: 0 125 | generateSecondaryUV: 0 126 | useFileUnits: 1 127 | optimizeMeshForGPU: 1 128 | keepQuads: 0 129 | weldVertices: 1 130 | preserveHierarchy: 0 131 | indexFormat: 0 132 | secondaryUVAngleDistortion: 8 133 | secondaryUVAreaDistortion: 15.000001 134 | secondaryUVHardAngle: 88 135 | secondaryUVPackMargin: 4 136 | useFileScale: 1 137 | tangentSpace: 138 | normalSmoothAngle: 60 139 | normalImportMode: 0 140 | tangentImportMode: 3 141 | normalCalculationMode: 4 142 | importAnimation: 1 143 | copyAvatar: 0 144 | humanDescription: 145 | serializedVersion: 2 146 | human: [] 147 | skeleton: [] 148 | armTwist: 0.5 149 | foreArmTwist: 0.5 150 | upperLegTwist: 0.5 151 | legTwist: 0.5 152 | armStretch: 0.05 153 | legStretch: 0.05 154 | feetSpacing: 0 155 | rootMotionBoneName: 156 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 157 | hasTranslationDoF: 0 158 | hasExtraRoot: 0 159 | skeletonHasParents: 1 160 | lastHumanDescriptionAvatarSource: {instanceID: 0} 161 | animationType: 0 162 | humanoidOversampling: 1 163 | additionalBone: 0 164 | userData: 165 | assetBundleName: 166 | assetBundleVariant: 167 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MySprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6d66033be2864f8888deb85b4a77b20 3 | folderAsset: yes 4 | timeCreated: 1515713320 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MySprites/ustwo-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/Assets/MySprites/ustwo-Logo.png -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/MySprites/ustwo-Logo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50ecd7fc04e494e4baeecf86b11ca51e 3 | timeCreated: 1515713339 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | physicsShape: [] 74 | spritePackingTag: 75 | userData: 76 | assetBundleName: 77 | assetBundleVariant: 78 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31df8fd1b682241c180b1372ae5dbd92 3 | folderAsset: yes 4 | timeCreated: 1515713429 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eca6477bd126d4c37a6270b4ede6c906 3 | folderAsset: yes 4 | timeCreated: 1515713433 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c96c9f6ef0e124ff799142bfcfca3f32 3 | folderAsset: yes 4 | timeCreated: 1515713438 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f03f56af67a2b4fbd860b8e0d7037579 3 | folderAsset: yes 4 | timeCreated: 1515713565 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Editor/SwiftPostProcessor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using UnityEditor.Callbacks; 4 | using UnityEditor.iOS.Xcode; 5 | using System.Collections; 6 | using System.Collections.Generic; 7 | using System.Diagnostics; 8 | using System.IO; 9 | using System.Linq; 10 | 11 | /// 12 | /// This class is responsible for directing Unity's Xcode build to the bridging-header and Swift exposed Objective-C files that are part of this plugin 13 | /// Please take special note to the file path created for the SWIFT_OBJC_BRIDGING_HEADER . It must match the path that exists in your Unity project 14 | /// 15 | 16 | public static class SwiftPostProcessor { 17 | [PostProcessBuild] 18 | public static void OnPostProcessBuild(BuildTarget buildTarget, string buildPath) { 19 | if(buildTarget == BuildTarget.iOS) { 20 | 21 | // We need to tell the Unity build to look at the write build file path and specifically reference the exposed Swift header file for it to work 22 | var projPath = buildPath + "/Unity-iPhone.xcodeproj/project.pbxproj"; 23 | var proj = new PBXProject(); 24 | proj.ReadFromFile(projPath); 25 | 26 | var targetGuid = proj.TargetGuidByName(PBXProject.GetUnityTargetName()); 27 | 28 | proj.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO"); 29 | 30 | // This must match the file path of where the bridging header lives in your Unity project 31 | proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_BRIDGING_HEADER", "Libraries/Plugins/iOS/ReplayKitUnity/Source/ReplayKitUnityBridge-Bridging-Header.h"); 32 | 33 | // We specifically reference the generated Swift to Objective-C header 34 | proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_INTERFACE_HEADER_NAME", "ReplayKitUnityBridge-Swift.h"); 35 | proj.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks"); 36 | 37 | proj.WriteToFile(projPath); 38 | } 39 | } 40 | } 41 | 42 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Editor/SwiftPostProcessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1e81e2da803042f0b10116c85d6705b 3 | timeCreated: 1515713574 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 595410f8ef9fd40bbb2e6df33f69fef0 3 | folderAsset: yes 4 | timeCreated: 1515713445 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/FileHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FileHandler.swift 3 | // ReplayKitSandbox 4 | // 5 | // Created by Sonam on 12/7/17. 6 | // Copyright © 2017 ustwo. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | // Referenced source code here: https://github.com/giridharvc7/ScreenRecord/blob/master/ScreenRecordDemo/Source/FileUtil.swift 12 | 13 | @objc class FileHandler: NSObject { 14 | 15 | static let folderName = "Replays" 16 | 17 | private class func createFolder() { 18 | 19 | // path to documents directory 20 | let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first 21 | 22 | if let documentDirectoryPath = documentDirectoryPath { 23 | // create the custom folder path 24 | let replayDirectoryPath = documentDirectoryPath.appending("/\(FileHandler.folderName)") 25 | let fileManager = FileManager.default 26 | 27 | if !fileManager.fileExists(atPath: replayDirectoryPath) { 28 | do { 29 | try fileManager.createDirectory(atPath: replayDirectoryPath, 30 | withIntermediateDirectories: false, 31 | attributes: nil) 32 | } catch { 33 | print("Error creating Replays folder in documents dir: \(error)") 34 | } 35 | } 36 | } 37 | } 38 | 39 | public class func filePath(_ fileName: String) -> String { 40 | 41 | createFolder() 42 | 43 | let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 44 | let documentsDirectory = paths[0] as String 45 | 46 | let filePath : String = "\(documentsDirectory)/\(FileHandler.folderName)/\(fileName).mp4" 47 | 48 | print("FILe handler created a path at \(filePath)") 49 | return filePath 50 | } 51 | 52 | internal class func fetchAllReplays() -> [URL] { 53 | 54 | let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first 55 | 56 | guard let replayPath = documentsDirectory?.appendingPathComponent("/\(FileHandler.folderName)") else { 57 | print("file path does not exist") 58 | return [] 59 | } 60 | 61 | do { 62 | let directoryContents = try FileManager.default.contentsOfDirectory(at: replayPath, includingPropertiesForKeys: nil, options: []) 63 | return directoryContents 64 | } catch { 65 | print(error) 66 | } 67 | 68 | return [] 69 | } 70 | 71 | } 72 | 73 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/FileHandler.swift.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aaa10499c85a74d7fa13f816118f9816 3 | timeCreated: 1518144562 4 | licenseType: Free 5 | PluginImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | iconMap: {} 9 | executionOrder: {} 10 | isPreloaded: 0 11 | isOverridable: 0 12 | platformData: 13 | - first: 14 | Any: 15 | second: 16 | enabled: 0 17 | settings: {} 18 | - first: 19 | Editor: Editor 20 | second: 21 | enabled: 0 22 | settings: 23 | DefaultValueInitialized: true 24 | - first: 25 | iPhone: iOS 26 | second: 27 | enabled: 1 28 | settings: {} 29 | userData: 30 | assetBundleName: 31 | assetBundleVariant: 32 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/RecordViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecordUIViewController.swift 3 | // ReplayKitSandbox 4 | // 5 | // Created by Sonam on 12/14/17. 6 | // Copyright © 2017 ustwo. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @objc class RecordViewController: UIViewController { 12 | 13 | private let startRecordBtn = UIButton(type: UIButtonType.roundedRect) 14 | private let progressView = UIView(frame: CGRect.zero) 15 | private var progressWidthConstraint: NSLayoutConstraint? 16 | 17 | public var recordDuration: CGFloat = 0 18 | 19 | override func viewDidLoad() { 20 | super.viewDidLoad() 21 | setupView() 22 | } 23 | 24 | private func setupView() { 25 | 26 | //*** Start button 27 | startRecordBtn.backgroundColor = .purple 28 | startRecordBtn.addTarget(self, action: #selector(didTapStartRecording), for: .touchUpInside) 29 | view.addSubview(startRecordBtn) 30 | setupStartBtnConstraints() 31 | 32 | //*** Progress tracker 33 | if recordTimeHasBeenSet() { 34 | view.addSubview(progressView) 35 | setupProgressViewConstraints() 36 | } 37 | } 38 | 39 | override func viewDidLayoutSubviews() { 40 | 41 | super.viewDidLayoutSubviews() 42 | startRecordBtn.layer.masksToBounds = true 43 | startRecordBtn.layer.cornerRadius = startRecordBtn.frame.width/2 44 | } 45 | 46 | public func relayoutInterface() { 47 | 48 | startRecordBtn.isHidden = false 49 | if recordTimeHasBeenSet() { 50 | progressWidthConstraint?.constant = 0 51 | progressView.isHidden = false 52 | } 53 | } 54 | 55 | @objc func didTapStartRecording() { 56 | 57 | ReplayKitNative.shared.startScreenCaptureAndSaveToFile() 58 | self.beginRecordProgress() 59 | } 60 | 61 | private func beginRecordProgress() { 62 | 63 | startRecordBtn.isHidden = true 64 | 65 | if recordTimeHasBeenSet() { 66 | progressView.backgroundColor = UIColor(red: 219/255, green: 48/255, blue: 103/155, alpha: 1.0) 67 | 68 | UIView.animate(withDuration: 15.0, delay: 0.0, options: .curveLinear, animations: { 69 | 70 | guard let safeWidthConstraint = self.progressWidthConstraint else { return } 71 | safeWidthConstraint.constant = self.view.frame.width 72 | self.view.layoutIfNeeded() 73 | 74 | }) { (completed) in 75 | 76 | ReplayKitNative.shared.stopScreenCapture() 77 | self.progressView.isHidden = true 78 | } 79 | } 80 | } 81 | 82 | 83 | //MARK: - Autolayout 84 | 85 | private func setupStartBtnConstraints() { 86 | 87 | startRecordBtn.translatesAutoresizingMaskIntoConstraints = false 88 | 89 | NSLayoutConstraint(item: startRecordBtn, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1.0, constant: 0).isActive = true 90 | 91 | NSLayoutConstraint(item: startRecordBtn, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1.0, constant: -30).isActive = true 92 | 93 | NSLayoutConstraint(item: startRecordBtn, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 80.0).isActive = true 94 | 95 | NSLayoutConstraint(item: startRecordBtn, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 80.0).isActive = true 96 | 97 | } 98 | 99 | private func setupProgressViewConstraints() { 100 | 101 | progressView.translatesAutoresizingMaskIntoConstraints = false 102 | 103 | NSLayoutConstraint(item: progressView, attribute: .left, relatedBy: .equal, toItem: view, attribute: .left, multiplier: 1.0, constant: 0).isActive = true 104 | 105 | NSLayoutConstraint(item: progressView, attribute: NSLayoutAttribute.bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1.0, constant: 0).isActive = true 106 | 107 | NSLayoutConstraint(item: progressView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 40.0).isActive = true 108 | 109 | 110 | progressWidthConstraint = NSLayoutConstraint(item: progressView, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 0) 111 | 112 | progressWidthConstraint?.isActive = true 113 | 114 | } 115 | 116 | //MARK: - Helpers 117 | 118 | // An optional type was not used here to allow for the property to be exposed to objective-c 119 | func recordTimeHasBeenSet() -> Bool { 120 | return recordDuration > 0.0 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/RecordViewController.swift.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1908e3e24f47049ef90f12bbe933bb09 3 | timeCreated: 1518144562 4 | licenseType: Free 5 | PluginImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | iconMap: {} 9 | executionOrder: {} 10 | isPreloaded: 0 11 | isOverridable: 0 12 | platformData: 13 | - first: 14 | Any: 15 | second: 16 | enabled: 0 17 | settings: {} 18 | - first: 19 | Editor: Editor 20 | second: 21 | enabled: 0 22 | settings: 23 | DefaultValueInitialized: true 24 | - first: 25 | iPhone: iOS 26 | second: 27 | enabled: 1 28 | settings: {} 29 | userData: 30 | assetBundleName: 31 | assetBundleVariant: 32 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/ReplayKitBridge.mm: -------------------------------------------------------------------------------- 1 | // 2 | // ReplayKitBridge.mm 3 | // ReplayKitSandbox 4 | // 5 | // Created by Sonam on 12/7/17. 6 | // Copyright © 2017 ustwo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //** This import is required in order for Swift functions & properties to be exposed to this class 12 | #include "ReplayKitUnityBridge-Swift.h" 13 | #include 14 | 15 | 16 | #pragma mark - C interface 17 | 18 | extern "C" { 19 | 20 | #pragma mark - Functions 21 | 22 | void _rp_startRecording() { 23 | [[ReplayKitNative shared] startScreenCaptureAndSaveToFile]; 24 | } 25 | 26 | void _rp_stopRecording() { 27 | [[ReplayKitNative shared] stopScreenCapture]; 28 | } 29 | 30 | void _rp_addDefaultButtonWindow() { 31 | [[ReplayKitNative shared] addDefaultButtonWindowForUnity]; 32 | } 33 | 34 | void _rp_showEmailShareSheet() { 35 | [[ReplayKitNative shared] showEmailShareSheet]; 36 | } 37 | 38 | 39 | #pragma mark - Getters 40 | 41 | BOOL _rp_isRecording() { 42 | return [[ReplayKitNative shared] isRecording]; 43 | } 44 | 45 | BOOL _rp_screenRecordingIsAvail() { 46 | return [[ReplayKitNative shared] screenRecorderAvailable]; 47 | } 48 | 49 | BOOL _rp_isCameraEnabled() { 50 | return [[ReplayKitNative shared] cameraEnabled]; 51 | } 52 | 53 | float _rp_allowedRecordTime() { 54 | return [[ReplayKitNative shared] recordTime]; 55 | } 56 | 57 | const char* _rp_mailSubjectText() { 58 | const char *mailStringC = [[ReplayKitNative shared].mailSubjectText UTF8String]; 59 | return mailStringC; 60 | } 61 | 62 | #pragma mark - Setters 63 | 64 | void _rp_setCameraEnabled(BOOL cameraEnabled) { 65 | [[ReplayKitNative shared] setCameraEnabled: cameraEnabled]; 66 | } 67 | 68 | void _rp_setMailSubject(const char* mailSubject) { 69 | [ReplayKitNative shared].mailSubjectText = [NSString stringWithCString:mailSubject encoding:NSUTF8StringEncoding]; 70 | } 71 | 72 | void _rp_setAllowedTimeToRecord(float seconds) { 73 | [ReplayKitNative shared].recordTime = seconds; 74 | } 75 | } 76 | 77 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/ReplayKitBridge.mm.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 834f0fc437d154850adad533d1bc27b3 3 | timeCreated: 1518144562 4 | licenseType: Free 5 | PluginImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | iconMap: {} 9 | executionOrder: {} 10 | isPreloaded: 0 11 | isOverridable: 0 12 | platformData: 13 | - first: 14 | Any: 15 | second: 16 | enabled: 0 17 | settings: {} 18 | - first: 19 | Editor: Editor 20 | second: 21 | enabled: 0 22 | settings: 23 | DefaultValueInitialized: true 24 | - first: 25 | iPhone: iOS 26 | second: 27 | enabled: 1 28 | settings: {} 29 | userData: 30 | assetBundleName: 31 | assetBundleVariant: 32 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/ReplayKitNative.swift.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b23a516f8be89490b9efadf51f4468a1 3 | timeCreated: 1518144562 4 | licenseType: Free 5 | PluginImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | iconMap: {} 9 | executionOrder: {} 10 | isPreloaded: 0 11 | isOverridable: 0 12 | platformData: 13 | - first: 14 | Any: 15 | second: 16 | enabled: 0 17 | settings: {} 18 | - first: 19 | Editor: Editor 20 | second: 21 | enabled: 0 22 | settings: 23 | DefaultValueInitialized: true 24 | - first: 25 | iPhone: iOS 26 | second: 27 | enabled: 1 28 | settings: {} 29 | userData: 30 | assetBundleName: 31 | assetBundleVariant: 32 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/ReplayKitUnity.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Runtime.InteropServices; 3 | 4 | 5 | /// 6 | /// Responsible for communicating with iOS Bridge file "ReplayKitBridge.mm". 7 | /// 8 | public class ReplayKitUnity : MonoBehaviour { 9 | 10 | #region Declare external C interface 11 | #if UNITY_IOS && !UNITY_EDITOR 12 | 13 | //Functions 14 | [DllImport("__Internal")] 15 | private static extern void _rp_startRecording(); 16 | 17 | [DllImport("__Internal")] 18 | private static extern void _rp_stopRecording(); 19 | 20 | [DllImport("__Internal")] 21 | private static extern void _rp_addDefaultButtonWindow(); 22 | 23 | [DllImport("__Internal")] 24 | private static extern void _rp_showEmailShareSheet(); 25 | 26 | //Properties 27 | [DllImport("__Internal")] 28 | private static extern bool _rp_screenRecordingIsAvail(); 29 | 30 | [DllImport("__Internal")] 31 | private static extern bool _rp_isRecording(); 32 | 33 | [DllImport("__Internal")] 34 | private static extern string _rp_mailSubjectText(); 35 | 36 | [DllImport("__Internal")] 37 | private static extern float _rp_allowedRecordTime(); 38 | 39 | // ** Setters ** 40 | [DllImport("__Internal")] 41 | private static extern void _rp_setCameraEnabled(bool cameraEnabled); 42 | 43 | [DllImport("__Internal")] 44 | private static extern void _rp_setMailSubject(string mailSubject); 45 | 46 | [DllImport("__Internal")] 47 | private static extern void _rp_setAllowedTimeToRecord(float seconds); 48 | 49 | 50 | #endif 51 | #endregion 52 | 53 | #region Public methods that you can use in your Unity project 54 | 55 | public static void StartRecording() { 56 | #if UNITY_IOS && !UNITY_EDITOR 57 | _rp_startRecording(); 58 | #endif 59 | } 60 | 61 | // Displays a recording button and recording progress view on the UI if there's a contsrained recording time set. These UI elements are excluded from the actual playback 62 | public static void ShowDefaultButtonUI() { 63 | #if UNITY_IOS && !UNITY_EDITOR 64 | _rp_addDefaultButtonWindow(); 65 | #endif 66 | } 67 | 68 | public static void StopRecording() { 69 | #if UNITY_IOS && !UNITY_EDITOR 70 | _rp_stopRecording(); 71 | #endif 72 | } 73 | 74 | // Show the standard iOS share sheet with email and default system options (message, facebook, twitter) 75 | public static void ShowEmailShareSheet() { 76 | #if UNITY_IOS && !UNITY_EDITOR 77 | _rp_showEmailShareSheet(); 78 | #endif 79 | } 80 | 81 | // Check to see if the OS you are running allows for screen recording 82 | public static bool IsScreenRecorderAvailable { 83 | get { 84 | #if UNITY_IOS && !UNITY_EDITOR 85 | return _rp_screenRecordingIsAvail(); 86 | #else 87 | return false; 88 | #endif 89 | } 90 | } 91 | 92 | // Check to see if the screen is currently being recorded 93 | public static bool IsRecording { 94 | get { 95 | #if UNITY_IOS && !UNITY_EDITOR 96 | return _rp_isRecording(); 97 | #else 98 | return false; 99 | #endif 100 | } 101 | } 102 | 103 | // Set the subject line for sharing the recorded file via email 104 | public static string MailSubjectText { 105 | get { 106 | #if UNITY_IOS && !UNITY_EDITOR 107 | return _rp_mailSubjectText(); 108 | #else 109 | return ""; 110 | #endif 111 | } set { 112 | #if UNITY_IOS && !UNITY_EDITOR 113 | _rp_setMailSubject(value); 114 | #endif 115 | } 116 | } 117 | 118 | public static float AllowedTimeToRecord { 119 | get { 120 | #if UNITY_IOS && !UNITY_EDITOR 121 | return _rp_allowedRecordTime(); 122 | #else 123 | return 0; 124 | #endif 125 | } set { 126 | #if UNITY_IOS && !UNITY_EDITOR 127 | _rp_setAllowedTimeToRecord(value); 128 | #endif 129 | } 130 | } 131 | 132 | #endregion 133 | 134 | #region Singleton implementation 135 | private static ReplayKitUnity _instance; 136 | public static ReplayKitUnity Instance { 137 | get { 138 | if (_instance == null) { 139 | var obj = new GameObject("ReplayKitUnity"); 140 | Debug.Log("ADDING REPLAYKIT SCRIPT" + obj); 141 | _instance = obj.AddComponent(); 142 | } 143 | return _instance; 144 | } 145 | } 146 | 147 | void Awake() { 148 | if (_instance != null) { 149 | Destroy(gameObject); 150 | return; 151 | } 152 | 153 | DontDestroyOnLoad(gameObject); 154 | } 155 | #endregion 156 | 157 | #region Delegates 158 | 159 | // Subrscribe to this action and return a call back of when the recording starts 160 | public System.Action onStartScreenCapture; 161 | 162 | // Subscribe to this action and return a video file path when the recording stops 163 | public System.Action onStopScreenCaptureWithFile; 164 | 165 | public void OnStartRecording() { 166 | if (onStartScreenCapture != null) { 167 | Debug.Log ("Callback calling callback"); 168 | onStartScreenCapture.Invoke(); 169 | } 170 | } 171 | 172 | public void OnStopRecording(string file) { 173 | if (onStopScreenCaptureWithFile != null) { 174 | onStopScreenCaptureWithFile.Invoke(file); 175 | } 176 | } 177 | 178 | #endregion 179 | } 180 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/ReplayKitUnity.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c801fa694eef44e09b5e453ad6227df3 3 | timeCreated: 1518144562 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/ReplayKitUnityBridge-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "UnityInterface.h" 4 | 5 | /* When you build your Unity project and open the Xcode project the "UnityInterface.h" import will allow for you to access Unity methods inside Xcode */ 6 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Plugins/iOS/ReplayKitUnity/Source/ReplayKitUnityBridge-Bridging-Header.h.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce3117ffee75542159e09625ccfe3217 3 | timeCreated: 1518144562 4 | licenseType: Free 5 | PluginImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | iconMap: {} 9 | executionOrder: {} 10 | isPreloaded: 0 11 | isOverridable: 0 12 | platformData: 13 | - first: 14 | Any: 15 | second: 16 | enabled: 0 17 | settings: {} 18 | - first: 19 | Editor: Editor 20 | second: 21 | enabled: 0 22 | settings: 23 | DefaultValueInitialized: true 24 | - first: 25 | iPhone: iOS 26 | second: 27 | enabled: 1 28 | settings: {} 29 | userData: 30 | assetBundleName: 31 | assetBundleVariant: 32 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/RecordController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.Video; 5 | 6 | public class RecordController : MonoBehaviour { 7 | 8 | public VideoPlayer videoPlayer; 9 | private bool isRecording = false; 10 | public GameObject cube; 11 | public GameObject videoTexture; 12 | public float TimeToRecord; 13 | 14 | private static string MailSubjectLine = "Test Hello"; 15 | 16 | void Start () { 17 | 18 | // Set the time you are allowing the user to record gameplay 19 | ReplayKitUnity.AllowedTimeToRecord = TimeToRecord; 20 | 21 | // Tells ReplayKit to use a default interface that is excluded in playback 22 | ReplayKitUnity.ShowDefaultButtonUI(); 23 | 24 | // Subscribe to the ReplayKit callbacks 25 | if (ReplayKitUnity.IsScreenRecorderAvailable) { 26 | ReplayKitUnity.Instance.onStopScreenCaptureWithFile += OnStopCallback; 27 | ReplayKitUnity.Instance.onStartScreenCapture += OnStartRecording; 28 | } 29 | } 30 | 31 | 32 | // Call back that is triggered from iOS native 33 | public void OnStartRecording() { 34 | if (!isRecording) { 35 | isRecording = true; 36 | cube.SetActive(true); 37 | } 38 | } 39 | 40 | 41 | // You will recieve the file path to the recorded gameplay session here 42 | public void OnStopCallback(string file) { 43 | isRecording = false; 44 | cube.SetActive(false); 45 | videoTexture.SetActive(true); 46 | 47 | // Play the recorded video 48 | StartCoroutine(playVideo(file)); 49 | } 50 | 51 | IEnumerator playVideo(string file) { 52 | 53 | videoPlayer.enabled = true; 54 | if (videoPlayer == null) { 55 | Debug.Log("video player is null"); 56 | yield return null; 57 | } 58 | 59 | //Disable Play on Awake for both Video and Audio 60 | videoPlayer.playOnAwake = false; 61 | 62 | //We want to play from video clip not from url 63 | videoPlayer.source = VideoSource.Url; 64 | videoPlayer.url = file; 65 | 66 | //Set Audio Output to AudioSource 67 | videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource; 68 | 69 | //Assign the Audio from Video to AudioSource to be played 70 | videoPlayer.EnableAudioTrack(0, true); 71 | //videoPlayer.SetTargetAudioSource(0, audioSource); 72 | 73 | //Set video To Play then prepare Audio to prevent Buffering 74 | videoPlayer.Prepare(); 75 | 76 | //Wait until video is prepared 77 | while (!videoPlayer.isPrepared) { 78 | Debug.Log("Preparing Video"); 79 | yield return null; 80 | } 81 | 82 | Debug.Log("Done Preparing Video"); 83 | 84 | // Play Video 85 | videoPlayer.Play(); 86 | 87 | 88 | Debug.Log("Playing Video"); 89 | while (videoPlayer.isPlaying) { 90 | // Debug.LogWarning("Video Time: " + Mathf.FloorToInt((float)videoPlayer.time)); 91 | yield return null; 92 | } 93 | 94 | Debug.Log("Done Playing Video"); 95 | } 96 | 97 | public void ShowSendVideoButton() { 98 | 99 | } 100 | 101 | public void DidTapSend() { 102 | 103 | // Set the subject line for the email message 104 | ReplayKitUnity.MailSubjectText = MailSubjectLine; 105 | 106 | // Show the email/iOS share sheet 107 | ReplayKitUnity.ShowEmailShareSheet(); 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/RecordController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65d453b4c87d645b9948086a11a9d7fa 3 | timeCreated: 1515714689 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ee7b3204596f4a3b9e89efb328f180f 3 | folderAsset: yes 4 | timeCreated: 1518145510 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Textures/VideoRenderTexture.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: VideoRenderTexture 9 | m_ImageContentsHash: 10 | serializedVersion: 2 11 | Hash: 00000000000000000000000000000000 12 | m_ForcedFallbackFormat: 4 13 | m_DownscaleFallback: 0 14 | m_Width: 256 15 | m_Height: 256 16 | m_AntiAliasing: 1 17 | m_DepthFormat: 2 18 | m_ColorFormat: 0 19 | m_MipMap: 0 20 | m_GenerateMips: 1 21 | m_SRGB: 0 22 | m_UseDynamicScale: 0 23 | m_BindMS: 0 24 | m_TextureSettings: 25 | serializedVersion: 2 26 | m_FilterMode: 1 27 | m_Aniso: 0 28 | m_MipBias: 0 29 | m_WrapU: 1 30 | m_WrapV: 1 31 | m_WrapW: 1 32 | m_Dimension: 2 33 | m_VolumeDepth: 1 34 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/Assets/Textures/VideoRenderTexture.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b1abddb9713b44b5a113feb4f15a612 3 | timeCreated: 1518145520 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 8400000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/DemoUnityAndReplayKit.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoUnityAndReplayKit", "Assembly-CSharp.csproj", "{3E1D0D37-E1C8-F862-71BF-C363506C472E}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoUnityAndReplayKit", "Assembly-CSharp-firstpass.csproj", "{ED3AF4B7-5D21-E389-E669-78F2A0E8C41F}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoUnityAndReplayKit", "Assembly-CSharp-Editor-firstpass.csproj", "{7F3A171D-D9E9-EC56-94DE-704B700A58DA}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3E1D0D37-E1C8-F862-71BF-C363506C472E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {3E1D0D37-E1C8-F862-71BF-C363506C472E}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {3E1D0D37-E1C8-F862-71BF-C363506C472E}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {3E1D0D37-E1C8-F862-71BF-C363506C472E}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {ED3AF4B7-5D21-E389-E669-78F2A0E8C41F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {ED3AF4B7-5D21-E389-E669-78F2A0E8C41F}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {ED3AF4B7-5D21-E389-E669-78F2A0E8C41F}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {ED3AF4B7-5D21-E389-E669-78F2A0E8C41F}.Release|Any CPU.Build.0 = Release|Any CPU 24 | {7F3A171D-D9E9-EC56-94DE-704B700A58DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 25 | {7F3A171D-D9E9-EC56-94DE-704B700A58DA}.Debug|Any CPU.Build.0 = Debug|Any CPU 26 | {7F3A171D-D9E9-EC56-94DE-704B700A58DA}.Release|Any CPU.ActiveCfg = Release|Any CPU 27 | {7F3A171D-D9E9-EC56-94DE-704B700A58DA}.Release|Any CPU.Build.0 = Release|Any CPU 28 | EndGlobalSection 29 | GlobalSection(SolutionProperties) = preSolution 30 | HideSolutionNode = FALSE 31 | EndGlobalSection 32 | GlobalSection(MonoDevelopProperties) = preSolution 33 | StartupItem = Assembly-CSharp.csproj 34 | EndGlobalSection 35 | EndGlobal 36 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 1 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 1 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 42 | type: 0} 43 | m_CustomRenderPipeline: {fileID: 0} 44 | m_TransparencySortMode: 0 45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 46 | m_DefaultRenderingPath: 1 47 | m_DefaultMobileRenderingPath: 1 48 | m_TierSettings: [] 49 | m_LightmapStripping: 0 50 | m_FogStripping: 0 51 | m_InstancingStripping: 0 52 | m_LightmapKeepPlain: 1 53 | m_LightmapKeepDirCombined: 1 54 | m_LightmapKeepDynamicPlain: 1 55 | m_LightmapKeepDynamicDirCombined: 1 56 | m_LightmapKeepShadowMask: 1 57 | m_LightmapKeepSubtractive: 1 58 | m_FogKeepLinear: 1 59 | m_FogKeepExp: 1 60 | m_FogKeepExp2: 1 61 | m_AlbedoSwatchInfos: [] 62 | m_LightsUseLinearIntensity: 0 63 | m_LightsUseColorTemperature: 0 64 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2017.3.0b11 2 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 4 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 4 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 4 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 0 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 4 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 70 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 2 136 | antiAliasing: 2 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 4 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 2 164 | antiAliasing: 2 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 4 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSM: 5 183 | PSP2: 2 184 | Standalone: 5 185 | Tizen: 2 186 | WebGL: 3 187 | WiiU: 5 188 | Windows Store Apps: 5 189 | XboxOne: 5 190 | iPhone: 2 191 | tvOS: 2 192 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 1 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Frameworks/Mono/MonoEmbedRuntime/osx/libMonoPosixHelper.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Frameworks/Mono/MonoEmbedRuntime/osx/libMonoPosixHelper.dylib -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Frameworks/Mono/MonoEmbedRuntime/osx/libmono.0.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Frameworks/Mono/MonoEmbedRuntime/osx/libmono.0.dylib -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSAppTransportSecurity 6 | 7 | NSAllowsArbitraryLoads 8 | 9 | 10 | CFBundleDevelopmentRegion 11 | English 12 | CFBundleExecutable 13 | iOSBuild1 14 | CFBundleGetInfoString 15 | Unity Player version 2017.3.0b11 (8e840c60cd77). (c) 2017 Unity Technologies ApS. All rights reserved. 16 | CFBundleIconFile 17 | PlayerIcon.icns 18 | CFBundleIdentifier 19 | com.Company.ProductName 20 | CFBundleInfoDictionaryVersion 21 | 6.0 22 | CFBundleSupportedPlatforms 23 | 24 | MacOSX 25 | 26 | LSApplicationCategoryType 27 | public.app-category.games 28 | CFBundleName 29 | DemoUnityAndReplayKit 30 | CFBundlePackageType 31 | APPL 32 | CFBundleShortVersionString 33 | 1.0 34 | CFBundleVersion 35 | 0 36 | NSMainNibFile 37 | MainMenu 38 | NSPrincipalClass 39 | PlayerApplication 40 | UnityBuildNumber 41 | 8e840c60cd77 42 | LSMinimumSystemVersion 43 | 10.9.0 44 | 45 | 46 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MacOS/iOSBuild1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/MacOS/iOSBuild1 -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Mono/etc/mono/2.0/Browsers/Compat.browser: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Mono/etc/mono/2.0/settings.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 10 | 11 | 20 | 23 | 24 | 25 | 26 | 29 | 30 | 33 | 34 | 43 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Mono/etc/mono/browscap.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Mono/etc/mono/browscap.ini -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Mono/etc/mono/config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/2.0/Browsers/Compat.browser: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/2.0/settings.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 10 | 11 | 20 | 23 | 24 | 25 | 26 | 29 | 30 | 33 | 34 | 43 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/4.0/Browsers/Compat.browser: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/4.0/settings.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 10 | 11 | 20 | 23 | 24 | 25 | 26 | 29 | 30 | 33 | 34 | 43 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/4.5/Browsers/Compat.browser: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/4.5/settings.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 10 | 11 | 20 | 23 | 24 | 25 | 26 | 29 | 30 | 33 | 34 | 43 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/browscap.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/browscap.ini -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/MonoBleedingEdge/etc/mono/registry/last-btime: -------------------------------------------------------------------------------- 1 | -1 2 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Ageia.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Ageia.tif -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/Assembly-CSharp-firstpass.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/Assembly-CSharp-firstpass.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/Assembly-CSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/Assembly-CSharp.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/Mono.Security.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/Mono.Security.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/System.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/System.Core.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/System.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/System.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AIModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AIModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ARModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ARModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ARModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.ARModule 6 | 7 | 8 | 9 | Class used to override a camera's default background rendering path to instead render a given Texture and/or Material. This will typically be used with images from the color camera for rendering the AR background on mobile devices. 10 | 11 | 12 | 13 | 14 | The Material used for AR rendering. 15 | 16 | 17 | 18 | 19 | Called when any of the public properties of this class have been changed. 20 | 21 | 22 | 23 | 24 | 25 | An optional Texture used for AR rendering. If this property is not set then the texture set in XR.ARBackgroundRenderer._backgroundMaterial as "_MainTex" is used. 26 | 27 | 28 | 29 | 30 | An optional Camera whose background rendering will be overridden by this class. If this property is not set then the main Camera in the scene is used. 31 | 32 | 33 | 34 | 35 | When set to XR.ARRenderMode.StandardBackground (default) the camera is not overridden to display the background image. Setting this property to XR.ARRenderMode.MaterialAsBackground will render the texture specified by XR.ARBackgroundRenderer._backgroundMaterial and or XR.ARBackgroundRenderer._backgroundTexture as the background. 36 | 37 | 38 | 39 | 40 | Disables AR background rendering. This method is called internally but can be overridden by users who wish to subclass XR.ARBackgroundRenderer to customize handling of AR background rendering. 41 | 42 | 43 | 44 | 45 | Enumeration describing the AR rendering mode used with XR.ARBackgroundRenderer. 46 | 47 | 48 | 49 | 50 | The material associated with XR.ARBackgroundRenderer is being rendered as the background. 51 | 52 | 53 | 54 | 55 | The standard background is rendered. (Skybox, Solid Color, etc.) 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AccessibilityModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AccessibilityModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AccessibilityModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.AccessibilityModule 6 | 7 | 8 | 9 | A class containing methods to assist with accessibility for users with different vision capabilities. 10 | 11 | 12 | 13 | 14 | Gets a palette of colors that should be distinguishable for normal vision, deuteranopia, protanopia, and tritanopia. 15 | 16 | An array of colors to populate with a palette. 17 | Minimum allowable perceived luminance from 0 to 1. A value of 0.2 or greater is recommended for dark backgrounds. 18 | Maximum allowable perceived luminance from 0 to 1. A value of 0.8 or less is recommended for light backgrounds. 19 | 20 | The number of unambiguous colors in the palette. 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Analytics.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Analytics.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AnimationModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AnimationModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AssetBundleModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AssetBundleModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AssetBundleModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.AssetBundleModule 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AudioModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.AudioModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClothModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClothModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClusterInputModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClusterInputModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClusterInputModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.ClusterInputModule 6 | 7 | 8 | 9 | Interface for reading and writing inputs in a Unity Cluster. 10 | 11 | 12 | 13 | 14 | Add a new VRPN input entry. 15 | 16 | Name of the input entry. This has to be unique. 17 | Device name registered to VRPN server. 18 | URL to the vrpn server. 19 | Index of the Input entry, refer to vrpn.cfg if unsure. 20 | Type of the input. 21 | 22 | True if the operation succeed. 23 | 24 | 25 | 26 | 27 | Check the connection status of the device to the VRPN server it connected to. 28 | 29 | Name of the input entry. 30 | 31 | 32 | 33 | Edit an input entry which added via ClusterInput.AddInput. 34 | 35 | Name of the input entry. This has to be unique. 36 | Device name registered to VRPN server. 37 | URL to the vrpn server. 38 | Index of the Input entry, refer to vrpn.cfg if unsure. 39 | Type of the ClusterInputType as follow. 40 | 41 | 42 | 43 | Returns the axis value as a continous float. 44 | 45 | Name of input to poll.c. 46 | 47 | 48 | 49 | Returns the binary value of a button. 50 | 51 | Name of input to poll. 52 | 53 | 54 | 55 | Return the position of a tracker as a Vector3. 56 | 57 | Name of input to poll. 58 | 59 | 60 | 61 | Returns the rotation of a tracker as a Quaternion. 62 | 63 | Name of input to poll. 64 | 65 | 66 | 67 | Sets the axis value for this input. Only works for input typed Custom. 68 | 69 | Name of input to modify. 70 | Value to set. 71 | 72 | 73 | 74 | Sets the button value for this input. Only works for input typed Custom. 75 | 76 | Name of input to modify. 77 | Value to set. 78 | 79 | 80 | 81 | Sets the tracker position for this input. Only works for input typed Custom. 82 | 83 | Name of input to modify. 84 | Value to set. 85 | 86 | 87 | 88 | Sets the tracker rotation for this input. Only works for input typed Custom. 89 | 90 | Name of input to modify. 91 | Value to set. 92 | 93 | 94 | 95 | Values to determine the type of input value to be expect from one entry of ClusterInput. 96 | 97 | 98 | 99 | 100 | Device is an analog axis that provides continuous value represented by a float. 101 | 102 | 103 | 104 | 105 | Device that return a binary result of pressed or not pressed. 106 | 107 | 108 | 109 | 110 | A user customized input. 111 | 112 | 113 | 114 | 115 | Device that provide position and orientation values. 116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClusterRendererModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClusterRendererModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ClusterRendererModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.ClusterRendererModule 6 | 7 | 8 | 9 | A helper class that contains static method to inquire status of Unity Cluster. 10 | 11 | 12 | 13 | 14 | Check whether the current instance is disconnected from the cluster network. 15 | 16 | 17 | 18 | 19 | Check whether the current instance is a master node in the cluster network. 20 | 21 | 22 | 23 | 24 | To acquire or set the node index of the current machine from the cluster network. 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.CoreModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.CoreModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.CrashReportingModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.CrashReportingModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.CrashReportingModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.CrashReportingModule 6 | 7 | 8 | 9 | Engine API for CrashReporting Service. 10 | 11 | 12 | 13 | 14 | This Boolean field will cause CrashReportHandler to capture exceptions when set to true. By default enable capture exceptions is true. 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.DirectorModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.DirectorModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.GameCenterModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.GameCenterModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.GridModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.GridModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.IMGUIModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.IMGUIModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ImageConversionModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ImageConversionModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ImageConversionModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.ImageConversionModule 6 | 7 | 8 | 9 | Class with utility methods and extension methods to deal with converting image data from or to PNG and JPEG formats. 10 | 11 | 12 | 13 | 14 | Encodes this texture into the EXR format. 15 | 16 | The texture to convert. 17 | Flags used to control compression and the output format. 18 | 19 | 20 | 21 | Encodes this texture into JPG format. 22 | 23 | Text texture to convert. 24 | JPG quality to encode with, 1..100 (default 75). 25 | 26 | 27 | 28 | Encodes this texture into JPG format. 29 | 30 | Text texture to convert. 31 | JPG quality to encode with, 1..100 (default 75). 32 | 33 | 34 | 35 | Encodes this texture into PNG format. 36 | 37 | The texture to convert. 38 | 39 | 40 | 41 | Loads PNG/JPG image byte array into a texture. 42 | 43 | The byte array containing the image data to load. 44 | Set to false by default, pass true to optionally mark the texture as non-readable. 45 | The texture to load the image into. 46 | 47 | Returns true if the data can be loaded, false otherwise. 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.InputModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.InputModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.InputModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.InputModule 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.JSONSerializeModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.JSONSerializeModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.JSONSerializeModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.JSONSerializeModule 6 | 7 | 8 | 9 | Utility functions for working with JSON data. 10 | 11 | 12 | 13 | 14 | Create an object from its JSON representation. 15 | 16 | The JSON representation of the object. 17 | 18 | An instance of the object. 19 | 20 | 21 | 22 | 23 | Create an object from its JSON representation. 24 | 25 | The JSON representation of the object. 26 | The type of object represented by the Json. 27 | 28 | An instance of the object. 29 | 30 | 31 | 32 | 33 | Overwrite data in an object by reading from its JSON representation. 34 | 35 | The JSON representation of the object. 36 | The object that should be overwritten. 37 | 38 | 39 | 40 | Generate a JSON representation of the public fields of an object. 41 | 42 | The object to convert to JSON form. 43 | If true, format the output for readability. If false, format the output for minimum size. Default is false. 44 | 45 | The object's data in JSON format. 46 | 47 | 48 | 49 | 50 | Generate a JSON representation of the public fields of an object. 51 | 52 | The object to convert to JSON form. 53 | If true, format the output for readability. If false, format the output for minimum size. Default is false. 54 | 55 | The object's data in JSON format. 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Networking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Networking.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ParticleSystemModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ParticleSystemModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ParticlesLegacyModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ParticlesLegacyModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.PerformanceReportingModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.PerformanceReportingModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.PerformanceReportingModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.PerformanceReportingModule 6 | 7 | 8 | 9 | Unity Performace provides insight into your game performace. 10 | 11 | 12 | 13 | 14 | Controls whether the Performance Reporting service is enabled at runtime. 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Physics2DModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Physics2DModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.PhysicsModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.PhysicsModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ScreenCaptureModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ScreenCaptureModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.ScreenCaptureModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.ScreenCaptureModule 6 | 7 | 8 | 9 | Functionality to take Screenshots. 10 | 11 | 12 | 13 | 14 | Captures a screenshot at path filename as a PNG file. 15 | 16 | Pathname to save the screenshot file to. 17 | Factor by which to increase resolution. 18 | 19 | 20 | 21 | Captures a screenshot of the game view into a Texture2D object. 22 | 23 | Factor by which to increase resolution. 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SharedInternalsModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SharedInternalsModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SharedInternalsModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.SharedInternalsModule 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SpatialTracking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SpatialTracking.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SpriteMaskModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SpriteMaskModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SpriteMaskModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.SpriteMaskModule 6 | 7 | 8 | 9 | A component for masking Sprites and Particles. 10 | 11 | 12 | 13 | 14 | The minimum alpha value used by the mask to select the area of influence defined over the mask's sprite. 15 | 16 | 17 | 18 | 19 | Unique ID of the sorting layer defining the end of the custom range. 20 | 21 | 22 | 23 | 24 | Order within the back sorting layer defining the end of the custom range. 25 | 26 | 27 | 28 | 29 | Unique ID of the sorting layer defining the start of the custom range. 30 | 31 | 32 | 33 | 34 | Order within the front sorting layer defining the start of the custom range. 35 | 36 | 37 | 38 | 39 | Mask sprites from front to back sorting values only. 40 | 41 | 42 | 43 | 44 | The Sprite used to define the mask. 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SpriteShapeModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.SpriteShapeModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.StyleSheetsModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.StyleSheetsModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.StyleSheetsModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.StyleSheetsModule 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TerrainModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TerrainModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TerrainPhysicsModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TerrainPhysicsModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TerrainPhysicsModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.TerrainPhysicsModule 6 | 7 | 8 | 9 | A heightmap based collider. 10 | 11 | 12 | 13 | 14 | The terrain that stores the heightmap. 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TextRenderingModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TextRenderingModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TilemapModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.TilemapModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Timeline.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.Timeline.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UI.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UIElementsModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UIElementsModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UIModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UIModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UNETModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UNETModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityAnalyticsModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityAnalyticsModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityConnectModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityConnectModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestAudioModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestAudioModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestAudioModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.UnityWebRequestAudioModule 6 | 7 | 8 | 9 | A DownloadHandler subclass specialized for downloading audio data for use as AudioClip objects. 10 | 11 | 12 | 13 | 14 | Returns the downloaded AudioClip, or null. (Read Only) 15 | 16 | 17 | 18 | 19 | Constructor, specifies what kind of audio data is going to be downloaded. 20 | 21 | The nominal (pre-redirect) URL at which the audio clip is located. 22 | Value to set for AudioClip type. 23 | 24 | 25 | 26 | Returns the downloaded AudioClip, or null. 27 | 28 | A finished UnityWebRequest object with DownloadHandlerAudioClip attached. 29 | 30 | The same as DownloadHandlerAudioClip.audioClip 31 | 32 | 33 | 34 | 35 | Called by DownloadHandler.data. Returns a copy of the downloaded clip data as raw bytes. 36 | 37 | 38 | A copy of the downloaded data. 39 | 40 | 41 | 42 | 43 | A specialized DownloadHandler for creating MovieTexture out of downloaded bytes. 44 | 45 | 46 | 47 | 48 | A MovieTexture created out of downloaded bytes. 49 | 50 | 51 | 52 | 53 | Create new DownloadHandlerMovieTexture. 54 | 55 | 56 | 57 | 58 | A convenience (helper) method for casting DownloadHandler to DownloadHandlerMovieTexture and accessing its movieTexture property. 59 | 60 | A UnityWebRequest with attached DownloadHandlerMovieTexture. 61 | 62 | A MovieTexture created out of downloaded bytes. 63 | 64 | 65 | 66 | 67 | Raw downloaded data. 68 | 69 | 70 | Raw downloaded bytes. 71 | 72 | 73 | 74 | 75 | Helpers for downloading multimedia files using UnityWebRequest. 76 | 77 | 78 | 79 | 80 | Create a UnityWebRequest to download an audio clip via HTTP GET and create an AudioClip based on the retrieved data. 81 | 82 | The URI of the audio clip to download. 83 | The type of audio encoding for the downloaded audio clip. See AudioType. 84 | 85 | A UnityWebRequest properly configured to download an audio clip and convert it to an AudioClip. 86 | 87 | 88 | 89 | 90 | Create a UnityWebRequest intended to download a movie clip via HTTP GET and create an MovieTexture based on the retrieved data. 91 | 92 | The URI of the movie clip to download. 93 | 94 | A UnityWebRequest properly configured to download a movie clip and convert it to a MovieTexture. 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestTextureModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestTextureModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestTextureModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.UnityWebRequestTextureModule 6 | 7 | 8 | 9 | A DownloadHandler subclass specialized for downloading images for use as Texture objects. 10 | 11 | 12 | 13 | 14 | Returns the downloaded Texture, or null. (Read Only) 15 | 16 | 17 | 18 | 19 | Default constructor. 20 | 21 | 22 | 23 | 24 | Constructor, allows TextureImporter.isReadable property to be set. 25 | 26 | Value to set for TextureImporter.isReadable. 27 | 28 | 29 | 30 | Returns the downloaded Texture, or null. 31 | 32 | A finished UnityWebRequest object with DownloadHandlerTexture attached. 33 | 34 | The same as DownloadHandlerTexture.texture 35 | 36 | 37 | 38 | 39 | Called by DownloadHandler.data. Returns a copy of the downloaded image data as raw bytes. 40 | 41 | 42 | A copy of the downloaded data. 43 | 44 | 45 | 46 | 47 | Helpers for downloading image files into Textures using UnityWebRequest. 48 | 49 | 50 | 51 | 52 | Create a UnityWebRequest intended to download an image via HTTP GET and create a Texture based on the retrieved data. 53 | 54 | The URI of the image to download. 55 | If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: false. 56 | 57 | A UnityWebRequest properly configured to download an image and convert it to a Texture. 58 | 59 | 60 | 61 | 62 | Create a UnityWebRequest intended to download an image via HTTP GET and create a Texture based on the retrieved data. 63 | 64 | The URI of the image to download. 65 | If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: false. 66 | 67 | A UnityWebRequest properly configured to download an image and convert it to a Texture. 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestWWWModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.UnityWebRequestWWWModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.VRModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.VRModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.VehiclesModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.VehiclesModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.VideoModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.VideoModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.WebModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.WebModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.WebModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.WebModule 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.WindModule.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.WindModule.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.WindModule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine.WindModule 6 | 7 | 8 | 9 | Wind Zones add realism to the trees you create by making them wave their branches and leaves as if blown by the wind. 10 | 11 | 12 | 13 | 14 | Defines the type of wind zone to be used (Spherical or Directional). 15 | 16 | 17 | 18 | 19 | Radius of the Spherical Wind Zone (only active if the WindZoneMode is set to Spherical). 20 | 21 | 22 | 23 | 24 | The primary wind force. 25 | 26 | 27 | 28 | 29 | Defines the frequency of the wind changes. 30 | 31 | 32 | 33 | 34 | Defines ow much the wind changes over time. 35 | 36 | 37 | 38 | 39 | The turbulence wind force. 40 | 41 | 42 | 43 | 44 | The constructor. 45 | 46 | 47 | 48 | 49 | Modes a Wind Zone can have, either Spherical or Directional. 50 | 51 | 52 | 53 | 54 | Wind zone affects the entire scene in one direction. 55 | 56 | 57 | 58 | 59 | Wind zone only has an effect inside the radius, and has a falloff from the center towards the edge. 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/UnityEngine.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UnityEngine 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/mscorlib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Managed/mscorlib.dll -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Resources/unity_builtin_extra: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/Resources/unity_builtin_extra -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/boot.config: -------------------------------------------------------------------------------- 1 | wait-for-native-debugger=0 2 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/globalgamemanagers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/globalgamemanagers -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/globalgamemanagers.assets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/globalgamemanagers.assets -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/level0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/level0 -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/level0.resS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/level0.resS -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/sharedassets0.assets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Data/sharedassets0.assets -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/DefaultPreferences.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSQuitAlwaysKeepsWindows 6 | 7 | Screenmanager Is Fullscreen mode 8 | True 9 | 10 | 11 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/KeyConfig.nib/classes.nib: -------------------------------------------------------------------------------- 1 | { 2 | IBClasses = ( 3 | {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 4 | { 5 | CLASS = KeyConfig; 6 | LANGUAGE = ObjC; 7 | OUTLETS = {"m_KeyLabel" = id; "m_Progress" = id; }; 8 | SUPERCLASS = NSObject; 9 | } 10 | ); 11 | IBVersion = 1; 12 | } -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/KeyConfig.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBDocumentLocation 6 | 69 14 356 240 0 0 1280 832 7 | IBFramework Version 8 | 439.0 9 | IBOpenObjects 10 | 11 | 5 12 | 13 | IBSystem Version 14 | 8B15 15 | 16 | 17 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/KeyConfig.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/KeyConfig.nib/keyedobjects.nib -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/MainMenu.nib/classes.nib: -------------------------------------------------------------------------------- 1 | { 2 | IBClasses = ( 3 | { 4 | CLASS = FirstResponder; 5 | LANGUAGE = ObjC; 6 | SUPERCLASS = NSObject; 7 | }, 8 | { 9 | ACTIONS = { 10 | ToggleFullscreen = id; 11 | }; 12 | CLASS = PlayerAppDelegate; 13 | LANGUAGE = ObjC; 14 | OUTLETS = { 15 | "m_AboutBox" = id; 16 | "m_AboutMenuItem" = id; 17 | "m_FullscreenMenuItem" = id; 18 | "m_HideMenuItem" = id; 19 | "m_QuitMenuItem" = id; 20 | }; 21 | SUPERCLASS = NSObject; 22 | }, 23 | { 24 | CLASS = PlayerApplication; 25 | LANGUAGE = ObjC; 26 | SUPERCLASS = NSApplication; 27 | } 28 | ); 29 | IBVersion = 1; 30 | } -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/MainMenu.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBDocumentLocation 6 | 800 216 356 240 0 0 1440 878 7 | IBEditorPositions 8 | 9 | 29 10 | 59 447 210 44 0 0 1440 878 11 | 12 | IBFramework Version 13 | 489.0 14 | IBOpenObjects 15 | 16 | 251 17 | 29 18 | 19 | IBSystem Version 20 | 9C7010 21 | IBUsesTextArchiving 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/MainMenu.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/MainMenu.nib/keyedobjects.nib -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Mono.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/Mono.tif -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/ScreenSelector.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | ACTIONS 9 | 10 | Play 11 | id 12 | Quit 13 | id 14 | SaveAndQuit 15 | id 16 | 17 | CLASS 18 | ScreenSelector 19 | LANGUAGE 20 | ObjC 21 | OUTLETS 22 | 23 | m_GraphicsQuality 24 | id 25 | m_Input 26 | id 27 | m_OptionKey 28 | id 29 | m_ScreenResolution 30 | id 31 | m_Windowed 32 | id 33 | 34 | SUPERCLASS 35 | NSObject 36 | 37 | 38 | CLASS 39 | FirstResponder 40 | LANGUAGE 41 | ObjC 42 | SUPERCLASS 43 | NSObject 44 | 45 | 46 | CLASS 47 | ScreenSelectorTableView 48 | LANGUAGE 49 | ObjC 50 | SUPERCLASS 51 | NSTableView 52 | 53 | 54 | IBVersion 55 | 1 56 | 57 | 58 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/ScreenSelector.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 677 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 11 12 | 13 | IBSystem Version 14 | 9J61 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/ScreenSelector.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/ScreenSelector.nib/keyedobjects.nib -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/UnityPlayerIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/UnityPlayerIcon.png -------------------------------------------------------------------------------- /DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/unity default resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/DemoUnityAndReplayKit/iOSBuild1.app/Contents/Resources/unity default resources -------------------------------------------------------------------------------- /Images/unity_replaykit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/Images/unity_replaykit.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 ustwo™ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Plugin Source/Editor /SwiftPostProcessor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using UnityEditor.Callbacks; 4 | using UnityEditor.iOS.Xcode; 5 | using System.Collections; 6 | using System.Collections.Generic; 7 | using System.Diagnostics; 8 | using System.IO; 9 | using System.Linq; 10 | 11 | /// 12 | /// This class is responsible for directing Unity's Xcode build to the bridging-header and Swift exposed Objective-C files that are part of this plugin 13 | /// Please take special note to the file path created for the SWIFT_OBJC_BRIDGING_HEADER . It must match the path that exists in your Unity project 14 | /// 15 | 16 | public static class SwiftPostProcessor { 17 | [PostProcessBuild] 18 | public static void OnPostProcessBuild(BuildTarget buildTarget, string buildPath) { 19 | if(buildTarget == BuildTarget.iOS) { 20 | 21 | // We need to tell the Unity build to look at the write build file path and specifically reference the exposed Swift header file for it to work 22 | var projPath = buildPath + "/Unity-iPhone.xcodeproj/project.pbxproj"; 23 | var proj = new PBXProject(); 24 | proj.ReadFromFile(projPath); 25 | 26 | var targetGuid = proj.TargetGuidByName(PBXProject.GetUnityTargetName()); 27 | 28 | proj.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO"); 29 | 30 | // This must match the file path of where the bridging header lives in your Unity project 31 | proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_BRIDGING_HEADER", "Libraries/Plugins/iOS/ReplayKitUnity/Source/ReplayKitUnityBridge-Bridging-Header.h"); 32 | 33 | // We specifically reference the generated Swift to Objective-C header 34 | proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_INTERFACE_HEADER_NAME", "ReplayUnityBridge-Swift.h"); 35 | proj.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks"); 36 | 37 | proj.WriteToFile(projPath); 38 | } 39 | } 40 | } 41 | 42 | -------------------------------------------------------------------------------- /Plugin Source/Source/FileHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FileHandler.swift 3 | // ReplayKitSandbox 4 | // 5 | // Created by Sonam on 12/7/17. 6 | // Copyright © 2017 ustwo. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | // Referenced source code here: https://github.com/giridharvc7/ScreenRecord/blob/master/ScreenRecordDemo/Source/FileUtil.swift 12 | 13 | @objc class FileHandler: NSObject { 14 | 15 | static let folderName = "Replays" 16 | 17 | private class func createFolder() { 18 | 19 | // path to documents directory 20 | let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first 21 | 22 | if let documentDirectoryPath = documentDirectoryPath { 23 | // create the custom folder path 24 | let replayDirectoryPath = documentDirectoryPath.appending("/\(FileHandler.folderName)") 25 | let fileManager = FileManager.default 26 | 27 | if !fileManager.fileExists(atPath: replayDirectoryPath) { 28 | do { 29 | try fileManager.createDirectory(atPath: replayDirectoryPath, 30 | withIntermediateDirectories: false, 31 | attributes: nil) 32 | } catch { 33 | print("Error creating Replays folder in documents dir: \(error)") 34 | } 35 | } 36 | } 37 | } 38 | 39 | public class func filePath(_ fileName: String) -> String { 40 | 41 | createFolder() 42 | 43 | let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 44 | let documentsDirectory = paths[0] as String 45 | 46 | let filePath : String = "\(documentsDirectory)/\(FileHandler.folderName)/\(fileName).mp4" 47 | 48 | print("FILe handler created a path at \(filePath)") 49 | return filePath 50 | } 51 | 52 | internal class func fetchAllReplays() -> [URL] { 53 | 54 | let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first 55 | 56 | guard let replayPath = documentsDirectory?.appendingPathComponent("/\(FileHandler.folderName)") else { 57 | print("file path does not exist") 58 | return [] 59 | } 60 | 61 | do { 62 | let directoryContents = try FileManager.default.contentsOfDirectory(at: replayPath, includingPropertiesForKeys: nil, options: []) 63 | return directoryContents 64 | } catch { 65 | print(error) 66 | } 67 | 68 | return [] 69 | } 70 | 71 | } 72 | 73 | -------------------------------------------------------------------------------- /Plugin Source/Source/RecordViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecordUIViewController.swift 3 | // ReplayKitSandbox 4 | // 5 | // Created by Sonam on 12/14/17. 6 | // Copyright © 2017 ustwo. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @objc class RecordViewController: UIViewController { 12 | 13 | private let startRecordBtn = UIButton(type: UIButtonType.roundedRect) 14 | private let progressView = UIView(frame: CGRect.zero) 15 | private var progressWidthConstraint: NSLayoutConstraint? 16 | 17 | public var recordDuration: CGFloat = 0 18 | 19 | override func viewDidLoad() { 20 | super.viewDidLoad() 21 | setupView() 22 | } 23 | 24 | private func setupView() { 25 | 26 | //*** Start button 27 | startRecordBtn.backgroundColor = .purple 28 | startRecordBtn.addTarget(self, action: #selector(didTapStartRecording), for: .touchUpInside) 29 | view.addSubview(startRecordBtn) 30 | setupStartBtnConstraints() 31 | 32 | //*** Progress tracker 33 | if recordTimeHasBeenSet() { 34 | view.addSubview(progressView) 35 | setupProgressViewConstraints() 36 | } 37 | } 38 | 39 | override func viewDidLayoutSubviews() { 40 | 41 | super.viewDidLayoutSubviews() 42 | startRecordBtn.layer.masksToBounds = true 43 | startRecordBtn.layer.cornerRadius = startRecordBtn.frame.width/2 44 | } 45 | 46 | public func relayoutInterface() { 47 | 48 | startRecordBtn.isHidden = false 49 | if recordTimeHasBeenSet() { 50 | progressWidthConstraint?.constant = 0 51 | progressView.isHidden = false 52 | } 53 | } 54 | 55 | @objc func didTapStartRecording() { 56 | 57 | ReplayKitNative.shared.startScreenCaptureAndSaveToFile() 58 | self.beginRecordProgress() 59 | } 60 | 61 | private func beginRecordProgress() { 62 | 63 | startRecordBtn.isHidden = true 64 | 65 | if recordTimeHasBeenSet() { 66 | progressView.backgroundColor = UIColor(red: 219/255, green: 48/255, blue: 103/155, alpha: 1.0) 67 | 68 | UIView.animate(withDuration: 15.0, delay: 0.0, options: .curveLinear, animations: { 69 | 70 | guard let safeWidthConstraint = self.progressWidthConstraint else { return } 71 | safeWidthConstraint.constant = self.view.frame.width 72 | self.view.layoutIfNeeded() 73 | 74 | }) { (completed) in 75 | 76 | ReplayKitNative.shared.stopScreenCapture() 77 | self.progressView.isHidden = true 78 | } 79 | } 80 | } 81 | 82 | 83 | //MARK: - Autolayout 84 | 85 | private func setupStartBtnConstraints() { 86 | 87 | startRecordBtn.translatesAutoresizingMaskIntoConstraints = false 88 | 89 | NSLayoutConstraint(item: startRecordBtn, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1.0, constant: 0).isActive = true 90 | 91 | NSLayoutConstraint(item: startRecordBtn, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1.0, constant: -30).isActive = true 92 | 93 | NSLayoutConstraint(item: startRecordBtn, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 80.0).isActive = true 94 | 95 | NSLayoutConstraint(item: startRecordBtn, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 80.0).isActive = true 96 | 97 | } 98 | 99 | private func setupProgressViewConstraints() { 100 | 101 | progressView.translatesAutoresizingMaskIntoConstraints = false 102 | 103 | NSLayoutConstraint(item: progressView, attribute: .left, relatedBy: .equal, toItem: view, attribute: .left, multiplier: 1.0, constant: 0).isActive = true 104 | 105 | NSLayoutConstraint(item: progressView, attribute: NSLayoutAttribute.bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1.0, constant: 0).isActive = true 106 | 107 | NSLayoutConstraint(item: progressView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 40.0).isActive = true 108 | 109 | 110 | progressWidthConstraint = NSLayoutConstraint(item: progressView, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 0) 111 | 112 | progressWidthConstraint?.isActive = true 113 | 114 | } 115 | 116 | //MARK: - Helpers 117 | 118 | // An optional type was not used here to allow for the property to be exposed to objective-c 119 | func recordTimeHasBeenSet() -> Bool { 120 | return recordDuration > 0.0 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /Plugin Source/Source/ReplayKitBridge.mm: -------------------------------------------------------------------------------- 1 | // 2 | // ReplayKitBridge.mm 3 | // ReplayKitSandbox 4 | // 5 | // Created by Sonam on 12/7/17. 6 | // Copyright © 2017 ustwo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //** This import is required in order for Swift functions & properties to be exposed to this class 12 | #include "ReplayKitUnityBridge-Swift.h" 13 | #include 14 | 15 | 16 | #pragma mark - C interface 17 | 18 | extern "C" { 19 | 20 | #pragma mark - Functions 21 | 22 | void _rp_startRecording() { 23 | [[ReplayKitNative shared] startScreenCaptureAndSaveToFile]; 24 | } 25 | 26 | void _rp_stopRecording() { 27 | [[ReplayKitNative shared] stopScreenCapture]; 28 | } 29 | 30 | void _rp_addDefaultButtonWindow() { 31 | [[ReplayKitNative shared] addDefaultButtonWindowForUnity]; 32 | } 33 | 34 | void _rp_showEmailShareSheet() { 35 | [[ReplayKitNative shared] showEmailShareSheet]; 36 | } 37 | 38 | 39 | #pragma mark - Getters 40 | 41 | BOOL _rp_isRecording() { 42 | return [[ReplayKitNative shared] isRecording]; 43 | } 44 | 45 | BOOL _rp_screenRecordingIsAvail() { 46 | return [[ReplayKitNative shared] screenRecorderAvailable]; 47 | } 48 | 49 | BOOL _rp_isCameraEnabled() { 50 | return [[ReplayKitNative shared] cameraEnabled]; 51 | } 52 | 53 | float _rp_allowedRecordTime() { 54 | return [[ReplayKitNative shared] recordTime]; 55 | } 56 | 57 | const char* _rp_mailSubjectText() { 58 | const char *mailStringC = [[ReplayKitNative shared].mailSubjectText UTF8String]; 59 | return mailStringC; 60 | } 61 | 62 | #pragma mark - Setters 63 | 64 | void _rp_setCameraEnabled(BOOL cameraEnabled) { 65 | [[ReplayKitNative shared] setCameraEnabled: cameraEnabled]; 66 | } 67 | 68 | void _rp_setMailSubject(const char* mailSubject) { 69 | [ReplayKitNative shared].mailSubjectText = [NSString stringWithCString:mailSubject encoding:NSUTF8StringEncoding]; 70 | } 71 | 72 | void _rp_setAllowedTimeToRecord(float seconds) { 73 | [ReplayKitNative shared].recordTime = seconds; 74 | } 75 | } 76 | 77 | -------------------------------------------------------------------------------- /Plugin Source/Source/ReplayKitUnity.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Runtime.InteropServices; 3 | 4 | 5 | /// 6 | /// Responsible for communicating with iOS Bridge file "ReplayKitBridge.mm". 7 | /// 8 | public class ReplayKitUnity : MonoBehaviour { 9 | 10 | #region Declare external C interface 11 | #if UNITY_IOS && !UNITY_EDITOR 12 | 13 | //Functions 14 | [DllImport("__Internal")] 15 | private static extern void _rp_startRecording(); 16 | 17 | [DllImport("__Internal")] 18 | private static extern void _rp_stopRecording(); 19 | 20 | [DllImport("__Internal")] 21 | private static extern void _rp_addDefaultButtonWindow(); 22 | 23 | [DllImport("__Internal")] 24 | private static extern void _rp_showEmailShareSheet(); 25 | 26 | //Properties 27 | [DllImport("__Internal")] 28 | private static extern bool _rp_screenRecordingIsAvail(); 29 | 30 | [DllImport("__Internal")] 31 | private static extern bool _rp_isRecording(); 32 | 33 | [DllImport("__Internal")] 34 | private static extern string _rp_mailSubjectText(); 35 | 36 | [DllImport("__Internal")] 37 | private static extern float _rp_allowedRecordTime(); 38 | 39 | // ** Setters ** 40 | [DllImport("__Internal")] 41 | private static extern void _rp_setCameraEnabled(bool cameraEnabled); 42 | 43 | [DllImport("__Internal")] 44 | private static extern void _rp_setMailSubject(string mailSubject); 45 | 46 | [DllImport("__Internal")] 47 | private static extern void _rp_setAllowedTimeToRecord(float seconds); 48 | 49 | 50 | #endif 51 | #endregion 52 | 53 | #region Public methods that you can use in your Unity project 54 | 55 | public static void StartRecording() { 56 | #if UNITY_IOS && !UNITY_EDITOR 57 | _rp_startRecording(); 58 | #endif 59 | } 60 | 61 | // Displays a recording button and recording progress view on the UI if there's a contsrained recording time set. These UI elements are excluded from the actual playback 62 | public static void ShowDefaultButtonUI() { 63 | #if UNITY_IOS && !UNITY_EDITOR 64 | _rp_addDefaultButtonWindow(); 65 | #endif 66 | } 67 | 68 | public static void StopRecording() { 69 | #if UNITY_IOS && !UNITY_EDITOR 70 | _rp_stopRecording(); 71 | #endif 72 | } 73 | 74 | // Show the standard iOS share sheet with email and default system options (message, facebook, twitter) 75 | public static void ShowEmailShareSheet() { 76 | #if UNITY_IOS && !UNITY_EDITOR 77 | _rp_showEmailShareSheet(); 78 | #endif 79 | } 80 | 81 | // Check to see if the OS you are running allows for screen recording 82 | public static bool IsScreenRecorderAvailable { 83 | get { 84 | #if UNITY_IOS && !UNITY_EDITOR 85 | return _rp_screenRecordingIsAvail(); 86 | #else 87 | return false; 88 | #endif 89 | } 90 | } 91 | 92 | // Check to see if the screen is currently being recorded 93 | public static bool IsRecording { 94 | get { 95 | #if UNITY_IOS && !UNITY_EDITOR 96 | return _rp_isRecording(); 97 | #else 98 | return false; 99 | #endif 100 | } 101 | } 102 | 103 | // Set the subject line for sharing the recorded file via email 104 | public static string MailSubjectText { 105 | get { 106 | #if UNITY_IOS && !UNITY_EDITOR 107 | return _rp_mailSubjectText(); 108 | #else 109 | return ""; 110 | #endif 111 | } set { 112 | #if UNITY_IOS && !UNITY_EDITOR 113 | _rp_setMailSubject(value); 114 | #endif 115 | } 116 | } 117 | 118 | public static float AllowedTimeToRecord { 119 | get { 120 | #if UNITY_IOS && !UNITY_EDITOR 121 | return _rp_allowedRecordTime(); 122 | #else 123 | return 0; 124 | #endif 125 | } set { 126 | #if UNITY_IOS && !UNITY_EDITOR 127 | _rp_setAllowedTimeToRecord(value); 128 | #endif 129 | } 130 | } 131 | 132 | #endregion 133 | 134 | #region Singleton implementation 135 | private static ReplayKitUnity _instance; 136 | public static ReplayKitUnity Instance { 137 | get { 138 | if (_instance == null) { 139 | var obj = new GameObject("ReplayKitUnity"); 140 | Debug.Log("ADDING REPLAYKIT SCRIPT" + obj); 141 | _instance = obj.AddComponent(); 142 | } 143 | return _instance; 144 | } 145 | } 146 | 147 | void Awake() { 148 | if (_instance != null) { 149 | Destroy(gameObject); 150 | return; 151 | } 152 | 153 | DontDestroyOnLoad(gameObject); 154 | } 155 | #endregion 156 | 157 | #region Delegates 158 | 159 | // Subrscribe to this action and return a call back of when the recording starts 160 | public System.Action onStartScreenCapture; 161 | 162 | // Subscribe to this action and return a video file path when the recording stops 163 | public System.Action onStopScreenCaptureWithFile; 164 | 165 | public void OnStartRecording() { 166 | if (onStartScreenCapture != null) { 167 | Debug.Log ("Callback calling callback"); 168 | onStartScreenCapture.Invoke(); 169 | } 170 | } 171 | 172 | public void OnStopRecording(string file) { 173 | if (onStopScreenCaptureWithFile != null) { 174 | onStopScreenCaptureWithFile.Invoke(file); 175 | } 176 | } 177 | 178 | #endregion 179 | } 180 | -------------------------------------------------------------------------------- /Plugin Source/Source/ReplayKitUnityBridge-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "UnityInterface.h" 4 | 5 | /* When you build your Unity project and open the Xcode project the "UnityInterface.h" import will allow for you to access Unity methods inside Xcode */ 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | [![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/ustwo/ReplayKitUnityBridge) 3 | 4 |

5 | 6 |

7 | 8 | 9 | ## Summary 10 | 11 | This is a Unity plugin for iOS that allows you to record the screen and capture gameplay. It includes the Xcode project that it was built in. To start using it, simply drag the PluginSource folder into your Unity project as a sub-folder in the following directory/file path: Assets > Plugins > iOS > ReplayKitUnity > Drag the source and editor folders into here 12 | 13 | 14 | Blog Post describing the steps to make a bridge: https://medium.com/@SoCohesive/unity-how-to-build-a-bridge-ios-to-unity-with-swift-f23653f6261 15 | 16 | ## Disclaimer: 17 | 18 | This plugin is a work in progress and has been built to show the steps of creating a Unity iOS plugin using Swift 19 | 20 | ## Features 21 | 22 | - [x] Record Screen 23 | - [x] Stop recording of screen 24 | - [x] Recieve video file (.mp4) of recording 25 | - [x] Set a restricting time to allow for recording the screen 26 | - [x] A record button and progress bar of your recording playback that is excluded from the screen recording 27 | - [x] Share the recorded file via the standard iOS share sheet (mail, twitter, facebook) 28 | 29 | 30 | ## Requirements 31 | 32 | - iOS 11.0 or later 33 | 34 | ## Getting Started 35 | 36 | - Go to the "Demo" folder, Main Scene. View the RecordController script for sample code 37 | 38 | 39 | ## Communication 40 | 41 | - If you **found a bug**, open an issue. 42 | - If you **have a feature request**, open an issue. 43 | - If you **want to contribute**, submit a pull request. 44 | 45 | 46 | ## Installation 47 | 48 | - Open the Plugin Source folder, Drag the "Source" and "Editor" folder into your Unity project. 49 | - It must be dragged into the following Unity file path : Assets > Plugins > iOS > ReplayKitUnity 50 | 51 | ## How To Use 52 | 53 | 54 | 55 | 1. Start a screen recording 56 | 57 | ```csharp 58 | ReplayKitUnity.StartRecording(); 59 | ``` 60 | 61 | 2. Stop the screen recording 62 | 63 | 64 | ```csharp 65 | ReplayKitUnity.StopRecording(); 66 | ``` 67 | 68 | 3. Get the video file after recording is complete 69 | 70 | a) Subscribe to the onStopCaptureWithFile action in ReplayKitUnity 71 | 72 | ```csharp 73 | ReplayKitUnity.Instance.onStopCaptureWithFile += OnStopRecording; (connect to your function) 74 | ``` 75 | 76 | b) Use the VideoPlayer Unity componnent or any video playback technique to play the .mp4 77 | 78 | 79 | 4. Get notified when the recording has started 80 | 81 | ```csharp 82 | ReplayKitUnity.Instance.onStartRecording += OnStartRecording; (connect to your function) 83 | ``` 84 | 85 | 5. Set a constrained time to record gameplahy (ie - only 10 seconds) 86 | 87 | ```csharp 88 | ReplayKitUnity.AllowedTimeToRecord = 10.0f; 89 | ``` 90 | 91 | 6. Set the subject line for sharing the video file via email 92 | ```csharp 93 | ReplayKitUnity.MailSubjectText = "Check this recording of my game out!"; 94 | ``` 95 | 96 | 97 | ## Contact: 98 | - Email: sdhingra89@gmail.com 99 | 100 | 101 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge.xcodeproj/project.xcworkspace/xcuserdata/sdhin1.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/ReplayKitUnityBridge.xcodeproj/project.xcworkspace/xcuserdata/sdhin1.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ReplayKitUnityBridge.xcodeproj/xcuserdata/sonam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ReplayKitUnityBridge.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ReplayKitUnityBridge 4 | // 5 | // Created by Sonam on 1/9/18. 6 | // Copyright © 2018 Sonam. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Assets.xcassets/recordbtnImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "recordbtnImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "recordbtnImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "recordbtnImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Assets.xcassets/recordbtnImage.imageset/recordbtnImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/ReplayKitUnityBridge/Assets.xcassets/recordbtnImage.imageset/recordbtnImage.png -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Assets.xcassets/recordbtnImage.imageset/recordbtnImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/ReplayKitUnityBridge/Assets.xcassets/recordbtnImage.imageset/recordbtnImage@2x.png -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Assets.xcassets/recordbtnImage.imageset/recordbtnImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ustwo/ReplayKitUnityBridge/13027648556578b4df7da92fa20382a61d8d27b8/ReplayKitUnityBridge/Assets.xcassets/recordbtnImage.imageset/recordbtnImage@3x.png -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge/UnityInterface.h: -------------------------------------------------------------------------------- 1 | // 2 | // UnityInterface.h 3 | // ReplayKitUnityBridge 4 | // 5 | // Created by Sonam on 1/15/18. 6 | // Copyright © 2018 Sonam. All rights reserved. 7 | // 8 | 9 | 10 | // ** 11 | // ** This is strictly a dummy Header file to prevent compile error when building your Unity source/plugin code in a sandbox project 12 | // * 13 | 14 | 15 | #import 16 | #import 17 | 18 | @interface UnityInterface : NSObject 19 | 20 | - (UIViewController) UnityGetGLViewController(); 21 | - void UnitySendMessage 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /ReplayKitUnityBridge/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ReplayKitUnityBridge 4 | // 5 | // Created by Sonam on 1/9/18. 6 | // Copyright © 2018 Sonam. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /ReplayKitUnityBridgeTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ReplayKitUnityBridgeTests/ReplayKitUnityBridgeTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ReplayKitUnityBridgeTests.swift 3 | // ReplayKitUnityBridgeTests 4 | // 5 | // Created by Sonam on 1/9/18. 6 | // Copyright © 2018 Sonam. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import ReplayKitUnityBridge 11 | 12 | class ReplayKitUnityBridgeTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /ReplayKitUnityBridgeUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ReplayKitUnityBridgeUITests/ReplayKitUnityBridgeUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ReplayKitUnityBridgeUITests.swift 3 | // ReplayKitUnityBridgeUITests 4 | // 5 | // Created by Sonam on 1/9/18. 6 | // Copyright © 2018 Sonam. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class ReplayKitUnityBridgeUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | --------------------------------------------------------------------------------