Место общения программистов C#
Anonymous
CapsuleCast иногда не работает при движении по наклонной плоскости
Сообщение
Anonymous » 30 дек 2025, 18:17
Я пытаюсь переместиться по горизонтали с помощью следующего кода:
Код: Выделить всё
Vector3 Move(Vector3 dir_movement, Vector3 position, int i)
{
if (i > maxi)
{
return Vector3.zero;
}
float dist = dir_movement.magnitude + skinWidth;
float radius = capsuleCollider.radius;
float height = capsuleCollider.height;
Vector3 center = position;
Vector3 bottom = center - transform.up * (height / 2 - radius - skinWidth);
Vector3 top = center + transform.up * (height / 2 - radius - skinWidth);
RaycastHit hit;
if (Physics.CapsuleCast(top, bottom, radius - skinWidth, dir_movement, out hit, dist, layerMask))
{
Vector3 distToSurface = dir_movement.normalized *
(hit.distance - skinWidth);
Vector3 leftOver = dir_movement - distToSurface;
if (distToSurface.magnitude
Подробнее здесь: [url]https://stackoverflow.com/questions/79857566/capsulecast-sometimes-does-not-work-when-driving-on-an-inclined-plane[/url]
1767107851
Anonymous
Я пытаюсь переместиться по горизонтали с помощью следующего кода: [code] Vector3 Move(Vector3 dir_movement, Vector3 position, int i) { if (i > maxi) { return Vector3.zero; } float dist = dir_movement.magnitude + skinWidth; float radius = capsuleCollider.radius; float height = capsuleCollider.height; Vector3 center = position; Vector3 bottom = center - transform.up * (height / 2 - radius - skinWidth); Vector3 top = center + transform.up * (height / 2 - radius - skinWidth); RaycastHit hit; if (Physics.CapsuleCast(top, bottom, radius - skinWidth, dir_movement, out hit, dist, layerMask)) { Vector3 distToSurface = dir_movement.normalized * (hit.distance - skinWidth); Vector3 leftOver = dir_movement - distToSurface; if (distToSurface.magnitude Подробнее здесь: [url]https://stackoverflow.com/questions/79857566/capsulecast-sometimes-does-not-work-when-driving-on-an-inclined-plane[/url]