void Update()
        {
            var t      = transform;
            var scroll = Helper.Clamp(DetectEdgeScroll() + DetectKeyboardScroll()).normalized;


            if (scroll != Vector2.zero)
            {
                _smoothCamera.SetRelativeTarget(scroll * (speed * Time.deltaTime));
            }

            if (!disableScroll)
            {
                var scrollValue = Input.mouseScrollDelta.y;
                if (Mathf.Abs(scrollValue) > float.Epsilon)
                {
                    var currentCameraHeight = _cameraTransform.localPosition.y;
                    var newCameraHeight     = Mathf.Clamp(currentCameraHeight - (scrollValue * zoomSpeed), minZoom, maxZoom);
                    _cameraTransform.localPosition = new Vector3(0, newCameraHeight, 0);
                    _smoothCamera.SetZoom(newCameraHeight);
                }
            }

            if (Input.GetButton("Jump"))
            {
                _smoothCamera.SetTarget(t.parent.GetComponentInChildren <Ball>().transform.position);
            }
        }
Пример #2
0
        void Update()
        {
            if (!_spaceVehicle)
            {
                GameObject ballObject = GameObject.Find("Ball");
                if (!ballObject)
                {
                    return;
                }
                _spaceVehicle = ballObject.GetComponent <Ball>();
            }

            if (_spaceVehicle.inOrbitAround)
            {
                var planet = _spaceVehicle.inOrbitAround;
                if (planet != lastOrbitedPlanet)
                {
                    lastOrbitedPlanet = planet;
                    var dimensions = new Vector2(2 * planet.radiusGravity, 2 * planet.radiusGravity) * 1.2f;
                    var distance   = Helper.DistanceToFillFrustum(_playerController.playerCamera, dimensions);
                    _smoothCamera.SetZoomTarget(distance);

                    var pos = _spaceVehicle.inOrbitAround.transform.position;
                    _smoothCamera.SetTarget(pos);
                }

                if (_spaceVehicle.IsInStableOrbit() && _spaceVehicle.inOrbitAround == _spaceVehicle.world.goalPlanet)
                {
                    if (_spaceVehicle.world.hud.shotCount <= _spaceVehicle.world.hud.shotsForPar)
                    {
                        success.Play();
                    }
                    else
                    {
                        lesserSuccess.Play();
                    }
                    _spaceVehicle.world.NewGoal();
                }
            }
            else
            {
                lastOrbitedPlanet = null;
                var spaceVehiclePosition = _spaceVehicle.transform.position;
                _smoothCamera.SetTarget(spaceVehiclePosition);
            }
        }