Я делаю игру стрелялки из пушечного ядра. вот короткий код, где я рассчитываю направление прицеливания.Мышь на основе прицеливания Unity3d
Vector3 mousePos = Input.mousePosition;
mousePos.z = thisTransform.position.z - camTransform.position.z;
mousePos = mainCamera.ScreenToWorldPoint (mousePos);
Vector3 force = mousePos - thisTransform.position;
force.z = force.magnitude;
Это работает, когда оба шара и под углом (0,0,0). Но когда угол меняется, я не могу стрелять в правильном направлении.
Предположим, что шар и камера смотрят на 45 градусов с правой стороны, тот же код не работает.
Текущий код предполагает, что оба значения находятся под углом (0,0,0). Таким образом, в вышеупомянутом случае направление метания всегда неверно.
Я хочу бросить мяч в любом направлении. Но предположим, что это 0 углов и соответственно бросить.
Отличная работа! Но нужно ли создавать самолет каждый раз, когда я хочу вычислить положение мыши? Да, пожалуйста, вы можете загрузить воспроизводимую демо для всех. –
Demo добавлено в ответе –
Извините, не заметил ваш вопрос о самолете: это не обязательно, но так дешево, что вам не стоит его беспокоить. Это просто математическая конструкция, не намного сложнее, чем вектор. Плюс, если он пересчитал каждый кадр, тогда вы можете легко перемещать самолет. –