Хочу, чтобы когда я нажимал на лкм на платформе, то объект перемещался в данную точку с помощью силы. Но он некорректно вычисляет направление.
void Update ()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.gameObject.name == "grownd")
{
Instantiate(spawnTarget, hit.point, Quaternion.identity);
cube.GetComponent<Rigidbody>().AddForce(hit.point,ForceMode.Impulse);
}
}
}
}
На то есть 2 причины.
Рабочий код будет выглядеть так:
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.gameObject.name == "grownd")
{
var initPoss = Vector3.zero;
Instantiate(spawnTarget, initPoss, Quaternion.identity);
var direction = hit.point - spawnTarget.transform.position;
spawnTarget.GetComponent<Rigidbody>().AddForce(direction, ForceMode.Impulse);
}
}
}
P.S. в имени объекта "grownd" опечатка:)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости