Ejemplo n.º 1
0
        protected virtual void OnDestroy()
        {
            if (meshes != null)
            {
                for (var i = meshes.Count - 1; i >= 0; i--)
                {
                    var mesh = meshes[i];

                    if (mesh != null)
                    {
                        mesh.Clear(false);

                        SgtObjectPool <Mesh> .Add(meshes[i]);
                    }
                }
            }

            if (models != null)
            {
                for (var i = models.Count - 1; i >= 0; i--)
                {
                    SgtAuroraModel.MarkForDestruction(models[i]);
                }
            }

            SgtHelper.Destroy(material);
        }
        protected virtual void OnDestroy()
        {
            if (mesh != null)
            {
                mesh.Clear(false);

                SgtObjectPool <Mesh> .Add(mesh);
            }
        }
Ejemplo n.º 3
0
        protected virtual void OnDestroy()
        {
            if (mesh != null)
            {
                mesh.Clear(false);

                SgtObjectPool <Mesh> .Add(mesh);
            }

            SgtHelper.Destroy(material);
        }
        protected virtual void OnDestroy()
        {
            if (quitting == false)
            {
                if (generatedMesh != null)
                {
                    generatedMesh.Clear(false);

                    SgtObjectPool <Mesh> .Add(generatedMesh);
                }
            }
        }
        public void PoolMeshNow()
        {
            if (mesh != null)
            {
                if (meshFilter == null)
                {
                    meshFilter = gameObject.GetComponent <MeshFilter>();
                }

                mesh.Clear(false);

                mesh = meshFilter.sharedMesh = SgtObjectPool <Mesh> .Add(mesh);
            }
        }
Ejemplo n.º 6
0
        private void Pool()
        {
            if (meshCollider != null)
            {
                SgtHelper.Destroy(meshCollider.gameObject);

                meshCollider = null;
            }

            if (mesh != null)
            {
                mesh.Clear(false);

                mesh = SgtObjectPool <Mesh> .Add(mesh);
            }
        }
Ejemplo n.º 7
0
        public void UpdateMeshesAndModels()
        {
            if (meshes == null)
            {
                meshes = new List <Mesh>();
            }

            if (PathDetail > 0 && PathLengthMin > 0.0f && PathLengthMax > 0.0f)
            {
                var meshCount   = 1;
                var mesh        = GetMesh(0);
                var vertexCount = 0;

                SgtHelper.BeginRandomSeed(Seed);
                {
                    for (var i = 0; i < PathCount; i++)
                    {
                        AddPath(ref mesh, ref meshCount, ref vertexCount);
                    }
                }
                SgtHelper.EndRandomSeed();

                BakeMesh(mesh);

                for (var i = meshes.Count - 1; i >= meshCount; i--)
                {
                    var extraMesh = meshes[i];

                    if (extraMesh != null)
                    {
                        extraMesh.Clear(false);

                        SgtObjectPool <Mesh> .Add(extraMesh);
                    }

                    meshes.RemoveAt(i);
                }
            }

            for (var i = 0; i < meshes.Count; i++)
            {
                var model = SgtHelper.GetIndex(ref models, i);

                if (model == null)
                {
                    model = models[i] = SgtAuroraModel.Create(this);
                }

                model.SetMesh(meshes[i]);
                model.SetMaterial(material);
            }

            // Remove any excess
            if (models != null)
            {
                var min = Mathf.Max(0, meshes.Count);

                for (var i = models.Count - 1; i >= min; i--)
                {
                    SgtAuroraModel.Pool(models[i]);

                    models.RemoveAt(i);
                }
            }
        }