Пример #1
0
        public override void UnlockMesh()
        {
            m_lockMeshIntermediateState = LockMeshIntermediateStateEnum.PreUnlock;

      #if UNITY_EDITOR
            Undo.RecordObject(this, "Unlock Mesh (" + name + ")");
      #endif

            base.UnlockMesh();

      #if UNITY_EDITOR
            Undo.FlushUndoRecordObjects();
      #endif

            RemoveComponentHelper <MeshCollider>(gameObject);
            RemoveComponentHelper <Rigidbody>(gameObject);
            RemoveComponentHelper <MeshFilter>(gameObject);
            RemoveComponentHelper <MeshRenderer>(gameObject);
            RemoveComponentHelper <SkinnedMeshRenderer>(gameObject);
            RemoveComponentHelper <MudLockedMeshRenderer>(gameObject);
            RemoveComponentHelper <MudStandardMeshRenderer>(gameObject);

            m_lockMeshIntermediateState = LockMeshIntermediateStateEnum.Idle;

            MeshGenerationLockOnStartByEditor = false;

            m_addedComponents = null;
        }
Пример #2
0
        public override void LockMesh
        (
            bool autoRigging,
            bool async,
            Mesh mesh = null,
            UVGenerationMode uvGeneration = UVGenerationMode.None
        )
        {
            m_lockMeshIntermediateState = LockMeshIntermediateStateEnum.PreLock;

      #if UNITY_EDITOR
            Undo.RecordObject(this, "Lock Mesh (" + name + ")");
      #endif

            base.LockMesh(autoRigging, async, mesh, uvGeneration);

      #if UNITY_EDITOR
            Undo.FlushUndoRecordObjects();
      #endif

            switch (MeshGenerationRenderableMeshMode)
            {
            case RenderableMeshMode.None:
                break;

            case RenderableMeshMode.Procedural:
                MarkNeedsCompute();
                break;

            case RenderableMeshMode.MeshRenderer:
                AddLockedStandardMesh(gameObject, autoRigging, async, mesh, uvGeneration);
                if (!async)
                {
                    DisposeLocalResources();
                }
                break;
            }

            m_lockMeshIntermediateState = LockMeshIntermediateStateEnum.PostLock;
        }