Ejemplo n.º 1
0
    void OnDestroy()
    {
        lightOn = false;

        if (type == EchoLightType.FOUR_POINT)
        {
            EchoCoreManager.RemoveList(this);
        }
    }
Ejemplo n.º 2
0
    void OnDisable()
    {
        lightOn = false;

        EchoCoreManager.TurnOffLight(type);

        if (type == EchoLightType.FOUR_POINT)
        {
            EchoCoreManager.RemoveList(this);
        }
    }
    //============================================================
    public void CompileShaders()
    {
        EchoCoreManager.ResetShaderVariables();

        _needCompile = false;

        StreamWriter sw = new StreamWriter("Assets/echoLogin/Shaders/Light/echologin_shaderoptions.cginc");

        if (doubleLight.boolValue)
        {
            sw.WriteLine("#define ECHO_DOUBLELIGHT_ON");
            sw.WriteLine("#define ECHO_DOUBLELIGHT1 * 2");
            sw.WriteLine("#define ECHO_DOUBLELIGHT3 * fixed3(2,2,2)");
            sw.WriteLine("#define ECHO_DOUBLELIGHT4 * fixed4(2,2,2,2)");
        }
        else
        {
            sw.WriteLine("#define ECHO_DOUBLELIGHT1 ");
            sw.WriteLine("#define ECHO_DOUBLELIGHT3 ");
            sw.WriteLine("#define ECHO_DOUBLELIGHT4 ");
        }

        if (addBeastCode.boolValue)
        {
            sw.WriteLine("#define ECHO_ADDBEAST_CODE");
            if (lightProbes.boolValue)
            {
                sw.WriteLine("#define ECHO_SHLIGHT_ON");
            }
        }

        if (!mainDirLight.boolValue && !mainPointLight.boolValue && !fourPointLights.boolValue && !lightProbes.boolValue)
        {
            sw.WriteLine("#define ECHO_DIR_ON");
            sw.WriteLine("#define ECHO_DIRSPEC_OFF");
            sw.WriteLine("#define ECHO_DIRDLIGHT_ON");

            sw.Flush();
            sw.Close();

            AssetDatabase.Refresh();
            return;
        }

        if (mainDirLight.boolValue)
        {
            sw.WriteLine("#define ECHO_DIR_ON");

            if (addBeastCode.boolValue && mainDirOnlyShadows.boolValue)
            {
                sw.WriteLine("#define ECHO_DIR_ONLYSHADOW");
            }

            if (mainDirSpec.boolValue)
            {
                sw.WriteLine("#define ECHO_DIRSPEC_ON");
            }
            else
            {
                sw.WriteLine("#define ECHO_DIRSPEC_OFF");
            }

            if (mainDirBump.boolValue)
            {
                sw.WriteLine("#define ECHO_DIRBUMP_ON");
            }
            else
            {
                sw.WriteLine("#define ECHO_DIRDLIGHT_ON");
            }

            if (mainDirSpot.boolValue)
            {
                sw.WriteLine("#define ECHO_DIRSPOT_ON");
            }


            if (mainDirShadowColorEnable.boolValue)
            {
                sw.WriteLine("#define ECHO_DIRSHADOWCOLOR_ON");
            }
        }

        if (mainPointLight.boolValue)
        {
            sw.WriteLine("#define ECHO_POINT_ON");

            if (mainPointFalloff.boolValue)
            {
                sw.WriteLine("#define ECHO_POINTFALLOFF_ON");
                if (mainPointRampFade.boolValue)
                {
                    sw.WriteLine("#define ECHO_POINT_RAMPFADE");
                }
            }

            if (mainPointBump.boolValue)
            {
                sw.WriteLine("#define ECHO_POINTBUMP_ON");
            }
            else
            {
                sw.WriteLine("#define ECHO_POINTDLIGHT_ON");
            }

            if (mainPointSpec.boolValue)
            {
                sw.WriteLine("#define ECHO_POINTSPEC_ON");
            }
            else
            {
                sw.WriteLine("#define ECHO_POINTSPEC_OFF");
            }
        }

        if (fourPointLights.boolValue)
        {
            sw.WriteLine("#define ECHO_4POINT_ON");

            if (fourPointSpec.boolValue)
            {
                sw.WriteLine("#define ECHO_4POINTSPEC_ON");
            }
        }


        sw.Flush();
        sw.Close();

        AssetDatabase.Refresh();
    }
Ejemplo n.º 4
0
    public void Init( )
    {
        if (type == EchoLightType.FOUR_POINT)
        {
            EchoCoreManager.RemoveList(this);
        }

        if (uLight == null)
        {
            uLight = GetComponent <Light>();
        }

        if (uLight == null)
        {
            return;
        }

        cachedTransform = uLight.transform;
        dist            = 0;

#if !UNITY_3_5
        lightOn = gameObject.activeSelf;
#else
        lightOn = gameObject.active;
#endif

        if (uLight.renderMode == LightRenderMode.ForceVertex)
        {
            type = EchoLightType.FOUR_POINT;

            if (lightOn)
            {
                EchoCoreManager.AddList(this);
            }
        }
        else
        {
            switch (uLight.type)
            {
            case LightType.Point:
                type = EchoLightType.MAIN_POINT;
                break;

            default:
                type = EchoLightType.MAIN_DIRECTIONAL;
                break;
            }
        }

#if UNITY_EDITOR
        if (Application.isPlaying && EchoCoreManager.useUnityLights == false)
        {
            uLight.enabled = false;
        }
#else
        if (EchoCoreManager.useUnityLights == false)
        {
            uLight.enabled = false;
        }
#endif
    }