CSL_Traffic.RoadCustomizerTool.HandleIntersectionRouting C# (CSharp) Метод

HandleIntersectionRouting() приватный Метод

private HandleIntersectionRouting ( ) : void
Результат void
		void HandleIntersectionRouting()
		{
			FastList<NodeLaneMarker> nodeMarkers;
			if (m_nodeMarkers.TryGetValue(m_selectedNode, out nodeMarkers))
			{
				Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
				NodeLaneMarker hoveredMarker = null;
				Bounds bounds = new Bounds(Vector3.zero, Vector3.one);
				for (int i = 0; i < nodeMarkers.m_size; i++)
				{
					NodeLaneMarker marker = nodeMarkers.m_buffer[i];

					if (!IsActive(marker))
						continue;

					bounds.center = marker.m_position;
					if (bounds.IntersectRay(mouseRay))
					{
						hoveredMarker = marker;
						marker.m_size = 2f;
					}
					else
						marker.m_size = 1f;
				}

				if (hoveredMarker != null && Input.GetMouseButtonUp(0))
				{
					if (m_selectedMarker == null)
					{
						m_selectedMarker = hoveredMarker;
					}
					else if (LaneManager.RemoveLaneConnection(m_selectedMarker.m_lane, hoveredMarker.m_lane))
					{
						m_selectedMarker.m_connections.Remove(hoveredMarker);
					}
					else if (LaneManager.AddLaneConnection(m_selectedMarker.m_lane, hoveredMarker.m_lane))
					{
						m_selectedMarker.m_connections.Add(hoveredMarker);
					}
				}
			}

			if (Input.GetMouseButtonUp(1))
			{
				if (m_selectedMarker != null)
					m_selectedMarker = null;
				else
					m_selectedNode = 0;
			}
		}