From ffab38c131511d0a80bc0bcd92ad353e2e52ea93 Mon Sep 17 00:00:00 2001 From: BrandonRPS Date: Mon, 5 Sep 2022 14:51:42 +0100 Subject: [PATCH 1/5] Updated for Unity URP/HDRP --- Moments Recorder/Demo/Demo.unity | Bin 18244 -> 15857 bytes Moments Recorder/Demo/DemoSettings.lighting | 65 ++++++++++++++++++ .../Demo/DemoSettings.lighting.meta | 8 +++ Moments Recorder/Demo/Materials/Cube.mat | Bin 4944 -> 3742 bytes Moments Recorder/Demo/Materials/Floor.mat | Bin 4948 -> 3742 bytes Moments Recorder/Demo/Prefabs/Cube.prefab | Bin 7132 -> 3051 bytes Moments Recorder/Scripts/Editor/MinDrawer.cs | 4 +- Moments Recorder/Scripts/Recorder.cs | 21 +++++- 8 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 Moments Recorder/Demo/DemoSettings.lighting create mode 100644 Moments Recorder/Demo/DemoSettings.lighting.meta diff --git a/Moments Recorder/Demo/Demo.unity b/Moments Recorder/Demo/Demo.unity index 53cc13f26b988f1b68dfdcbb4b5cf0da8a9140ed..1147a5a87ee8f445c1daf5465817a7dd03eabb02 100644 GIT binary patch literal 15857 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 b0q)8wUmVQ%-O?km?0=OnYD(mL^TmGy+D8no literal 18244 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 a2OFrZ7XnQ3V|*K{Z4RqB#V4Oz%JDxhm$#Du diff --git a/Moments Recorder/Demo/DemoSettings.lighting b/Moments Recorder/Demo/DemoSettings.lighting new file mode 100644 index 0000000..696445d --- /dev/null +++ b/Moments Recorder/Demo/DemoSettings.lighting @@ -0,0 +1,65 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!850595691 &4890085278179872738 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DemoSettings + serializedVersion: 5 + m_GIWorkflowMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 0 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_LightmapCompression: 3 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 1 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentImportanceSampling: 0 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_PVRTiledBaking: 0 + m_NumRaysToShootPerTexel: -1 diff --git a/Moments Recorder/Demo/DemoSettings.lighting.meta b/Moments Recorder/Demo/DemoSettings.lighting.meta new file mode 100644 index 0000000..d27b0eb --- /dev/null +++ b/Moments Recorder/Demo/DemoSettings.lighting.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37c82be223856c44789e727d38474cbb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 4890085278179872738 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Moments Recorder/Demo/Materials/Cube.mat b/Moments Recorder/Demo/Materials/Cube.mat index 832199da4788d5b46d38c9a4004c0c485f376646..acb461601d4a76e5225af510969c3d9e85a3f28c 100644 GIT binary patch literal 3742 zcmcgvOLN;c5WeeIAcy26X$UvS>bew5B9Sul;5^9iOK~S;U>3{D6ASp_A zPMwekO56qa@$GUS?|)rvJ|o=6o%fH68}zPthcwyEiB^G>hVGu#12 z9|qVnS7$>sQ=Eu-2cg{l<9{>y#8l2@I!8W`lkHvjCyVqaPT5C6cKIB6mb{cou{@J0 z<>@Yvg^HLvIYuocz}wy;m$I;X2JVNh9_n{vywre$Bik3B0l_LS|(JdqSCN z92@!8moC~BoX*i~I2;cLWE4lyEF|$LCf;a7V&-uM?7$ zcw$Rjr6dH@97q7^6M@L2y4H3r3*ZM3270rugHYsJCJ!tHOuiJX0LOYpT&@*}cqF?G z$&6(PxigQ}_q&YzRTwxa&y7;*K)ojr0nk@jDWhjbn{Hb>19CW{TIp{j&(JcG?IU|x zr3Z_TMd*s;thUNnW{>DXy-EzjH0&TE!Z2Uv2zSvD?k0Bbg7l1Imp8!nEZb(C(^Vu{ zTe_~9CR{8;$f#^r=Z56ZF31Lxp9rUO@m8vYh_+l@B|JCPs4aaP!c$1uR`A?F$_T-u z8zJ+&EeG$SNEB@%dQTL1NnYA=FvwV|h}urOt!jE%=zi{(c%gEg(l+wdX*In{ngG%tS&@zs}n*O*VT{MbI zwHHP96+72g7Y<&RBnw8v@v3xM5ns!h!5Rq-nJbwlF#0^OSipD(6&AdxeXlCgrFKi_ zrOPLmEcy7hsH(^{3^T!KJk}K{&@hbc^uA$8RXhxWUX7|9b*jd1#!>6l1B)1k@Y)1z zdUF=2lhr3O6nry)EcYZ$8HBGES*6M+nAn7w+RntPs0>AoTTqh9P@L$6iisJ0Ysp`q z0v0u%ze)8R3;3`sHua0YeN$Y+dybH7mr_V|%6~IVSrUv#kk4L!Fr7|(JQ>3{Y#t}r zAB;SI*hQgvocfdLWHcRh5do2Iih{4`|4XP+ttrWw;51u>r@8FxxXDaoJj`}rGu**c zxSv^Q;?R`cACwNluk{Rms~3{(Rlx-JnY5x@OZ93?3nIm{=6-|m z_-tRI9_&lRpM^M{Va!H;IAeGc(r6YBm^bz>_9eHCSrDAYrGTwrO`(#QeF?${yhF7> HPCEYq6A~lx literal 4944 zcmeI0J!~9B6vyA*#b@I{a0uorkOaaIX-pAZ| zc14Ci7CBHCky}N^a1l8bxQu--rjZ`fN{v=mG{Q3eR}lVR%PYOuUmhOp9cE} zG6Z3JRwRY~wjQJ+4nCikCH=~gbPpiyWa7w8=>G(MGp;4gsa=xaVB;{x)GrtK1neBc zcqG3^ZGPS_N&0PWhkj(#wo@taqMc#G9eEk{zknV3&o!Kswo1+v{GpK3XXg}oS^Ieq zbLi(Nxt6kAfbJy-$9oNT1U6&_!gwic{qf$SS;mWg?lU~|^DM^n2i3w#THo@MCEU%= z{p4C~KW{TUtJhl?Gp+*=Hs+LdX`xSkJ0V&L{0gogLFferv5?0hplz*1<&#`Vy$~0xt0;D zj)x2%lB?*CqVBZ8eahxYMXtinZ_sCLk3iTQ8P@iD`}uy&GG46j1BO@RSJ?gzWA4GD z5L%<1EyVggM$G?%#0CBXM&u6>Yo6Kp5hL1pn7E+dv-3zF@7XzKcuCjs7mS(DN6AzA zZ`biL!|gggPL9@J$K!-4xn0L647ckzVYpq#N$}n3c!FGuT}OTgGd`sA$vQG`PeR!E zedNCV9eu|86k$qk$NRM5cDyIa(fZ?khA<_!kEOm#_?P?PQv!cpEp+Hqc7{@y%K*OHHSow+rr{g4C zT}4l3Sub}fYMcphRwlt5&F16eIureR#^e-Qqd$K(t!=&iX5=SI&(ra0U;K`WV;Y+s z#UGb7&d$tQkFOW5=X@!NRA((|0b*^wGU%_hnTq>-b>l8yTv83{XK$z6UOlwp@*+9+ zqgxA`^o&i%)XP_f1jlgM2Ql;KcyiBg7A|_t{N5|aKb#q<9-6)6FY3Ll>(*Oe>u~*E H-m~j}mYV4q diff --git a/Moments Recorder/Demo/Materials/Floor.mat b/Moments Recorder/Demo/Materials/Floor.mat index e5030a8a349b11b98d70c1b8b16b9074f9258b23..7e95537c3aa1c680398daebe16f3279f285844ea 100644 GIT binary patch literal 3742 zcmcgvOLN;c5WeeIAcy26X$U<@-DFvDG>vS>bew5B9SuZ)5^9iOK~S;U>3{D6ASp_A zPMuJmk&In%AKxzb@&4EO`ZL0P+&4rxDmZcd|M=gGJ~5SZna+?8AiI2qJWF0krC6TH zl=5^J%0flV-JGF+VlLR~8gBk;uih&blkF|+C}=9fy7~H8&NEML+x5p z9&<*+8kTz{Gp00WH3UyYaQX{7ewT{o2E!iOEZ3_rT;1JTTUY7f>{dcYB?X ztOOKW;xZ*$fX$%81VRA%Dl295%xKeXYiCFfXH+ZwjqDj(MzVQi zFU#~`@v#V9k(||58O!VyU8q-?VVH&;Mno9q%M9TzI>NV!o%=w3#<5ErV0)Hr)6VHC zlB_LV*Gv;G=3>jJY**)+r=?0#`&96&#{0P%VJYM_}e$dH9Y4C$z~yiRHytm!;~e#cm(-e5dF zTbHN@>k{#UEsg_>*~s4p3{SQ+3gQ9t#{R{+&#tFCPNbf=d8{ux^P6wJ`5tR$ zc14EY7umNUA~%bS;UaQ$;>g6*%9Q-OwYB9q0OOF!%Wsce{pirS&C2rUU$*`lKLPd+ zWC+6ctVjy|Ej>s@9DF`4OZtT)=`KLp$;6Qx(EkzqMqEppQ@bR;!o~rNsb4Pe3D`M| z@kl;LZGPSNn<>&2& z@3QiF2RWL9-439>%qQ*NNtluk$-C%%nDe^~uVi(^nELw-AGY?r8$8R;h_&xM6_8^4KkzsAWcR$~!S;mX?z2ESP`~utGV9a~) z5QNrfXA`l0ixKnx0C9nThY|UM#F}SzzQ>4m9wIL2_v}2}$9r}T8(z|N{262B^AYlt z{@ZnY)Ns3wkCCJG*YR<}l-#c46NcM$oG{$3<0SY_bv#0@#jYd2gBc&v`D7iLw5Dp~CK$;NyXuBj;5sJE0#Xve#xnmP0p7cQvv+0La{ zI$k?plaXvH=|+mn8eX7eT{h4^zp@f*TXR9^C3^2L2%}gcS(Rn+bRm%3-3O6`tSywY zf1l&HsWf4&Ow&K&`6yCx*o_)0p6t?nce(2aiQjS6dJ=hN#h^3Dz#s#I3=A?b$iN^2 zgADwi8Q>!|PC8+PD~~PuD4uV~IUbYwSj@)^x90gB9G~*({F367NXeSkJK1fo)x5PH z%dWN_kE!mAN<2S!C5+l$a2B- zc|W?fuu0F@bWFW`Wk_%ompu@({uEE|`DEdu_sr+cd^}xUT3V`p@WUT?5=yJOZoU1r L4)^cnJ-hw~c&qEG diff --git a/Moments Recorder/Demo/Prefabs/Cube.prefab b/Moments Recorder/Demo/Prefabs/Cube.prefab index 718eebf301c2e4189613a6979413893552fac6b6..331f76a692c31c37a573bbb36947d1c0d085d18a 100644 GIT binary patch literal 3051 zcmdT`O^@O@5WVv&JcsF1gYrQ#z>R_Ko@kqH1P#(?v_ei&1n(v>vK^+G)%^D@+X-Jo zulBav93tYB%dUE_Ue(91!^tCYJ8tXa%kY7Gs6G%yvq4odwfECb!i!taaos_y-EQlz zF1c|XKMZ@V2U@^${0Agz&?2N*+5cZy3imn9@K;n$!Wa^TFNyS#s2{7Vs%2jW6YM8mPwC1q4|vKP)%N5F`c($Z=OHQ^E-xlVmsxM zy=;M?1wo)^@~^!h*7LD)^QQ?N`=Y>zdfGJQaY5ef!xvkmTxy4g=T~XvA+2gr zGqjpPiMf0)**r^8u^LgS<{O&w@7T0-){4~(5GyJ zN@#jmeX($$xl#TJm46-svp`J+;{scJvtv>dOloOpA9cucO<^@<=Y@`+gk2{Ny8&R= z>-WQW9Vedx>aP8Mzu%OdXNAya<}+2vCMwrl`zB<~1m?SnZF%bpBTwz?h*w(9Y!D}# zwG94BeUqnQnQZtKz)iwHvLX}fdFLfLX(n7+6pgU8PR)r$@8!MsE^IEet(#pK$x#5H5 T(qYqaeN6kwPd_IUQe>#F|%VQ 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 F{{yv@`KAB> diff --git a/Moments Recorder/Scripts/Editor/MinDrawer.cs b/Moments Recorder/Scripts/Editor/MinDrawer.cs index 6bf6c8e..aa6f906 100644 --- a/Moments Recorder/Scripts/Editor/MinDrawer.cs +++ b/Moments Recorder/Scripts/Editor/MinDrawer.cs @@ -27,12 +27,12 @@ namespace MomentsEditor { - [CustomPropertyDrawer(typeof(MinAttribute))] + [CustomPropertyDrawer(typeof(Moments.MinAttribute))] internal sealed class MinDrawer : PropertyDrawer { public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { - MinAttribute attribute = (MinAttribute)base.attribute; + Moments.MinAttribute attribute = (Moments.MinAttribute)base.attribute; if (property.propertyType == SerializedPropertyType.Integer) { diff --git a/Moments Recorder/Scripts/Recorder.cs b/Moments Recorder/Scripts/Recorder.cs index 86d210b..61bb006 100644 --- a/Moments Recorder/Scripts/Recorder.cs +++ b/Moments Recorder/Scripts/Recorder.cs @@ -23,8 +23,10 @@ using UnityEngine; using System; +using System.IO; using System.Collections; using System.Collections.Generic; +using UnityEngine.Rendering; using Moments.Encoder; using ThreadPriority = System.Threading.ThreadPriority; @@ -227,8 +229,9 @@ public void FlushMemory() if (m_Frames == null) return; - foreach (RenderTexture rt in m_Frames) + foreach (RenderTexture rt in m_Frames){ Flush(rt); + } m_Frames.Clear(); } @@ -279,6 +282,7 @@ public void Save(string filename) void Awake() { + RenderPipelineManager.endCameraRendering += OnEndCameraRendering; m_ReflectionUtils = new ReflectionUtils(this); m_Frames = new Queue(); Init(); @@ -289,6 +293,17 @@ void OnDestroy() FlushMemory(); } + void OnEndCameraRendering(ScriptableRenderContext context, Camera cam) + { + if (cam != Camera.main) + return; + + if (State == RecorderState.Recording) + { + OnRenderImage(cam.activeTexture, cam.targetTexture); + } + } + void OnRenderImage(RenderTexture source, RenderTexture destination) { if (State != RecorderState.Recording) @@ -320,6 +335,7 @@ void OnRenderImage(RenderTexture source, RenderTexture destination) } Graphics.Blit(source, rt); + m_Frames.Enqueue(rt); } @@ -381,7 +397,7 @@ string GenerateFileName() // Pre-processing coroutine to extract frame data and send everything to a separate worker thread IEnumerator PreProcess(string filename) { - string filepath = SaveFolder + "/" + filename + ".gif"; + string filepath = SaveFolder + Path.DirectorySeparatorChar + filename + ".gif"; List frames = new List(m_Frames.Count); // Get a temporary texture to read RenderTexture data @@ -412,6 +428,7 @@ IEnumerator PreProcess(string filename) // Setup a worker thread and let it do its magic GifEncoder encoder = new GifEncoder(m_Repeat, m_Quality); encoder.SetDelay(Mathf.RoundToInt(m_TimePerFrame * 1000f)); + Worker worker = new Worker(WorkerPriority) { m_Encoder = encoder, From 75d61585825ef23a0aaea8cf78dad530f5f3f24a Mon Sep 17 00:00:00 2001 From: BrandonRPS Date: Mon, 5 Sep 2022 15:00:30 +0100 Subject: [PATCH 2/5] Unsubscribe on Pause, Subscribe on Record --- Moments Recorder/Scripts/Recorder.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Moments Recorder/Scripts/Recorder.cs b/Moments Recorder/Scripts/Recorder.cs index 61bb006..9d56490 100644 --- a/Moments Recorder/Scripts/Recorder.cs +++ b/Moments Recorder/Scripts/Recorder.cs @@ -193,6 +193,8 @@ public void Pause() return; } + RenderPipelineManager.endCameraRendering -= OnEndCameraRendering; + State = RecorderState.Paused; } @@ -207,6 +209,8 @@ public void Record() return; } + RenderPipelineManager.endCameraRendering += OnEndCameraRendering; + State = RecorderState.Recording; } @@ -282,7 +286,6 @@ public void Save(string filename) void Awake() { - RenderPipelineManager.endCameraRendering += OnEndCameraRendering; m_ReflectionUtils = new ReflectionUtils(this); m_Frames = new Queue(); Init(); From 92f7e3f5985f1409ae57f43013f1346d4a59041a Mon Sep 17 00:00:00 2001 From: BrandonRPS Date: Mon, 5 Sep 2022 15:10:02 +0100 Subject: [PATCH 3/5] Flip texture vertically --- Moments Recorder/Scripts/Recorder.cs | 3 ++ Moments Recorder/Scripts/Utils.cs | 59 ++++++++++++++++++++++++++ Moments Recorder/Scripts/Utils.cs.meta | 11 +++++ 3 files changed, 73 insertions(+) create mode 100644 Moments Recorder/Scripts/Utils.cs create mode 100644 Moments Recorder/Scripts/Utils.cs.meta diff --git a/Moments Recorder/Scripts/Recorder.cs b/Moments Recorder/Scripts/Recorder.cs index 9d56490..b0849d9 100644 --- a/Moments Recorder/Scripts/Recorder.cs +++ b/Moments Recorder/Scripts/Recorder.cs @@ -449,6 +449,9 @@ GifFrame ToGifFrame(RenderTexture source, Texture2D target) { RenderTexture.active = source; target.ReadPixels(new Rect(0, 0, source.width, source.height), 0, 0); + + // Renders come through upside down for some reason... + target = Utils.FlipTextureVertically(target); target.Apply(); RenderTexture.active = null; diff --git a/Moments Recorder/Scripts/Utils.cs b/Moments Recorder/Scripts/Utils.cs new file mode 100644 index 0000000..361d24d --- /dev/null +++ b/Moments Recorder/Scripts/Utils.cs @@ -0,0 +1,59 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Moments +{ + public class Utils + { + public static Texture2D FlipTextureVertically(Texture2D original) + { + Texture2D newTex = original; + + var originalPixels = newTex.GetPixels(); + + var newPixels = new Color[originalPixels.Length]; + + var width = newTex.width; + var rows = newTex.height; + + for (var x = 0; x < width; x++) + { + for (var y = 0; y < rows; y++) + { + newPixels[x + y * width] = originalPixels[x + (rows - y -1) * width]; + } + } + + newTex.SetPixels(newPixels); + newTex.Apply(); + + return newTex; + } + + public static Texture2D FlipTextureHorizontally(Texture2D original) + { + Texture2D newTex = original; + + var originalPixels = newTex.GetPixels(); + + var newPixels = new Color[originalPixels.Length]; + + var width = newTex.width; + var rows = newTex.height; + + for (var x = 0; x < width; x++) + { + for (var y = 0; y < rows; y++) + { + newPixels[x + y * width] = originalPixels[(width - x - 1) + y * width]; + } + } + + newTex.SetPixels(newPixels); + newTex.Apply(); + + return newTex; + } + } +} \ No newline at end of file diff --git a/Moments Recorder/Scripts/Utils.cs.meta b/Moments Recorder/Scripts/Utils.cs.meta new file mode 100644 index 0000000..e9af165 --- /dev/null +++ b/Moments Recorder/Scripts/Utils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b9eb86086fb77f49b301c34c3eb896d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 93a3c56024b5c32eaca2e360cd7917c82f7253c3 Mon Sep 17 00:00:00 2001 From: Brannydonowt <36974368+Brannydonowt@users.noreply.github.com> Date: Mon, 5 Sep 2022 15:20:26 +0100 Subject: [PATCH 4/5] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1d59888..6704918 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ -# Moments +# Unity-Moments -**Moments** is a quick GIF replay recorder for Unity3D. It automatically records the last few seconds of gameplay and lets you save to a GIF file on demand, like the game [TowerFall Ascension](http://www.towerfall-game.com/) does. +Updated version of the following repository by [Chman](https://github.com/Chman/Moments) +**Moments** is a quick GIF replay recorder for Unity. It automatically records the last few seconds of gameplay and lets you save to a GIF file on demand. -Tested with Unity 4.6. The demo requires Unity 5+ (Personal or Pro). +Tested with Unity 2022.1. The demo requires use of the Universal or High Definition Render Pipelines. ## Instructions From 402510363f62e8b1ec2b9c1846bfc7dcdd4710c0 Mon Sep 17 00:00:00 2001 From: Brannydonowt <36974368+Brannydonowt@users.noreply.github.com> Date: Mon, 5 Sep 2022 15:20:41 +0100 Subject: [PATCH 5/5] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6704918..b96ca8b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Unity-Moments Updated version of the following repository by [Chman](https://github.com/Chman/Moments) + **Moments** is a quick GIF replay recorder for Unity. It automatically records the last few seconds of gameplay and lets you save to a GIF file on demand. Tested with Unity 2022.1. The demo requires use of the Universal or High Definition Render Pipelines.