Files
7d2dXG/Mods/0A-KFCommonUtilityLib/KFAttached/Misc/WeaponCameraFollow.cs
Nathaniel Cosford f0e287b071 Mods for V1.3
2025-06-03 22:58:58 +09:30

63 lines
1.9 KiB
C#

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.PostProcessing;
[AddComponentMenu("")]
public class WeaponCameraFollow : MonoBehaviour
{
public RenderTexture targetTexture;
#if NotEditor
public ActionModuleDynamicSensitivity.DynamicSensitivityData dynamicSensitivityData;
public EntityPlayerLocal player;
#endif
private void OnEnable()
{
#if NotEditor
OcclusionManager.Instance.SetMultipleCameras(true);
if (dynamicSensitivityData != null)
{
dynamicSensitivityData.activated = true;
}
//UpdateAntialiasing();
#endif
}
private void OnDisable()
{
#if NotEditor
OcclusionManager.Instance.SetMultipleCameras(false);
if (dynamicSensitivityData != null)
{
dynamicSensitivityData.activated = false;
}
#endif
if (!targetTexture || !targetTexture.IsCreated())
{
return;
}
var cmd = new CommandBuffer();
cmd.SetRenderTarget(targetTexture);
cmd.ClearRenderTarget(true, true, Color.black);
Graphics.ExecuteCommandBuffer(cmd);
cmd.Dispose();
}
#if NotEditor
public void UpdateAntialiasing()
{
var pipCamera = GetComponent<Camera>();
var layer = GetComponent<PostProcessLayer>();
var prevFsr = player.renderManager.fsr;
int num = player.renderManager.dlssEnabled ? 0 : GamePrefs.GetInt(EnumGamePrefs.OptionsGfxAA);
float @float = GamePrefs.GetFloat(EnumGamePrefs.OptionsGfxAASharpness);
player.renderManager.FSRInit(layer.superResolution);
player.renderManager.SetAntialiasing(num, @float, layer);
Rect rect = pipCamera.rect;
rect.x = ((layer.antialiasingMode == PostProcessLayer.Antialiasing.SuperResolution) ? 1E-07f : 0f);
pipCamera.rect = rect;
player.renderManager.fsr = prevFsr;
}
#endif
}