void Update() // EDITOR ONLY { // Handle edition of light properties in Editor if (!Application.isPlaying) { var newProps = new CachedLightProperties(lightSpotAttached); if (!newProps.Equals(m_PrevCachedLightProperties)) { m_EditorDirtyFlags |= EditorDirtyFlags.Props; } m_PrevCachedLightProperties = newProps; } if (m_EditorDirtyFlags == EditorDirtyFlags.Clean) { if (Application.isPlaying) { if (!trackChangesDuringPlaytime) // during Playtime, realtime changes are handled by CoUpdateDuringPlaytime { return; } } } else { if (m_EditorDirtyFlags.HasFlag(EditorDirtyFlags.Mesh)) { if (m_EditorDirtyFlags.HasFlag(EditorDirtyFlags.BeamGeomGAO)) { DestroyBeam(); } GenerateGeometry(); // regenerate everything } else if (m_EditorDirtyFlags.HasFlag(EditorDirtyFlags.Props)) { ValidateProperties(); } } // If we modify the attached Spotlight properties, or if we animate the beam via Unity 2017's timeline, // we are not notified of properties changes. So we update the material anyway. UpdateAfterManualPropertyChange(); m_EditorDirtyFlags = EditorDirtyFlags.Clean; }
public bool Equals(CachedLightProperties other) { return Equals(other, this); }