Exemplo n.º 1
0
        public void Start()
        {
            try
            {
                if (lightDataListeners == null)
                {
                    lightDataListeners = new ShaderLightDataListener[6];
                }

                for (int i = 1; i < 6; i++)
                {
                    lightDataListeners[i] = new ShaderLightDataListener((LightsID)i);
                }

                var colorManager = Resources.FindObjectsOfTypeAll <SaberModelController>().FirstOrDefault().GetPrivateField <ColorManager>("_colorManager");
                if (colorManager == null)
                {
                    return;
                }

                var leftColor  = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_saberAColor");
                var rightColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_saberBColor");
            }
            catch (Exception e)
            {
                Logger.log.Error(e);
            }
        }
        public void CreateLightDataForShader(GameObject go)
        {
            try
            {
                if (bppLights == null)
                {
                    bppLights = new List <BloomPrePassLight>();
                }
                if (lightDataListeners == null)
                {
                    lightDataListeners = new List <ShaderLightDataListener>();
                }

                for (int i = 1; i < 6; i++)
                {
                    var lightDataListener = new ShaderLightDataListener((LightsID)i);

                    ColorBloomPrePassLight colorBloomLight;
                    colorBloomLight = go.AddComponent <ColorBloomPrePassLight>();
                    colorBloomLight.Init();
                    colorBloomLight.LightDataListener = lightDataListener;
                    ReflectionUtil.SetPrivateField(colorBloomLight, typeof(BSLight), "_ID", i);

                    bppLights.Add(colorBloomLight);
                    lightDataListeners.Add(lightDataListener);
                }

                var colorManager = Resources.FindObjectsOfTypeAll <ColorManager>().FirstOrDefault();
                if (colorManager == null)
                {
                    return;
                }

                var leftColor  = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorA");
                var rightColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorB");
                Shader.SetGlobalColor("_LeftColor", GammaCorrection(leftColor.color));
                Shader.SetGlobalColor("_RightColor", GammaCorrection(rightColor.color));
            }
            catch (Exception e)
            {
                Logger.log.Error(e);
            }
        }