예제 #1
0
        /// <summary>
        /// Unloads a given MeshCluster from the scene. Unloaded Clusters do not take part in sound processing.
        /// </summary>
        public void UnloadMeshCluster(SoundToolKitMeshCluster meshCluster)
        {
            if (meshCluster != null && meshCluster.Model != null && SoundToolKitManager.Instance != null)
            {
                SoundToolKitManager.Instance.StkAudioEngine.Scene.RemoveModel(meshCluster.Model);
            }

            meshCluster.OnMeshesModified -= ReloadMeshCluster;
            meshCluster.ClearInternalModel();
        }
예제 #2
0
        internal void ReloadMeshCluster(SoundToolKitMeshCluster meshCluster)
        {
            var scene = SoundToolKitManager.Instance.StkAudioEngine.Scene;

            meshCluster.ClearSerializedData();

            if (meshCluster.Model != null)
            {
                scene.RemoveModel(meshCluster.Model);
                meshCluster.ClearInternalModel();
            }

            if (meshCluster.AcousticMeshNames.Any())
            {
                meshCluster.CreateInternalModel();
                scene.AddModel(meshCluster.Model);
            }
        }