Exemple #1
0
 /// <summary>
 /// Initializes the rain instance.
 /// </summary>
 private void InitializeInstance(StaticRainDrawerContainer dc)
 {
     // Initialization
     dc.TimeElapsed          = 0f;
     dc.Drawer.NormalMap     = Variables.NormalMap;
     dc.Drawer.ReliefTexture = Variables.OverlayTexture;
     dc.Drawer.Hide();
 }
Exemple #2
0
    /// <summary>
    /// Refresh this instance.
    /// </summary>

    public void Refresh()
    {
        if (staticDrawer != null)
        {
            DestroyImmediate(staticDrawer.Drawer.gameObject);
        }
        staticDrawer = new StaticRainDrawerContainer("Static RainDrawer", this.transform);
        staticDrawer.currentState = DrawState.Disabled;
        InitializeInstance(staticDrawer);
    }
Exemple #3
0
 private float GetProgress(StaticRainDrawerContainer dc)
 {
     return(dc.TimeElapsed / Variables.fadeTime);
 }
Exemple #4
0
    /// <summary>
    /// Update rain variables
    /// </summary>
    /// <param name="dc">Dc.</param>
    private void UpdateInstance(StaticRainDrawerContainer dc)
    {
        AnimationCurve fadeCurve = Variables.FadeinCurve;

        // Update time
        if (!NoMoreRain)
        {
            dc.TimeElapsed = Mathf.Min(Variables.fadeTime, dc.TimeElapsed + Time.deltaTime);
        }
        else
        {
            dc.TimeElapsed = Mathf.Max(0f, dc.TimeElapsed - Time.deltaTime);
        }

        if (dc.TimeElapsed == 0f)
        {
            dc.Drawer.Hide();
            dc.currentState = DrawState.Disabled;
            return;
        }
        else
        {
            dc.currentState = DrawState.Playing;
        }

        if (Variables.FullScreen)
        {
            Vector2 orthSize    = RainDropTools.GetCameraOrthographicSize(this.camera);
            Vector3 targetScale = new Vector3(
                orthSize.x / 2f,
                orthSize.y / 2f,
                0f
                );
            if (VRMode)
            {
                targetScale += Vector3.one * 0.02f;
            }
            dc.transform.localScale    = targetScale;
            dc.transform.localPosition = Vector3.zero;
        }
        else
        {
            dc.transform.localScale = new Vector3(
                Variables.SizeX,
                Variables.SizeY,
                1f
                );

            Vector3 p = camera.ScreenToWorldPoint(
                new Vector3(
                    -Screen.width * Variables.SpawnOffsetX + Screen.width / 2,
                    -Screen.height * Variables.SpawnOffsetY + Screen.height / 2,
                    0f
                    ));
            dc.transform.localPosition  = transform.InverseTransformPoint(p);
            dc.transform.localPosition -= Vector3.forward * dc.transform.localPosition.z;
        }

        float progress = GetProgress(dc);

        dc.Drawer.RenderQueue   = RenderQueue;
        dc.Drawer.NormalMap     = Variables.NormalMap;
        dc.Drawer.ReliefTexture = Variables.OverlayTexture;
        dc.Drawer.OverlayColor  = new Color(
            Variables.OverlayColor.r,
            Variables.OverlayColor.g,
            Variables.OverlayColor.b,
            Variables.OverlayColor.a * fadeCurve.Evaluate(progress) * Alpha
            );
        dc.Drawer.DistortionStrength = Variables.DistortionValue * fadeCurve.Evaluate(progress) * Alpha;
        dc.Drawer.ReliefValue        = Variables.ReliefValue * fadeCurve.Evaluate(progress) * Alpha;
        dc.Drawer.Blur       = Variables.Blur * fadeCurve.Evaluate(progress) * Alpha;
        dc.Drawer.Darkness   = Variables.Darkness;
        dc.Drawer.ShaderType = ShaderType;
        dc.Drawer.Show();
    }