Пример #1
0
    private void CutElements()
    {
        int destroyed = 0;

        Debug.Log("Cutting Elements");

        /*Pour chaque élément, compare chaque voisin avec chaque élément dans la liste
         * S'ils sont identiques, !alors détruire le joint qui relie l'élément et le voisin!
         * Ensuite, vider l'index de l'array de joint
         * Finalement vider la liste
         */

        for (int i = 0; i < this.Elements.Count; i++)
        {
            ElementPhysics elementPhysics = this.Elements[i].GetComponent <ElementPhysics>();
            for (int j = 0; j < elementPhysics.neighbors.Length; j++)
            {
                if (this.Elements.Contains(elementPhysics.neighbors[j]))
                {
                    for (int k = 0; k < elementPhysics.jointsRigidbodys.Length; k++)
                    {
                        if (this.Elements.Contains(elementPhysics.jointsRigidbodys[k]))
                        {
                            Destroy(elementPhysics.joints[k]);
                            elementPhysics.jointsRigidbodys[k] = null;
                            elementPhysics.joints[k]           = null;
                            destroyed += 1;
                            print("destroyed : " + destroyed);
                        }
                    }
                }
            }
        }

        this.Elements.Clear();
    }
 public Element(ElementCommon common, ElementPhysics physics)
 {
     this.common  = common;
     this.physics = physics;
 }