void OnDestroy() { lightOn = false; if (type == EchoLightType.FOUR_POINT) { EchoCoreManager.RemoveList(this); } }
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(); }
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 }