mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-03 06:49:22 +00:00
Compare commits
3 commits
bf877124c1
...
c455d20f9c
Author | SHA1 | Date | |
---|---|---|---|
|
c455d20f9c | ||
|
0cdef04a53 | ||
|
e96a0e164d |
5 changed files with 117 additions and 13 deletions
106
.Deprecated/SuperAwesomeMod/DepthCameraFix.cs
Normal file
106
.Deprecated/SuperAwesomeMod/DepthCameraFix.cs
Normal file
|
@ -0,0 +1,106 @@
|
|||
namespace NAK.SuperAwesomeMod;
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
[RequireComponent(typeof(Camera))]
|
||||
public class DepthTextureFix : MonoBehaviour
|
||||
{
|
||||
private Camera cam;
|
||||
private CommandBuffer beforeCommandBuffer;
|
||||
private CommandBuffer afterCommandBuffer;
|
||||
|
||||
void Start()
|
||||
{
|
||||
cam = GetComponent<Camera>();
|
||||
|
||||
// Ensure camera generates depth texture
|
||||
cam.depthTextureMode |= DepthTextureMode.Depth;
|
||||
|
||||
// Create command buffers
|
||||
beforeCommandBuffer = new CommandBuffer();
|
||||
beforeCommandBuffer.name = "DepthTextureFix_Before";
|
||||
|
||||
afterCommandBuffer = new CommandBuffer();
|
||||
afterCommandBuffer.name = "DepthTextureFix_After";
|
||||
|
||||
// Add command buffers at the right events
|
||||
cam.AddCommandBuffer(CameraEvent.BeforeDepthTexture, beforeCommandBuffer);
|
||||
cam.AddCommandBuffer(CameraEvent.AfterDepthTexture, afterCommandBuffer);
|
||||
}
|
||||
|
||||
void OnPreRender()
|
||||
{
|
||||
// Set up command buffers each frame to handle dynamic changes
|
||||
SetupCommandBuffers();
|
||||
}
|
||||
|
||||
void SetupCommandBuffers()
|
||||
{
|
||||
// Get current camera viewport in pixels
|
||||
Rect pixelRect = cam.pixelRect;
|
||||
|
||||
// Before depth texture: override viewport to full screen
|
||||
beforeCommandBuffer.Clear();
|
||||
beforeCommandBuffer.SetViewport(new Rect(0, 0, Screen.width, Screen.height));
|
||||
|
||||
// After depth texture: restore original viewport
|
||||
afterCommandBuffer.Clear();
|
||||
afterCommandBuffer.SetViewport(pixelRect);
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
// Clean up
|
||||
if (cam != null)
|
||||
{
|
||||
if (beforeCommandBuffer != null)
|
||||
{
|
||||
cam.RemoveCommandBuffer(CameraEvent.BeforeDepthTexture, beforeCommandBuffer);
|
||||
beforeCommandBuffer.Dispose();
|
||||
}
|
||||
|
||||
if (afterCommandBuffer != null)
|
||||
{
|
||||
cam.RemoveCommandBuffer(CameraEvent.AfterDepthTexture, afterCommandBuffer);
|
||||
afterCommandBuffer.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnDisable()
|
||||
{
|
||||
if (cam != null)
|
||||
{
|
||||
if (beforeCommandBuffer != null)
|
||||
cam.RemoveCommandBuffer(CameraEvent.BeforeDepthTexture, beforeCommandBuffer);
|
||||
if (afterCommandBuffer != null)
|
||||
cam.RemoveCommandBuffer(CameraEvent.AfterDepthTexture, afterCommandBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
if (cam != null && beforeCommandBuffer != null && afterCommandBuffer != null)
|
||||
{
|
||||
cam.AddCommandBuffer(CameraEvent.BeforeDepthTexture, beforeCommandBuffer);
|
||||
cam.AddCommandBuffer(CameraEvent.AfterDepthTexture, afterCommandBuffer);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,7 +13,6 @@ internal static class CameraLogic
|
|||
private static float _dist;
|
||||
private static float _scale = 1f;
|
||||
private static Camera _thirdPersonCam;
|
||||
private static Camera _uiCam;
|
||||
private static Camera _desktopCam;
|
||||
private static int _storedCamMask;
|
||||
private static CameraFovClone _cameraFovClone;
|
||||
|
@ -51,11 +50,10 @@ internal static class CameraLogic
|
|||
|
||||
_cameraFovClone = _thirdPersonCam.gameObject.AddComponent<CameraFovClone>();
|
||||
|
||||
_desktopCam = PlayerSetup.Instance.desktopCamera.GetComponent<Camera>();
|
||||
_desktopCam = PlayerSetup.Instance.desktopCam;
|
||||
_cameraFovClone.targetCamera = _desktopCam;
|
||||
|
||||
_thirdPersonCam.transform.SetParent(_desktopCam.transform);
|
||||
_uiCam = _desktopCam.transform.Find("_UICamera").GetComponent<Camera>();
|
||||
|
||||
RelocateCam(CameraLocation.Default);
|
||||
|
||||
|
@ -66,15 +64,15 @@ internal static class CameraLogic
|
|||
|
||||
internal static void CopyPlayerCamValues()
|
||||
{
|
||||
Camera activePlayerCam = PlayerSetup.Instance.GetActiveCamera().GetComponent<Camera>();
|
||||
if (_thirdPersonCam == null || activePlayerCam == null)
|
||||
Camera activePlayerCam = PlayerSetup.Instance.activeCam;
|
||||
if (!_thirdPersonCam || !activePlayerCam)
|
||||
return;
|
||||
|
||||
ThirdPerson.Logger.Msg("Copying active camera settings & components.");
|
||||
CVRTools.CopyToDestCam(activePlayerCam, _thirdPersonCam, true);
|
||||
CVRTools.CopyToDestCam(activePlayerCam, _thirdPersonCam);
|
||||
|
||||
// Remove PlayerClone
|
||||
_thirdPersonCam.cullingMask &= ~(1 << CVRLayers.PlayerClone);
|
||||
// _thirdPersonCam.cullingMask &= ~(1 << CVRLayers.PlayerClone);
|
||||
|
||||
if (!CheckIsRestricted())
|
||||
return;
|
||||
|
@ -116,9 +114,9 @@ internal static class CameraLogic
|
|||
|
||||
private static void ResetDist() => _dist = 0;
|
||||
internal static void ScrollDist(float sign) { _dist += sign * 0.25f; RelocateCam(CurrentLocation); }
|
||||
internal static void AdjustScale(float height) { _scale = height; RelocateCam(CurrentLocation); }
|
||||
internal static void AdjustScale(float avatarScaleRelation) { _scale = avatarScaleRelation; RelocateCam(CurrentLocation); }
|
||||
internal static void CheckVRMode() { if (MetaPort.Instance.isUsingVr) State = false; }
|
||||
|
||||
private static bool CheckIsRestricted()
|
||||
=> CVRWorld.Instance != null && !CVRWorld.Instance.enableZoom;
|
||||
=> CVRWorld.Instance && !CVRWorld.Instance.enableZoom;
|
||||
}
|
|
@ -32,6 +32,6 @@ internal static class Patches
|
|||
//Copy camera settings & postprocessing components
|
||||
private static void OnPostWorldStart() => CopyPlayerCamValues();
|
||||
//Adjust camera distance with height as modifier
|
||||
private static void OnScaleAdjusted(float height) => AdjustScale(height);
|
||||
private static void OnScaleAdjusted(ref float ____avatarScaleRelation) => AdjustScale(____avatarScaleRelation);
|
||||
private static void OnConfigureHudAffinity() => CheckVRMode();
|
||||
}
|
|
@ -27,6 +27,6 @@ using System.Reflection;
|
|||
namespace NAK.ThirdPerson.Properties;
|
||||
internal static class AssemblyInfoParams
|
||||
{
|
||||
public const string Version = "1.1.1";
|
||||
public const string Version = "1.1.2";
|
||||
public const string Author = "Davi & NotAKidoS";
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
{
|
||||
"_id": 16,
|
||||
"name": "ThirdPerson",
|
||||
"modversion": "1.1.1",
|
||||
"modversion": "1.1.2",
|
||||
"gameversion": "2025r179",
|
||||
"loaderversion": "0.6.1",
|
||||
"modtype": "Mod",
|
||||
|
@ -16,7 +16,7 @@
|
|||
"requirements": [],
|
||||
"downloadlink": "https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/ThirdPerson.dll",
|
||||
"sourcelink": "https://github.com/NotAKidoS/NAK_CVR_Mods/tree/main/ThirdPerson",
|
||||
"changelog": "- Recompiled for 2025r179",
|
||||
"changelog": "- Adjusted the local player scaled event patch to work both on Stable and Nightly (r179 & r180)",
|
||||
"embedcolor": "#F61961"
|
||||
}
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue