Files

58 lines
997 B
Markdown

# Snippets
## Periodic Timer
```csharp
private static float _timer;
private const float INTERVAL = 10f;
private static void UpdatePostfix()
{
_timer += UnityEngine.Time.deltaTime;
if (_timer < INTERVAL) return;
_timer = 0f;
// Do something every 10 seconds
}
```
## Singleton Access
```csharp
// Most game managers use the Singleton pattern
var instance = ManagerType.GetProperty("Instance").GetValue(null);
```
## Safe Reflection
```csharp
try
{
var method = type.GetMethod("MethodName");
if (method == null)
{
Log.LogWarning("Method not found!");
return;
}
method.Invoke(instance, args);
}
catch (Exception ex)
{
Log.LogError($"Reflection error: {ex.Message}");
}
```
## Patch All Overloads
```csharp
var methods = targetType.GetMethods(BindingFlags.Public | BindingFlags.Instance);
foreach (var method in methods)
{
if (method.Name == "TargetMethod")
{
_harmony.Patch(method, prefix: myPrefix);
}
}
```