Я работаю над тем, чтобы иметь липкую конвейерную ленту, чтобы объекты также могли вокруг нее go. Но мои объекты в настоящее время застряли на полпути, как видно на рисунке.
Это код движения конвейерной ленты.
private void HandleCargo()
{
var _speed = speed * Time.deltaTime;
foreach (var cargo in _cargo)
{
var change = cargo.Key.transform.right * _speed;
cargo.Key.transform.Translate(change);
}
}
И код, обеспечивающий поворот на поверхность.
private void Update()
{
Debug.DrawRay(transform.position, -transform.up, Color.black);
if (!Physics.Raycast(transform.position, -transform.up, out var hit, _distance)) return;
var normal = hit.normal;
transform.up -= (transform.up - hit.normal) * 0.05f;
}
Если у кого-то есть указания относительно того, почему это происходит, это было бы здорово. У меня вроде есть идея, так как право преобразования кода конвейера направлено внутрь под этими углами, так что движение больше не происходит вокруг ленты, но я исчерпал свои попытки исправить это ...