Files
AsanoRema ffa1064063 Squashed commit of the following:
commit 428243f4a6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:43:13 2026 +0300

    Squashed commit of the following:

    commit 68e78fa464
    Author: AsanoRema <asanorema2036@gmail.com>
    Date:   Sat Aug 29 13:41:49 2026 +0300

        Updated .gitignore

commit 9f87122a34
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:34:57 2026 +0300

    Added Dohya

commit f6a7547e84
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Fri Aug 21 17:59:13 2026 +0300

    Fixed

commit b98901c366
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:37:22 2026 +0300

    Added new particle Package

commit bb2f4a3b16
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:17:48 2026 +0300

    Map mehanic ready to multiplayer

commit c01ff800f6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 16:16:19 2026 +0300

    Squashed commit of the following:

    commit 173bbb165c
    Author: henjkey <henjkey@gmail.com>
    Date:   Fri Aug 14 18:51:23 2026 +0500

        Mappp

    commit d559ab338a
    Author: henjkey <henjkey@gmail.com>
    Date:   Thu Aug 13 18:42:41 2026 +0500

        Map

        Controller
        Coordinates
        Target System
        Crosshair System
        Radar System
2026-08-29 13:45:55 +03:00

81 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace VLB
{
[AddComponentMenu("")] // hide it from Component search
[DisallowMultipleComponent]
public class EffectAbstractBase : MonoBehaviour
{
public const string ClassName = "EffectAbstractBase";
[System.Flags]
public enum ComponentsToChange
{
UnityLight = 1 << 0,
VolumetricLightBeam = 1 << 1,
VolumetricDustParticles = 1 << 2,
}
/// <summary>
/// Decide which component to change among:
/// - Unity's Light
/// - Volumetric Light Beam
/// - Volumetric Dust Particles
/// </summary>
public ComponentsToChange componentsToChange = Consts.Effects.ComponentsToChangeDefault;
/// <summary>
/// Restore the default intensity when this component is disabled.
/// </summary>
public bool restoreBaseIntensity = Consts.Effects.RestoreBaseIntensityDefault;
protected VolumetricLightBeam m_Beam = null;
protected Light m_Light = null;
protected VolumetricDustParticles m_Particles = null;
protected float m_BaseIntensityBeamInside = 0.0f;
protected float m_BaseIntensityBeamOutside = 0.0f;
protected float m_BaseIntensityLight = 0.0f;
protected void SetAdditiveIntensity(float additive)
{
if (componentsToChange.HasFlag(ComponentsToChange.VolumetricLightBeam) && m_Beam)
{
m_Beam.intensityInside = Mathf.Max(0.0f, m_BaseIntensityBeamInside + additive);
m_Beam.intensityOutside = Mathf.Max(0.0f, m_BaseIntensityBeamOutside + additive);
}
if (componentsToChange.HasFlag(ComponentsToChange.UnityLight) && m_Light)
m_Light.intensity = Mathf.Max(0.0f, m_BaseIntensityLight + additive);
if (componentsToChange.HasFlag(ComponentsToChange.VolumetricDustParticles) && m_Particles)
m_Particles.alphaAdditionalRuntime = 1.0f + additive;
}
void Awake()
{
m_Beam = GetComponent<VolumetricLightBeam>();
m_Light = GetComponent<Light>();
m_Particles = GetComponent<VolumetricDustParticles>();
m_BaseIntensityBeamInside = m_Beam ? m_Beam.intensityInside : 0.0f;
m_BaseIntensityBeamOutside = m_Beam ? m_Beam.intensityOutside : 0.0f;
m_BaseIntensityLight = m_Light ? m_Light.intensity : 0.0f;
}
protected virtual void OnEnable()
{
StopAllCoroutines();
}
void OnDisable()
{
StopAllCoroutines();
if (restoreBaseIntensity)
SetAdditiveIntensity(0.0f);
}
}
}