Ejemplo n.º 1
0
        public void HandleMouseButtonDownEvent(Event e)
        {
            if (ObjectPlacementGuide.ExistsInScene && _objectPlacementPath.IsUnderManualConstruction && AllShortcutCombos.Instance.PlacePathOnClick.IsActive())
            {
                e.DisableInSceneView();
                List <GameObject> placedHierarchyRoots = Octave3DScene.Get().InstantiateObjectHirarchiesFromPlacementDataCollection(_objectPlacementPath.EndManualConstruction());
                ObjectHierarchyRootsWerePlacedInSceneMessage.SendToInterestedListeners(placedHierarchyRoots, ObjectHierarchyRootsWerePlacedInSceneMessage.PlacementType.ObjectPlacement);

                if (ObjectPlacementGuide.ExistsInScene)
                {
                    ObjectPlacementGuide.Active = true;
                }
                return;
            }

            if (_objectPlacementPath.IsUnderManualConstruction && AllShortcutCombos.Instance.ManualAttach2NewSegmentsToPath.IsActive())
            {
                e.DisableInSceneView();
                _objectPlacementPath.Attach2NewSegmentsIfUnderManualConstruction();
            }

            if (!_objectPlacementPath.IsUnderManualConstruction && AllShortcutCombos.Instance.BeginManualPathConstruction.IsActive() && e.InvolvesLeftMouseButton())
            {
                e.DisableInSceneView();

                if (ObjectPlacementGuide.ExistsInScene)
                {
                    _objectPlacementPath.SetStartObject(ObjectPlacementGuide.SceneObject);
                    _objectPlacementPath.BeginManualConstruction();
                    if (_objectPlacementPath.IsUnderManualConstruction)
                    {
                        ObjectPlacementGuide.Active = false;
                    }
                }
                else
                {
                    Debug.LogWarning("Can not begin path construction because the placement guide does not exist in the scene. Please activate a prefab to start construction.");
                }
            }
        }