예제 #1
0
 public void OnDestroy()
 {
     if (!RenderSettingsManager.Ignore(this))
     {
         RenderSettingsManager.Instance.UnRegister(this);
     }
 }
    void skyboxUpdater(RenderSettingsManager obj)
    {
        Skybox skybox = Player.instance.transform.FindChild("vertical").GetComponentInChildren<Skybox>();
        if (skybox == null)
        {
          Debug.LogWarning("There is no skybox on the main camera !");
          return;
        }

        skybox.material.SetColor("_Tint", obj._skyboxColor);
    }
    void particlesUpdater(RenderSettingsManager obj)
    {
        GameObject go = GameObject.Find("particles");
        if (go == null)
        {
          Debug.LogWarning("There is no particles in the current scene !");
          return;
        }

        ParticleSystem particles = go.GetComponent<ParticleSystem>();
        particles.startColor = obj._particlesColor;
    }
예제 #4
0
    private static void FixRenderSetting()
    {
        GameObject renderSettings = GameObject.Find("RenderSettingsManager");

        if (renderSettings == null)
        {
            renderSettings = new GameObject("RenderSettingsManager");
            _Instance      = renderSettings.AddComponent <RenderSettingsManager>();
            _Instance._toBlendRenderSettings = renderSettings.AddComponent <RenderSettings>();
        }
        else
        {
            _Instance = renderSettings.GetComponent <RenderSettingsManager>() ?? renderSettings.AddComponent <RenderSettingsManager>();
            _Instance._toBlendRenderSettings = renderSettings.GetComponent <RenderSettings>();
        }

        Transform lastSettings = renderSettings.transform.Find("LastRenderSettings");

        if (lastSettings == null)
        {
            lastSettings = new GameObject("LastRenderSettings").transform;
            lastSettings.transform.parent = renderSettings.transform;
            _Instance._lastRenderSettings = lastSettings.gameObject.AddComponent <RenderSettings>();
        }
        else
        {
            _Instance._lastRenderSettings = lastSettings.gameObject.GetComponent <RenderSettings>() ?? lastSettings.gameObject.AddComponent <RenderSettings>();
        }

        Transform currentSettings = renderSettings.transform.Find("CurrentRenderSettings");

        if (currentSettings == null)
        {
            currentSettings = new GameObject("CurrentRenderSettings").transform;
            currentSettings.transform.parent = renderSettings.transform;
            _Instance._currentRenderSettings = currentSettings.gameObject.AddComponent <RenderSettings>();
        }
        else
        {
            _Instance._currentRenderSettings = currentSettings.gameObject.GetComponent <RenderSettings>() ?? currentSettings.gameObject.AddComponent <RenderSettings>();
        }

        if (Application.isPlaying)
        {
            GameObject.DontDestroyOnLoad(renderSettings);
        }
        else
        {
            renderSettings.hideFlags = HideFlags.DontSave;
        }
    }
    /*void SSAOUpdater(RenderSettingsManager obj)
      {
    SSAOPro ssao = Camera.main.GetComponent<SSAOPro>();
    if (ssao == null)
    {
      Debug.LogWarning("There is no SSAO script on main camera !");
      return;
    }

    ssao.OcclusionColor = obj._SSAOColor;
    EditorUtility.SetDirty(ssao);
      }*/
    void lightsPropsUpdater(RenderSettingsManager obj)
    {
        Light lightPropsShadows = GameObject.Find("light_props_shadows").GetComponent<Light>();
        Light lightPropsContrast = GameObject.Find("light_props_contrast").GetComponent<Light>();

        if (lightPropsShadows == null)
        {
          Debug.LogWarning("lights props are missing !");
          return;
        }

        lightPropsShadows.color = obj._lightPropsShadowsColor;
        lightPropsShadows.intensity = obj._lightPropsShadowsIntensity;
        lightPropsContrast.color = obj._lightPropsContrastColor;
        lightPropsContrast.intensity = obj._lightPropsContrastIntensity;
    }
