Итак, я пытаюсь создать игру, в которой вы должны установить угол и скорость мяча, который должен отражаться на определенных платформах, чтобы добраться до места назначения.
Теперь, как мне это сделать?найдите направление от точки касания пальца к мячу, чтобы заставить его двигаться «подальше от пальца».
Я пытался использовать вычитание векторов, чтобы получить направление, но оно не работает, поскольку векторы относятся к происхождению мира ... оно всегда дает мне неправильное направление ...
Как мне решить эту проблему, мне нужен вектор направления относительно касания и игрока (мяча), а не мира, чтобы я мог запустить мяч.
Вы увидите это в следующемpicture Я имитирую прикосновение стрелкой мыши (скажем, стрелка мыши - палец игрока. Я хочу запустить мяч в зависимости от расстояния и положения пальца относительно мяча. Это хорошо работает в коде НОТОЛЬКО если мяч находится в начале сцены, так что я думаю, что это математическая проблема с векторами, которые я не знаю, как решить ...

Ниже приведен код, который у меня есть. Он прикреплен к игровому объекту шара:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
[SerializeField]
Camera playerCamera;
Rigidbody rb;
Vector3 touchPostion;
private void Awake()
{
rb = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
if (Input.GetMouseButton(0))
{
LounchPlayer();
}
}
void LounchPlayer()
{
Vector2 mousePos = Input.mousePosition;
touchPostion = (transform.position - playerCamera.ScreenToWorldPoint(
new Vector3(mousePos.x,
mousePos.y,
playerCamera.transform.position.z))).normalized;
rb.AddForce(touchPostion.normalized, ForceMode.Impulse);
}
}