Esempio n. 1
0
        private void PickChange(Vector2 mousePosition)
        {
            GeneralUtility.DisableAndThrowOnUnassignedReference(this, partitioning, "The FaceSpatialPartitioningPicker component requires a reference to a UniversalFaceSpatialPartitioning scriptable object.  Either create a saved asset using generators available in the Assets/Create/Topology menu, or create and assign one at runtime before the picker's Start() event runs.");

            var ray  = Geometry.InverseTransformRay(transform, camera.ScreenPointToRay(mousePosition));
            var face = partitioning.FindFace(ray);

            if (face && _currentFace != face)
            {
                var previousFace = _currentFace;
                _currentFace = face;
                OnPickChange.Invoke(previousFace, face);
            }
        }
Esempio n. 2
0
        private void PickStart(Vector2 mousePosition, int button)
        {
            GeneralUtility.DisableAndThrowOnUnassignedReference(this, partitioning, "The FaceSpatialPartitioningPicker component requires a reference to a UniversalFaceSpatialPartitioning scriptable object.  Either create a saved asset using generators available in the Assets/Create/Topology menu, or create and assign one at runtime before the picker's Start() event runs.");

            var ray       = Geometry.InverseTransformRay(transform, camera.ScreenPointToRay(mousePosition));
            var startFace = partitioning.FindFace(ray);

            if (startFace)
            {
                _currentFace     = startFace;
                _picking[button] = true;
                OnPickStart.Invoke(startFace, button);
            }
            else
            {
                _picking[button] = false;
                _currentFace     = Topology.Face.none;
            }
        }