示例#1
0
        private float GetSpeedMultiplier()
        {
            if (speedMax > 0.0f)
            {
                var distance = float.PositiveInfinity;

                SgtHelper.InvokeCalculateDistance(transform.position, ref distance);

                var distance01 = Mathf.InverseLerp(speedMin * speedRange, speedMax * speedRange, distance);

                return(Mathf.Lerp(speedMin, speedMax, distance01));
            }

            return(0.0f);
        }
示例#2
0
        protected virtual void Update()
        {
            var distance = float.PositiveInfinity;

            SgtHelper.InvokeCalculateDistance(transform.position, ref distance);

            if (distance < distanceMax)
            {
                var distance01  = Mathf.InverseLerp(distanceMin, distanceMax, distance);
                var drag        = Mathf.Lerp(dragMax, dragMin, distance01);
                var angularDrag = Mathf.Lerp(angularDragMax, angularDragMin, distance01);

                cachedRigidbody.drag        = drag;
                cachedRigidbody.angularDrag = angularDrag;
            }
            else
            {
                cachedRigidbody.drag        = dragMin;
                cachedRigidbody.angularDrag = angularDragMin;
            }
        }