Skip to content

Commit

Permalink
Only flip camera when it renders
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoco007 committed Nov 24, 2024
1 parent f2045a7 commit ffb4794
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 5 deletions.
4 changes: 3 additions & 1 deletion Source/CustomAvatar/CustomAvatar.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,8 @@
<Reference Include="UnityEngine.SpatialTracking">
<HintPath>$(BeatSaberDir)Beat Saber_Data\Managed\UnityEngine.SpatialTracking.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
<SkipOverridableMethods>False</SkipOverridableMethods>
</Reference>
<Reference Include="UnityEngine.SubsystemsModule">
<HintPath>$(BeatSaberDir)Beat Saber_Data\Managed\UnityEngine.SubsystemsModule.dll</HintPath>
Expand Down Expand Up @@ -224,7 +226,7 @@
<AdditionalArtifactFiles Include="$(ProjectDir)..\..\Packaging\CustomAvatar\**\*.*" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="BSIPA.AssemblyPublicizer.MSBuild" Version="0.5.0">
<PackageReference Include="BSIPA.AssemblyPublicizer.MSBuild" Version="0.5.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
26 changes: 22 additions & 4 deletions Source/CustomAvatar/Rendering/MainCamera.cs
Original file line number Diff line number Diff line change
Expand Up @@ -163,21 +163,29 @@ protected void OnDestroy()
RemoveFromPlayerSpaceManager();
}

private void OnCameraNearClipPlaneChanged(float value)
protected void OnPreCull()
{
if (_trackedPoseDriver != null)
{
_trackedPoseDriver.UseRelativeTransform = !beatSaberUtilities.hasFocus;
_trackedPoseDriver.PerformUpdate();
}

UpdateCameraMask();
}

private void OnFpfcSettingsChanged(IFPFCSettings fpfcSettings)
protected void OnPostRender()
{
UpdateCameraMask();
if (_trackedPoseDriver != null)
{
_trackedPoseDriver.UseRelativeTransform = false;
}
}

private void OnFocusChanged(bool hasFocus)
{
if (_trackedPoseDriver != null)
{
_trackedPoseDriver.UseRelativeTransform = !hasFocus;
_trackedPoseDriver.originPose = hasFocus ? Pose.identity : new Pose(
Vector3.Project(Quaternion.Euler(0, 180, 0) * -transform.localPosition * 2, Vector3.right) + new Vector3(0, 0, 1.5f),
Quaternion.Euler(0, 180, 0));
Expand All @@ -186,6 +194,16 @@ private void OnFocusChanged(bool hasFocus)
UpdateCameraMask();
}

private void OnCameraNearClipPlaneChanged(float value)
{
UpdateCameraMask();
}

private void OnFpfcSettingsChanged(IFPFCSettings fpfcSettings)
{
UpdateCameraMask();
}

private void UpdateCameraMask()
{
if (_logger == null || _settings == null || fpfcSettings == null)
Expand Down

0 comments on commit ffb4794

Please sign in to comment.