protected void UpdateWireframe(BrushTarget target, BrushSettings settings)
        {
            if (!Util.IsValid(target))
            {
                return;
            }

            if (m_EditableObjectsData.TryGetValue(target.editableObject, out EditableObjectData data))
            {
                if (data.TempComponent != null)
                {
                    data.TempComponent.OnVerticesMoved(target.editableObject.editMesh);
                }

                //Might be costly to do that on every wireframe update
                if (ProBuilderBridge.ProBuilderExists() && target.editableObject.isProBuilderObject)
                {
                    ProBuilderBridge.RefreshEditor(false);
                }
            }
        }
Пример #2
0
        void FinalizeAndResetHovering()
        {
            foreach (var kvp in m_Hovering)
            {
                BrushTarget target = kvp.Value;

                if (!Util.IsValid(target))
                {
                    continue;
                }

                // if mesh hasn't been modified, revert it back
                // to the original mesh so that unnecessary assets
                // aren't allocated.  if it has been modified, let
                // the editableObject apply those changes to the
                // pb_Object if necessary.
                if (!target.editableObject.isDirty)
                {
                    target.editableObject.Revert();
                }
                else
                {
                    target.editableObject.Apply(true, true);
                }
            }

            m_Hovering.Clear();
            brushTarget             = null;
            m_LastHoveredGameObject = null;

#if PROBUILDER_4_0_OR_NEWER
            if (ProBuilderBridge.ProBuilderExists())
            {
                ProBuilderBridge.RefreshEditor(false);
            }
#endif
            Repaint();
        }