mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
55 lines
1.5 KiB
C#
55 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
namespace NewHorizons.Components
|
|
{
|
|
[RequireComponent(typeof(OWTriggerVolume))]
|
|
public class TransparentCloudRenderQueueController : MonoBehaviour
|
|
{
|
|
public int insideQueue = 3001;
|
|
public int outsideQueue = 2999;
|
|
|
|
private OWTriggerVolume _triggerVolume;
|
|
public Renderer renderer;
|
|
|
|
public void Awake()
|
|
{
|
|
_triggerVolume = this.GetRequiredComponent<OWTriggerVolume>();
|
|
if (_triggerVolume == null) return;
|
|
_triggerVolume.OnEntry += OnTriggerVolumeEntry;
|
|
_triggerVolume.OnExit += OnTriggerVolumeExit;
|
|
}
|
|
|
|
public void OnDestroy()
|
|
{
|
|
if (_triggerVolume == null) return;
|
|
_triggerVolume.OnEntry -= OnTriggerVolumeEntry;
|
|
_triggerVolume.OnExit -= OnTriggerVolumeExit;
|
|
}
|
|
|
|
public void OnTriggerVolumeEntry(GameObject hitObj)
|
|
{
|
|
if (hitObj.CompareTag("PlayerDetector")) SetQueueToInside();
|
|
}
|
|
|
|
public void OnTriggerVolumeExit(GameObject hitObj)
|
|
{
|
|
if (hitObj.CompareTag("PlayerDetector")) SetQueueToOutside();
|
|
}
|
|
|
|
public void SetQueueToInside()
|
|
{
|
|
if (renderer == null) return;
|
|
renderer.sharedMaterial.renderQueue = insideQueue;
|
|
}
|
|
|
|
public void SetQueueToOutside()
|
|
{
|
|
if (renderer == null) return;
|
|
renderer.sharedMaterial.renderQueue = outsideQueue;
|
|
}
|
|
}
|
|
}
|