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(); var layer = GetComponent(); 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 }