121 lines
3.3 KiB
C#
121 lines
3.3 KiB
C#
// Cristian Pop - https://boxophobic.com/
|
|
|
|
using UnityEngine;
|
|
using Boxophobic.StyledGUI;
|
|
using UnityEngine.Rendering;
|
|
#if UNITY_EDITOR
|
|
using UnityEditor.SceneManagement;
|
|
#endif
|
|
|
|
namespace Boxophobic.Utils
|
|
{
|
|
[ExecuteInEditMode]
|
|
public class SceneSwitch : StyledMonoBehaviour
|
|
{
|
|
[StyledBanner("Switch")]
|
|
public bool styledBanner;
|
|
|
|
public GameObject setupStandard;
|
|
public GameObject setupUniversal;
|
|
public GameObject setupHD;
|
|
[HideInInspector]
|
|
public GameObject objectStandard;
|
|
[HideInInspector]
|
|
public GameObject objectUniversal;
|
|
[HideInInspector]
|
|
public GameObject objectHD;
|
|
|
|
[Space(10)]
|
|
public bool setRenderSettings;
|
|
|
|
[Space(10)]
|
|
public Material skyboxMaterial;
|
|
[Range(0, 8)]
|
|
public float skyboxAmbient = 1;
|
|
[Range(0, 1)]
|
|
public float skyboxReflection = 1;
|
|
|
|
[StyledSpace(5)]
|
|
public bool styledSpace;
|
|
|
|
void OnEnable()
|
|
{
|
|
if (Application.isPlaying)
|
|
{
|
|
return;
|
|
}
|
|
|
|
int pipeline = 0;
|
|
|
|
if (GraphicsSettings.defaultRenderPipeline != null)
|
|
{
|
|
if (GraphicsSettings.defaultRenderPipeline.GetType().ToString().Contains("Universal"))
|
|
{
|
|
pipeline = 1;
|
|
}
|
|
|
|
if (GraphicsSettings.defaultRenderPipeline.GetType().ToString().Contains("HD"))
|
|
{
|
|
pipeline = 2;
|
|
}
|
|
}
|
|
|
|
if (QualitySettings.renderPipeline != null)
|
|
{
|
|
if (QualitySettings.renderPipeline.GetType().ToString().Contains("Universal"))
|
|
{
|
|
pipeline = 1;
|
|
}
|
|
|
|
if (QualitySettings.renderPipeline.GetType().ToString().Contains("HD"))
|
|
{
|
|
pipeline = 2;
|
|
}
|
|
}
|
|
|
|
if (pipeline == 0)
|
|
{
|
|
if (setupStandard != null && objectStandard == null)
|
|
{
|
|
objectStandard = Instantiate(setupStandard, gameObject.transform);
|
|
objectStandard.name = objectStandard.name.Replace("(Clone)", "");
|
|
}
|
|
}
|
|
|
|
if (pipeline == 1)
|
|
{
|
|
if (setupUniversal != null && objectUniversal == null)
|
|
{
|
|
objectUniversal = Instantiate(setupUniversal, gameObject.transform);
|
|
objectUniversal.name = objectUniversal.name.Replace("(Clone)", "");
|
|
}
|
|
}
|
|
|
|
if (pipeline == 2)
|
|
{
|
|
if (setupHD != null && objectHD == null)
|
|
{
|
|
objectHD = Instantiate(setupHD, gameObject.transform);
|
|
objectHD.name = objectHD.name.Replace("(Clone)", "");
|
|
}
|
|
}
|
|
|
|
if (setRenderSettings)
|
|
{
|
|
RenderSettings.skybox = skyboxMaterial;
|
|
RenderSettings.ambientIntensity = skyboxAmbient;
|
|
RenderSettings.reflectionIntensity = skyboxReflection;
|
|
|
|
DynamicGI.UpdateEnvironment();
|
|
}
|
|
|
|
#if UNITY_EDITOR
|
|
EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|