Как провести LineCast не от центра объекта
Я вызываю LineCast от дочернего объекта (с координатами отличными от родительского), с colider и Rigidbody но он работает точно так же если я буду проводить LineCast от родительского объекта.
Фото где Родительский объект не видит колайдер (Дочерний видит):
Фото где Родительский объект уже видит колайдер (Дочерний всё так же видит):

И только здесь он срабатывает, и то только потому что родительский объект его видит.
Эффект работы точно такой же, что при вызове LineCast'a от дочернего или родительского объекта.
Как можно провести LineCast, чтобы он работал как было задумано?
UPD: Проблема возникает и в случае если LineCast провести от родительского объекта. Я могу провести до любой точки луч, но начать от любой не могу (только от центра родительского объекта)
Код к UPD:
rend = plrRend.GetComponent<Renderer>();
Vector3 rightUpPlr = new(plrRend.transform.position.x - 2f, rend.bounds.max.y, rend.bounds.min.z); //попробовал со всех сторон
if (Physics.Linecast(rightUpPlr, closest.transform.position, out RaycastHit curhitInfo))
{
lineDrawer.DrawLineInGameView(rightUpPlr, closest.transform.position, Color.blue, Color.red);
}
Ответы (1 шт):
Вот почему тексты бесполезны и мы смотрим только на код.
Я вызываю LineCast от дочернего объекта
Вот это ты называешь дочерним объектом? с colider?
new Vector3(plrRend.transform.position.x-2f, rend.bounds.max.y, rend.bounds.min.z);
В каком месте это дочерний объект? bounds это не collider и не colider. bounds это bounds, находящийся в компоненте Renderer, который никак с столкновениями не связан от слова "ВАЩЕ"!
Это координата, где x, y и z набор случайных и не связанных между собой значений.
public Transform Target;
[SerializeField] private Transform _chield;
private void Update ()
{
if (Target != null)
{
CastAndDraw(transfrom, Target);
CastAndDraw(_chield, Target);
}
}
private void CastAndDraw (Transform from, Transform target)
{
if (Physics.Linecast(from.position, target.position, out RaycastHit curhitInfo))
lineDrawer.DrawLineInGameView(from.position, target.position, Color.blue, Color.red);
}
bounds вообще использовать не нужно. Это техническая штука, куб описывающий границы занимаемого пространства.
[RequireComponent(typeof(Renderer))]
public class DrawBounce : MonoBehaviour
{
private void OnDrawGizmos ()
{
Renderer renderer = GetComponent<Renderer>();
Gizmos.DrawWireCube(renderer.bounds.center, renderer.bounds.size);
}
}

