У меня LineRenderer
состоит из 3 баллов.Я хочу выстрелить снарядом из второй точки в направлении третьей.
Я пытался получить обе позиции, создать экземпляр на второй и стрелять вперед в направлении третьей, но мои снаряды были немногосдвинуто с того места, куда они должны идти.
Существует метод стрельбы из снаряда, который я использовал ранее и который работал, когда у меня был LineRenderer
только с 2 очками.Я получил идею от https://unity3d.com/learn/tutorials/topics/physics/brick-shooter.
public void Shoot()
{
shotPosL = laserPointerL.GetComponent<Transform>(); //get the position of the beginning of the laser pointer
Rigidbody shotL = Instantiate(projectile, shotPosL.position, shotPosL.rotation) as Rigidbody; //instantiate a new projectile
shotL.AddForce(shotPosL.forward * shotForce); //throw the projectile in the direction of the laser pointer
}
Но поскольку я добавил третью точку к своему LineRenderer
, снаряды просто идут прямо из середины экрана и назад.
Редактировать: Кто-то решил, что мое сообщение бесполезно или не понятно, извините, это сложно объяснить.Вот мой текущий код, если он помогает.
public void Shoot()
{
Quaternion noRotation = Quaternion.Euler(0, 0, 0);
LineRenderer laserL = laserPointerL.GetComponent<LineRenderer>();
Vector3 kneeLeftPosition = laserL.GetPosition(1);
Vector3 laserLeftTarget = laserL.GetPosition(2);
Rigidbody shotL = Instantiate(projectile, kneeLeftPosition, noRotation) as Rigidbody; //instantiate a new projectile
shotL.AddForce(laserLeftTarget * shotForce); //throw the projectile in the direction of the laser pointer
}