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); }
public TubeLightShadowPlane.Params[] GetShadowPlaneParams(ref TubeLightShadowPlane.Params[] p) { if (p == null || p.Length != maxPlanes) { p = new TubeLightShadowPlane.Params[maxPlanes]; } for (int i = 0; i < maxPlanes; i++) { TubeLightShadowPlane sp = m_ShadowPlanes[i]; p[i].plane = sp == null ? new Vector4(0, 0, 0, 1) : sp.GetShadowPlaneVector(); p[i].feather = sp == null ? 1 : sp.feather; } return(p); }