Направление силы в юнити

301
16 ноября 2017, 01:51

Хочу, чтобы когда я нажимал на лкм на платформе, то объект перемещался в данную точку с помощью силы. Но он некорректно вычисляет направление.

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); 
            }
        }   
    }
}   
Answer 1

На то есть 2 причины.

  1. Instantiate и собственно точка приложения удара - одна и та же позиция. Очевидно, это не правильно.
  2. В методе AddForce первый параметр не точка, куда будет направляется объект, а вектор силы. Подробнее про AddForce

Рабочий код будет выглядеть так:

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" опечатка:)

READ ALSO
Ошибка Timeout expired при выполнении MySQL-запроса

Ошибка Timeout expired при выполнении MySQL-запроса

Есть запрос в БД (на нем и происходит ошибка, остальные обрабатываются нормальноСам запрос рабочий (проверял в Workbench))

255
Можно присвоить 4 разные значения, четырем лейблам в одной строке?

Можно присвоить 4 разные значения, четырем лейблам в одной строке?

Можно присвоить 4 разные значения, четырем лейблам в одной строке?

307
Button не отжимается после выполнения Command

Button не отжимается после выполнения Command

Иногда кнопка после выполнения команды не становится активнойПомогает клик по форме

231
UDP передача потокового видео

UDP передача потокового видео

Почитал какой лучше протокол использовать для передачи потокового видео и везде говорится, что для этого лучше подходит UDPНо при реализации...

236