private void ElementDropped(ReorderableList.ReorderableListEventStruct droppedStruct) { DebugLabel.text = ""; DebugLabel.text += "Dropped Object: " + droppedStruct.DroppedObject.name + "\n"; DebugLabel.text += "Is Clone ?: " + droppedStruct.IsAClone + "\n"; if (droppedStruct.IsAClone) { DebugLabel.text += "Source Object: " + droppedStruct.SourceObject.name + "\n"; } DebugLabel.text += string.Format("From {0} at Index {1} \n", droppedStruct.FromList.name, droppedStruct.FromIndex); DebugLabel.text += string.Format("To {0} at Index {1} \n", droppedStruct.ToList == null ? "Empty space" : droppedStruct.ToList.name, droppedStruct.ToIndex); }
public void OnElementAdded(ReorderableList.ReorderableListEventStruct e) { var placesOrdered = placesShown.OrderBy(p => p.transform.GetSiblingIndex()); // move around elements in the distance matrix // don't have to call Google again, also instant change var orig = new System.Collections.ObjectModel.ObservableCollection <string>( currentDistanceMatrix.origin_addresses); var dest = new System.Collections.ObjectModel.ObservableCollection <string>( currentDistanceMatrix.destination_addresses); var rows = new System.Collections.ObjectModel.ObservableCollection <DistanceMatrix.Row>( currentDistanceMatrix.rows); orig.Move(e.FromIndex, e.ToIndex); dest.Move(e.FromIndex, e.ToIndex); rows.Move(e.FromIndex, e.ToIndex); foreach (var r in rows) { var elems = new System.Collections.ObjectModel.ObservableCollection <DistanceMatrix.Element>( r.elements); elems.Move(e.FromIndex, e.ToIndex); r.elements = elems.ToArray(); } currentDistanceMatrix.origin_addresses = orig.ToArray(); currentDistanceMatrix.destination_addresses = dest.ToArray(); currentDistanceMatrix.rows = rows.ToArray(); //currentDistanceMatrix = null; //StartCoroutine(GetTravelTimesCoroutine(placesOrdered.Select(p => p.data.place))); foreach (var p in placesOrdered) { int index = p.transform.GetSiblingIndex(); index = index > e.ToIndex ? index - 1 : index; p.data.place.itineraryindex = index; StartCoroutine(EditPlaceCoroutine(p)); StartCoroutine(p.GetTravelTimes()); } ValidateArrivalTimings(placesOrdered); currentItinerary.placesData = currentItinerary.placesData.OrderBy(p => p.place.itineraryindex).ToList(); Flyby.Instance.StartFlyby(currentItinerary); }
private void ElementDropped(ReorderableList.ReorderableListEventStruct droppedStruct) { DebugLabel.text = ""; Text debugLabel = DebugLabel; debugLabel.text = debugLabel.text + "Dropped Object: " + droppedStruct.DroppedObject.name + "\n"; Text debugLabel2 = DebugLabel; string text = debugLabel2.text; debugLabel2.text = text + "Is Clone ?: " + droppedStruct.IsAClone + "\n"; if (droppedStruct.IsAClone) { Text debugLabel3 = DebugLabel; debugLabel3.text = debugLabel3.text + "Source Object: " + droppedStruct.SourceObject.name + "\n"; } DebugLabel.text += $"From {droppedStruct.FromList.name} at Index {droppedStruct.FromIndex} \n"; DebugLabel.text += $"To {droppedStruct.ToList.name} at Index {droppedStruct.ToIndex} \n"; }
public void OnObjectDropped(ReorderableList.ReorderableListEventStruct e) { RectTransform droppedTransform = e.DroppedObject.transform as RectTransform; Canvas parentCanvas = (e.DroppedObject.transform as RectTransform).GetParentCanvas(); Camera parentCamera = parentCanvas.worldCamera; Vector2 canvasSize = parentCanvas.pixelRect.size * parentCanvas.scaleFactor; Vector2 pivot = droppedTransform.anchorMin * droppedTransform.anchorMax; Vector2 screenOffset = pivot * canvasSize; Vector3 screenPosition = screenOffset + droppedTransform.anchoredPosition * parentCanvas.scaleFactor; screenPosition.z = 1; Ray ray = new Ray(parentCamera.ScreenToWorldPoint(screenPosition), parentCamera.transform.forward); Plane plane = new Plane(-parentCamera.transform.forward, Vector3.zero); plane.Raycast(ray, out float d); Vector3 worldPos = ray.GetPoint(d); SceneItemElementViewController controller = e.DroppedObject.GetComponent <SceneItemElementViewController>(); if ((e.FromList.transform as RectTransform).rect.Contains(e.DroppedObject.transform.position)) { Destroy(e.DroppedObject); return; } // create scene item SceneItemData data = SceneItemData.Empty; data.position = worldPos; data.payloadType = controller.sceneItemTemplateData.payloadType; data.payload = data.payloadType == PayloadType.Primitive ? controller.sceneItemTemplateData.itemName : controller.payload; ISceneItem item = m_SceneItemFactory.Create(data); e.DroppedObject.transform.parent = null; Destroy(e.DroppedObject); }
public void OnElementMoved(ReorderableList.ReorderableListEventStruct e) { GameObject.Destroy(e.DroppedObject); m_EditorSceneManager.MoveStepFromTo(e.FromIndex, e.ToIndex); }
public void BinItem(ReorderableList.ReorderableListEventStruct listEvent) { print("BIN!"); }