Skip to content

Commit b5c7aaa

Browse files
committed
Implement ResetStaticFields for Unity play mode
Added ResetStaticFields method to prevent data persistence in Unity. Signed-off-by: Vanessa Vinther <7903603+ImDreamerDev@users.noreply.github.com>
1 parent 07f0e54 commit b5c7aaa

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

sdks/csharp/src/SpacetimeDBClient.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Linq;
77
using System.Threading;
88
using System.Threading.Tasks;
9+
using UnityEngine;
910
using SpacetimeDB.BSATN;
1011
using SpacetimeDB.ClientApi;
1112
using Thread = System.Threading.Thread;
@@ -289,6 +290,21 @@ internal struct ParsedMessage
289290

290291
private static readonly Status Committed = new Status.Committed(default);
291292

293+
/// <summary>
294+
/// Resets the static instance to prevent data persistence when Enter Play Mode Options (Disable Domain Reloading) is active.
295+
/// RuntimeInitializeOnLoadMethod is used since it is supported in older versions of Unity.
296+
/// AutoStaticsCleanup and NoAutoStaticsCleanup is only supported in Unity 6+
297+
/// </summary>
298+
/// <remarks>
299+
/// See the <see href="https://docs.unity3d.com/6000.5/Documentation/Manual/domain-reloading.html">Unity Domain Reloading Manual</see>
300+
/// and the <see href="https://docs.unity3d.com/6000.5/Documentation/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html">RuntimeInitializeOnLoadMethodAttribute API Docs</see> for details.
301+
/// </remarks>
302+
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
303+
private static void ResetStaticFields()
304+
{
305+
IsTesting = false;
306+
}
307+
292308
/// <summary>
293309
/// Get a description of a message suitable for storing in the tracker metadata.
294310
/// </summary>

0 commit comments

Comments
 (0)