Turn off ring fluid volume when opacity is 0

This commit is contained in:
Noah Pilarski 2022-08-23 14:25:29 -04:00
parent 1fcc3753a3
commit 80f8086faa
2 changed files with 10 additions and 0 deletions

View File

@ -60,6 +60,8 @@ namespace NewHorizons.Builder.Body
sfv._fluidType = fluidType;
sfv._density = 5f;
if (ringGO.TryGetComponent<RingOpacityController>(out var ringOC)) ringOC.SetRingFluidVolume(sfv);
ringVolume.SetActive(true);

View File

@ -11,6 +11,7 @@ namespace NewHorizons.Components
public float CurrentOpacity { get; protected set; }
private MeshRenderer _meshRenderer;
private RingFluidVolume _ringFluidVolume;
protected void FixedUpdate()
{
@ -23,6 +24,12 @@ namespace NewHorizons.Components
CurrentOpacity = 1;
}
if (_ringFluidVolume != null)
{
if (Mathf.Approximately(CurrentOpacity, 0) && _ringFluidVolume.IsVolumeActive()) _ringFluidVolume.SetVolumeActivation(false);
else if (!_ringFluidVolume.IsVolumeActive()) _ringFluidVolume.SetVolumeActivation(true);
}
if (_meshRenderer == null) return;
_meshRenderer.material.SetFloat(Alpha, CurrentOpacity);
@ -38,5 +45,6 @@ namespace NewHorizons.Components
}
public void SetMeshRenderer(MeshRenderer meshRenderer) => _meshRenderer = meshRenderer;
public void SetRingFluidVolume(RingFluidVolume ringFluidVolume) => _ringFluidVolume = ringFluidVolume;
}
}