private void addPointEditorCircle(int index) { PointEditor pointEditorCircle = createPointEditorCircle(index); pointEditorCircle.transform.position = mapRoute.Points[index]; pointEditorsList.Add(pointEditorCircle); }
private void onCircleDrag(Vector3 position, PointEditor pointEditor) { int index = pointEditorsList.IndexOf(pointEditor); Vector3 worldPoint; RectTransformUtility.ScreenPointToWorldPointInRectangle(canvasTransform, position, Camera.main, out worldPoint); mapRoute.Points[index] = worldPoint; RouteView.SetRoute(mapRoute); }
private void onCircleAddPointButtonClicked(PointEditor pointEditor) { int index = pointEditorsList.IndexOf(pointEditor); mapRoute.Points.Insert(index + 1, pointEditor.transform.position); insertPointEditorCircle(index); RouteView.SetRoute(mapRoute); }
private void onEndDrag(Vector3 position, PointEditor pointEditor) { if (mapRoute.Points.Count > 0) { Vector3 worldPoint; RectTransformUtility.ScreenPointToWorldPointInRectangle(canvasTransform, position, Camera.main, out worldPoint); mapRoute.Points[mapRoute.Points.Count - 1] = worldPoint; RouteView.SetRoute(mapRoute); } }
private void createPointEditor() { if (endPointEditor == null) { endPointEditor = Object.Instantiate(PointEditorPrefab, PointEditorContainer); endPointEditorTransform = endPointEditor.transform as RectTransform; endPointEditor.OnAddPointButtonClicked += onAddPointButtonClicked; endPointEditor.OnRemovePointButtonClicked += onRemovePointButtonClicked; endPointEditor.OnDrag += onEndDrag; } }
private void onAddPointButtonClicked(PointEditor pointEditor) { if (mapRoute.Points.Count == 0) { mapRoute.Points.Add(endPointEditorTransform.position); } mapRoute.Points.Add(endPointEditorTransform.position); RouteView.SetRoute(mapRoute); addPointEditorCircle(pointEditorsList.Count); }
private void insertPointEditorCircle(int index) { int insertIndex = index + 1; PointEditor pointEditorCircle = createPointEditorCircle(insertIndex); pointEditorCircle.transform.position = mapRoute.Points[index]; pointEditorsList.Insert(insertIndex, pointEditorCircle); pointEditorCircle.transform.SetSiblingIndex(insertIndex); }
private PointEditor createPointEditorCircle(int index) { PointEditor pointEditorCircle = Object.Instantiate(PointEditorCirclePrefab, PointEditorContainer.Find("CircleContainer")); pointEditorCircle.gameObject.name = "PointEditorCircle " + index; pointEditorCircle.OnAddPointButtonClicked += onCircleAddPointButtonClicked; pointEditorCircle.OnRemovePointButtonClicked += onCircleRemovePointButtonClicked; pointEditorCircle.OnDrag += onCircleDrag; pointEditorCircle.OnClicked += onCircleClicked; return(pointEditorCircle); }
private void onRemovePointButtonClicked(PointEditor pointEditor) { if (mapRoute.Points.Count > 0) { mapRoute.Points.Remove(mapRoute.Points.Last()); RouteView.SetRoute(mapRoute); endPointEditorTransform.position = mapRoute.Points.Last(); pointEditorsList.RemoveAt(pointEditorsList.Count - 1); } }
private void onCircleClicked(PointEditor pointEditor) { int index = pointEditorsList.IndexOf(pointEditor); if (index != activeCircleIndex) { for (int i = 0; i < pointEditorsList.Count; i++) { pointEditorsList[i].SetButtonsVisible(false); } pointEditorsList[index].SetButtonsVisible(true); activeCircleIndex = index; } }
private void onCircleRemovePointButtonClicked(PointEditor pointEditor) { }