void SetUpTubeLightBuffers(int kernel) { int count = m_TubeLightParamsCB == null ? 0 : m_TubeLightParamsCB.count; m_InjectLightingAndDensity.SetFloat("_TubeLightsCount", count); if (count == 0) { return; } if (m_TubeLightParams == null || m_TubeLightParams.Length != count) { m_TubeLightParams = new TubeLightParams[count]; } if (m_TubeLightShadowPlaneParams == null || m_TubeLightShadowPlaneParams.Length != count) { m_TubeLightShadowPlaneParams = new TubeLightShadowPlaneParams[count]; } HashSet <FogLight> fogLights = LightManagerFogLights.Get(); int j = 0; for (var x = fogLights.GetEnumerator(); x.MoveNext();) { var fl = x.Current; if (fl == null || fl.type != FogLight.Type.Tube || !fl.isOn) { continue; } TubeLight light = fl.tubeLight; Transform t = light.transform; Vector3 pos = t.position; Vector3 halfLength = 0.5f * t.up * light.m_Length; // Tube lights m_TubeLightParams[j].start = pos + halfLength; m_TubeLightParams[j].end = pos - halfLength; float range = light.m_Range * fl.m_RangeMult; m_TubeLightParams[j].range = 1.0f / (range * range); //m_TubeLightParams[j].color = new Vector3(light.m_Color.r, light.m_Color.g, light.m_Color.b) * light.m_Intensity * fl.m_IntensityMult; m_TubeLightParams[j].radius = light.m_Radius; // Tube light shadow planes var p = light.GetShadowPlaneParams(ref sppArr); m_TubeLightShadowPlaneParams[j].plane0 = p[0].plane; m_TubeLightShadowPlaneParams[j].plane1 = p[1].plane; m_TubeLightShadowPlaneParams[j].feather0 = p[0].feather; m_TubeLightShadowPlaneParams[j].feather1 = p[1].feather; j++; } m_TubeLightParamsCB.SetData(m_TubeLightParams); m_InjectLightingAndDensity.SetBuffer(kernel, "_TubeLights", m_TubeLightParamsCB); m_TubeLightShadowPlaneParamsCB.SetData(m_TubeLightShadowPlaneParams); m_InjectLightingAndDensity.SetBuffer(kernel, "_TubeLightShadowPlanes", m_TubeLightShadowPlaneParamsCB); }
bool AddShadowPlane() { TubeLight tubeLight = (TubeLight)target; int i = 0; for (; i < TubeLight.maxPlanes; i++) { if (tubeLight.m_ShadowPlanes[i] != null) { continue; } GameObject go = new GameObject("Shadow Plane"); TubeLightShadowPlane shadowPlane = go.AddComponent <TubeLightShadowPlane>(); go.transform.position = tubeLight.transform.position + go.transform.forward; go.transform.parent = tubeLight.transform; tubeLight.m_ShadowPlanes[i] = shadowPlane; EditorUtility.SetDirty(tubeLight); break; } return(i < TubeLight.maxPlanes); }
void Init() { if (m_Initialized) { return; } if ((m_Light = GetComponent <Light>()) != null) { switch (m_Light.type) { case LightType.Point: m_Type = Type.Point; break; case LightType.Directional: m_Type = Type.Directional; break; default: m_Type = Type.None; break; } } else if ((m_TubeLight = GetComponent <TubeLight>()) != null) { m_Type = Type.Tube; } else if ((m_AreaLight = GetComponent <AreaLight>()) != null) { m_Type = Type.Area; } m_Initialized = true; }
public void LightOnTest() { string command = "turn on Light"; _hometest.SetCommand(command); int actual = 1; //int result = _hometest.GetStatus(new Fan()); int result = TubeLight.GetStatus(); Assert.Equal(actual, result); }