示例#1
0
        public void OnMouseUp()
        {
            dragTarget = dragInvolved = false;

            if (preview)
            {
                if (isAfter)
                {
                    transform.position = preview.transform.position;
                    transform.rotation = preview.transform.rotation;
                    before             = previewOwner;
                    if (before.connectedNodes.FirstOrDefault() != this)
                    {
                        List <ConnectableNode> newConnections = new List <ConnectableNode> {
                            this
                        };
                        newConnections.AddRange(connectedNodes);
                        if (isBetween)
                        {
                            before.connectedNodes[0].before = this;
                            foreach (ConnectableNode a in connectedNodes)
                            {
                                a.connectedNodes.AddRange(before.connectedNodes);
                            }
                            connectedNodes.AddRange(before.connectedNodes);
                            before.UpdateConnections(newConnections, before.connectedNodes[0]);
                        }
                        else
                        {
                            before.UpdateConnections(newConnections);
                        }
                    }
                }
                else
                {
                    ConnectableNode        first          = connectedNodes.Any() ? connectedNodes.LastOrDefault() : this;
                    List <ConnectableNode> newConnections = new List <ConnectableNode> {
                        previewOwner
                    };
                    newConnections.AddRange(previewOwner.connectedNodes);
                    first.UpdateConnections(newConnections);
                    previewOwner.before = this;
                    previewOwner.transform.Find("UpperTrigger").GetComponent <Collider>().enabled = false;
                }
                RemovePreview();
            }

            transform.Find("LowerTrigger").GetComponent <Collider>().enabled = true;
            Collider upperTrigger = transform.Find("UpperTrigger").GetComponent <Collider>();

            if (upperTrigger && !before)
            {
                upperTrigger.GetComponent <Collider>().enabled = true;
            }
            foreach (ConnectableNode a in connectedNodes)
            {
                a.transform.Find("LowerTrigger").GetComponent <Collider>().enabled = true;
                a.dragInvolved = false;
            }
        }
示例#2
0
 public void UpdateConnections(List <ConnectableNode> newConnections)
 {
     connectedNodes.AddRange(newConnections);
     if (before)
     {
         before.UpdateConnections(newConnections);
     }
 }