diff --git a/ADOFAIRenderer.csproj b/ADOFAIRenderer.csproj index 4ab520a..08e5b21 100644 --- a/ADOFAIRenderer.csproj +++ b/ADOFAIRenderer.csproj @@ -44,6 +44,9 @@ $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.IMGUIModule.dll + + $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.ParticleSystemModule.dll + $(ADOFAI_PATH)\A Dance of Fire and Ice_Data\Managed\UnityEngine.TextRenderingModule.dll diff --git a/RenderMod.cs b/RenderMod.cs index 3a4e5bc..7459151 100644 --- a/RenderMod.cs +++ b/RenderMod.cs @@ -39,7 +39,7 @@ namespace ADOFAIRenderer public static int FrameCountBase; public static bool RenderCheck = true; - public static int SkipCount = 0; + public static int SkipCount; public override void OnInitializeMelon() { @@ -95,9 +95,9 @@ namespace ADOFAIRenderer // 60회 초과 시 최후의 블랙 프레임 삽입하여 전체 파이프라인 마비 방지 Melon.Logger.Error($"[Render Skipped] Frame {RenderManager.FrameCount} rendering failed after 60 retries. Supplying black frame."); - int targetFps = (int)RenderManager.Configuration.TargetFPS; - int videoFps = (int)RenderManager.Configuration.VideoFPS; - int num = targetFps % videoFps != 0 ? 1 : targetFps / videoFps; + var targetFps = (int)RenderManager.Configuration.TargetFPS; + var videoFps = (int)RenderManager.Configuration.VideoFPS; + var num = targetFps % videoFps != 0 ? 1 : targetFps / videoFps; if (FrameCountForVideo % num == 0) { @@ -123,6 +123,15 @@ namespace ADOFAIRenderer { Time.timeScale = (float)(Time.deltaTime / realDeltaTime); } + + var array = Object.FindObjectsByType(FindObjectsSortMode.None); + foreach (var particleSystem in array) + { + if (particleSystem.IsAlive(false)) + { + particleSystem.Simulate(Time.deltaTime, false, false, false); + } + } } public static int FrameCountForVideo;