예제 #6
0
    private static void Setup()
    {
        GameObject renderSettings  = new GameObject("RenderSettingsManager");
        GameObject lastSettings    = new GameObject("LastRenderSettings");
        GameObject currentSettings = new GameObject("CurrentRenderSettings");

        lastSettings.transform.parent    = renderSettings.transform;
        currentSettings.transform.parent = renderSettings.transform;

        _Instance = renderSettings.AddComponent <RenderSettingsManager>();
        _Instance._toBlendRenderSettings = renderSettings.AddComponent <RenderSettings>();
        _Instance._lastRenderSettings    = lastSettings.AddComponent <RenderSettings>();
        _Instance._currentRenderSettings = currentSettings.AddComponent <RenderSettings>();

        if (Application.isPlaying)
        {
            GameObject.DontDestroyOnLoad(renderSettings);
        }
        else
        {
            renderSettings.hideFlags = HideFlags.DontSave;
        }
    }
    void sunLightUpdater(RenderSettingsManager obj)
    {
        Light lightShadows = GameObject.Find("light_shadows").GetComponent<Light>();
        Light lightContrast = GameObject.Find("light_contrast").GetComponent<Light>();

        if (lightShadows == null)
        {
          Debug.LogWarning("There is no sun in the current scene !");
          return;
        }

        lightShadows.color = obj._lightShadowsColor;
        lightShadows.intensity = obj._lightShadowsIntensity;
        lightContrast.color = obj._lightContrastColor;
        lightContrast.intensity = obj._lightContrastIntensity;
    }
예제 #8
0
    /// <summary>
    /// Applique les paramètres d'un render settings manager à la scène en cours
    /// </summary>
    /// <param name="manager"></param>
    public static void applyRenderSettings(RenderSettingsManager manager)
    {
        if (manager == null) return;

        RenderSettings.fog = manager._fog;
        RenderSettings.fogColor = manager._fogColor;
        RenderSettings.fogMode = manager._fogMode;
        RenderSettings.fogDensity = manager._fogDensity;
        RenderSettings.fogStartDistance = manager._linearFogStart;
        RenderSettings.fogEndDistance = manager._linearFogEnd;

        RenderSettings.ambientLight = manager._ambientLight;

        Light lightShadows = GameObject.Find("light_shadows").GetComponent<Light>();
        Light lightContrast = GameObject.Find("light_contrast").GetComponent<Light>();

        if (lightShadows == null)
        {
        #if UNITY_EDITOR
          GameConsole.instance.writeNewMessage("There is no sun in the current scene !", GameConsole.AlertStates.warning);
        #endif
        }
        else
        {
          lightShadows.color = manager._lightShadowsColor;
          lightShadows.intensity = manager._lightShadowsIntensity;
          lightContrast.color = manager._lightContrastColor;
          lightContrast.intensity = manager._lightContrastIntensity;
        }

        GameObject go = GameObject.Find("particles");
        if (go == null)
        {
        #if UNITY_EDITOR
          GameConsole.instance.writeNewMessage("There is no particles in the current scene !", GameConsole.AlertStates.warning);
        #endif
        }
        else
        {
          ParticleSystem particles = go.GetComponent<ParticleSystem>();
          particles.startColor = manager._particlesColor;
        }

        Skybox skybox = Camera.main.GetComponentInChildren<Skybox>();
        if (skybox == null)
        {
        #if UNITY_EDITOR
          GameConsole.instance.writeNewMessage("There is no skybox on the main camera !", GameConsole.AlertStates.warning);
        #endif
        }
        else skybox.material.SetColor("_Tint", manager._skyboxColor);

        /*SSAOPro ssao = Camera.main.GetComponent<SSAOPro>();
        if (ssao == null)
        {
        #if UNITY_EDITOR
          GameConsole.instance.writeNewMessage("There is no SSAO script on main camera !", GameConsole.AlertStates.warning);
        #endif
        }
        else
        {
          ssao.OcclusionColor = manager._SSAOColor;
        }*/

        Light lightPropsShadows = GameObject.Find("light_props_shadows").GetComponent<Light>();
        Light lightPropsContrast = GameObject.Find("light_props_contrast").GetComponent<Light>();

        if (lightPropsContrast == null)
        {
        #if UNITY_EDITOR
          GameConsole.instance.writeNewMessage("There is no props sun in the current scene !", GameConsole.AlertStates.warning);
        #endif
        }
        else
        {
          lightPropsShadows.color = manager._lightPropsShadowsColor;
          lightPropsShadows.intensity = manager._lightPropsShadowsIntensity;
          lightPropsContrast.color = manager._lightPropsContrastColor;
          lightPropsContrast.intensity = manager._lightPropsContrastIntensity;
        }
    }