mirror of
https://github.com/maxartz15/VolumetricLighting.git
synced 2025-06-27 05:06:03 +02:00
Added the project.
This commit is contained in:
81
Assets/LightOverride/LightOverride.cs
Normal file
81
Assets/LightOverride/LightOverride.cs
Normal file
@ -0,0 +1,81 @@
|
||||
using UnityEngine;
|
||||
|
||||
public abstract class LightOverride : MonoBehaviour
|
||||
{
|
||||
|
||||
[Header("Overrides")]
|
||||
public float m_IntensityMult = 1.0f;
|
||||
[MinValue(0.0f)]
|
||||
public float m_RangeMult = 1.0f;
|
||||
|
||||
public enum Type{None, Point, Tube, Area, Directional}
|
||||
|
||||
Type m_Type = Type.None;
|
||||
bool m_Initialized = false;
|
||||
Light m_Light;
|
||||
TubeLight m_TubeLight;
|
||||
AreaLight m_AreaLight;
|
||||
|
||||
public bool isOn
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!isActiveAndEnabled)
|
||||
return false;
|
||||
|
||||
Init();
|
||||
|
||||
switch(m_Type)
|
||||
{
|
||||
case Type.Point: return m_Light.enabled || GetForceOn();
|
||||
case Type.Tube: return m_TubeLight.enabled || GetForceOn();
|
||||
case Type.Area: return m_AreaLight.enabled || GetForceOn();
|
||||
case Type.Directional: return m_Light.enabled || GetForceOn();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private set{}
|
||||
}
|
||||
|
||||
new public Light light {get{Init(); return m_Light;} private set{}}
|
||||
public TubeLight tubeLight {get{Init(); return m_TubeLight;} private set{}}
|
||||
public AreaLight areaLight {get{Init(); return m_AreaLight;} private set{}}
|
||||
|
||||
public Type type {get{Init(); return m_Type;} private set{}}
|
||||
|
||||
// To get the "enabled" state checkbox
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public abstract bool GetForceOn();
|
||||
|
||||
void Init()
|
||||
{
|
||||
if (m_Initialized)
|
||||
return;
|
||||
|
||||
if ((m_Light = GetComponent<Light>()) != null)
|
||||
{
|
||||
switch(m_Light.type)
|
||||
{
|
||||
case LightType.Point: m_Type = Type.Point; break;
|
||||
case LightType.Directional: m_Type = Type.Directional; break;
|
||||
default: m_Type = Type.None; break;
|
||||
}
|
||||
}
|
||||
else if ((m_TubeLight = GetComponent<TubeLight>()) != null)
|
||||
{
|
||||
m_Type = Type.Tube;
|
||||
}
|
||||
else if ((m_AreaLight = GetComponent<AreaLight>()) != null)
|
||||
{
|
||||
m_Type = Type.Area;
|
||||
}
|
||||
|
||||
m_Initialized = true;
|
||||
}
|
||||
}
|
12
Assets/LightOverride/LightOverride.cs.meta
Normal file
12
Assets/LightOverride/LightOverride.cs.meta
Normal file
@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 74f38ff2229b3664e979e3a59d7ace3f
|
||||
timeCreated: 1452857267
|
||||
licenseType: Pro
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user