wip
This commit is contained in:
parent
364f313e79
commit
a9e11d0ba8
@ -3,7 +3,7 @@ using BepInEx.Configuration;
|
|||||||
using EFT;
|
using EFT;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Comfort.Common;
|
using Comfort.Common;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
namespace CameraResolutionScale
|
namespace CameraResolutionScale
|
||||||
{
|
{
|
||||||
@ -20,13 +20,10 @@ namespace CameraResolutionScale
|
|||||||
}
|
}
|
||||||
|
|
||||||
Rect defaultMainCameraRect;
|
Rect defaultMainCameraRect;
|
||||||
float rectScale;
|
|
||||||
bool setupDone = false;
|
|
||||||
|
|
||||||
|
|
||||||
Camera scopeCamera = null;
|
Camera scopeCamera = null;
|
||||||
|
|
||||||
bool isAiming = false;
|
bool isAiming = false;
|
||||||
|
bool doneOnce = false;
|
||||||
|
|
||||||
Utils utils = new Utils();
|
Utils utils = new Utils();
|
||||||
void Update()
|
void Update()
|
||||||
@ -37,47 +34,43 @@ namespace CameraResolutionScale
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Camera.allCamerasCount < 1) return;
|
if (Camera.allCamerasCount < 1) return;
|
||||||
if (Camera.main == null || Camera.main.isActiveAndEnabled == false)
|
|
||||||
{
|
|
||||||
setupDone = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var handsController = ((Singleton<GameWorld>.Instance.RegisteredPlayers[0].HandsController));
|
var handsController = ((Singleton<GameWorld>.Instance.RegisteredPlayers[0].HandsController));
|
||||||
isAiming = handsController.IsAiming;
|
isAiming = handsController.IsAiming;
|
||||||
|
|
||||||
|
if (isAiming && !doneOnce)
|
||||||
|
|
||||||
if (isAiming)
|
|
||||||
{
|
{
|
||||||
if (Camera.main == null || Camera.allCamerasCount <= 1) return;
|
if (Camera.main == null || Camera.allCamerasCount <= 1) return;
|
||||||
|
|
||||||
if (!setupDone)
|
|
||||||
{
|
|
||||||
Logger.LogInfo("Storing default Camera.main.rect");
|
|
||||||
defaultMainCameraRect = Camera.main.rect;
|
|
||||||
rectScale = defaultMainCameraRect.width;
|
|
||||||
Logger.LogInfo($"Rect: {defaultMainCameraRect}");
|
|
||||||
setupDone = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (scopeCamera == null) scopeCamera = Camera.allCameras[1];
|
if (scopeCamera == null) scopeCamera = Camera.allCameras[1];
|
||||||
|
scopeCamera = Camera.allCameras[1];
|
||||||
|
|
||||||
scopeCamera.GetComponent<SSAAOptic>().OpticCameraToMainCameraResolutionRatio = (float)(scopeCameraResolutionScale.Value / 100f);
|
StartCoroutine(setScaledCameraRes());
|
||||||
float scale = (float)cameraResolutionScale.Value / 100f;
|
doneOnce = true;
|
||||||
Camera.main.rect = new Rect(0, 0, rectScale * scale, rectScale * scale);
|
|
||||||
//Logger.LogInfo($"Updating render resolutions: Main Camera: {cameraResolutionScale.Value}% Scope Camera: {scopeCameraResolutionScale.Value}%");
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Camera.main.rect != defaultMainCameraRect && setupDone)
|
if(!isAiming && doneOnce)
|
||||||
{
|
{
|
||||||
Logger.LogInfo("Restoring default render resolution");
|
StartCoroutine(unsetScaledCameraRes());
|
||||||
Camera.main.rect = defaultMainCameraRect;
|
doneOnce = false;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IEnumerator setScaledCameraRes()
|
||||||
|
{
|
||||||
|
defaultMainCameraRect = Camera.main.rect;
|
||||||
|
|
||||||
|
yield return new WaitForSeconds(0.05f);
|
||||||
|
|
||||||
|
Camera.main.rect = new Rect(0, 0, defaultMainCameraRect.width * (cameraResolutionScale.Value / 100f), defaultMainCameraRect.height * (cameraResolutionScale.Value / 100f));
|
||||||
|
scopeCamera.GetComponent<SSAAOptic>().OpticCameraToMainCameraResolutionRatio = (float)(scopeCameraResolutionScale.Value / 100f);
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator unsetScaledCameraRes()
|
||||||
|
{
|
||||||
|
Camera.main.rect = defaultMainCameraRect;
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user