Jurajkeee
@Jurajkeee
Baby Developer

Как узнать угол между направлением полета объекта и осью х?

Хотел дополнить скрипт чтобы он оборачивал префаб пули на 180 ,если он был выпущен влево.
using UnityEngine;
using System.Collections;

public class Shooting2 : MonoBehaviour
{
    public GameObject rocket;
    public float speed;
    public KeyCode Fire = KeyCode.F;
    public SwordScript shooted;
    private Animator anims;
    private float vertical;
    private float horizontal;
    private Rigidbody2D body;
    public float angle;
    void FixedUpdate()
    {
        if (Input.GetKeyDown(Fire))
        {
            Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector2 direction = (Vector2)((worldMousePos - transform.position));
            direction.Normalize();
            GameObject bullet = (GameObject)Instantiate(
                                    rocket,
                                    transform.position + (Vector3)(direction * 0.5f),
                                    Quaternion.identity);
            bullet.GetComponent<Rigidbody2D>().velocity = direction * speed;
            bullet.AddComponent<Animator>();
            bullet.AddComponent<SwordScript>();
            //Участок снизу должен узнать угол между направлением пули и осью х и перевернуть префаб.
            Vector2 targetDir = bullet.GetComponent<Transform>().position - transform.position;
            float angle = Vector2.Angle(targetDir, transform.right);           
            if (angle > 90f && angle < 180f)
            {
                shooted.Flip();
            }
        }
    }
    void Start()
    {
        anims = GetComponent<Animator>();
        anims.SetFloat("flying", 2);

        body = GetComponent<Rigidbody2D>();
        shooted = GetComponent<SwordScript>();
    }
}

Только вот не пойму почему он не работает как надо.
  • Вопрос задан
  • 290 просмотров
Пригласить эксперта
Ответы на вопрос 1
@shagguboy
Косинус угла между векторами равен скалярному произведению векторов, поделенному на произведение модулей векторов.

геометрия, 9 класс.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы