public override bool GetClosestPoint(Vector3 position, ref Vector3 closestPoint) { bool canApplyGravity = true; closestPoint = CapsuleHalf.GetClosestPoint(position); if (canApplyGravity) { closestPoint = ExtMovableShapeAdvanced.GetRightPosWithRange(position, closestPoint, _radiusMin * transform.lossyScale.Maximum(), _radiusMax * transform.lossyScale.Maximum(), out bool outOfRange); if (outOfRange) { canApplyGravity = false; } } return(canApplyGravity); }
public override void Draw() { CapsuleHalf.Draw(base.GetColor()); if (!_drawRadius) { return; } if (_radiusMin > 0) { CapsuleHalf.DrawWithExtraSize(Color.gray, new Vector3(_radiusMin * transform.lossyScale.Maximum(), _radiusMin * transform.lossyScale.Maximum(), _radiusMin * transform.lossyScale.Maximum())); } if (_radiusMax > 0) { CapsuleHalf.DrawWithExtraSize(Color.red, new Vector3(_radiusMax * transform.lossyScale.Maximum(), _radiusMax * transform.lossyScale.Maximum(), _radiusMax * transform.lossyScale.Maximum())); } }