WasTabon
@WasTabon

Как менять позицию объекта по его нижней границе коллайдера?

Первый скрипт
public Vector3 ViewPosition()
    {
        RaycastHit hit;
        if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, 10f, _layersToIgnore))
        {
            Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance,
                Color.yellow);
            return hit.point;
        }
        else
            return new Vector3(9999, 9999, 9999);
    }


второй скрипт
private void ChangePosition()
    {
        if (gameObject.activeSelf)
            transform.position = _buildScheme.ViewPosition();
    }


оно работает корректно, но изза центра объекта в центре он проваливается все время 64973cb1b1c3a053268164.png

менять pivot через родительский объект не получится, сделал получение нижней границы коллайдера но только каким образом я могу менять положение объекта так чтобы он всегда стоял на нижней границе. Пытался так же сделать x и z по _buildScheme.ViewPosition() и y нижней границы, но тоже не работает
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
WasTabon
@WasTabon Автор вопроса
_height = _collider.bounds.size.y / 2;

Vector3 buildPos = new Vector3(_buildScheme.ViewPosition().x, _buildScheme.ViewPosition().y + _height, _buildScheme.ViewPosition().z);
        if (gameObject.activeSelf)
            transform.position = buildPos;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы