motkot
@motkot
Программирование C#.

Противник стреляет не туда?

На видео это видно лучше всего.

Противник стреляет не туда куда нужно и стрела повернута криво.
Если игрок пробежит, то стрелы начинают лететь вообще не в ту сторону.

Как это исправить?

Код:

using UnityEngine;

public class ShotingEnemy : MonoBehaviour
{
    [Header("Settings")]
    [SerializeField] private float _distance;
    [SerializeField] private float _cooldown;

    [SerializeField] private StateEnemy _prefab;
    [SerializeField] private Transform _target;

    private float _currentTime;

    private bool CanShot = true;

    private void Update()
    {
        transform.LookAt(_target.position, Vector3.up);

        if(CanShot && (_target.position - transform.position).magnitude <= _distance)
        {
            Shot();

            CanShot = false;
        }

        if(!CanShot)
        {
            _currentTime += Time.deltaTime;
        }

        if(_currentTime >= _cooldown)
        {
            CanShot = true;
            _currentTime = 0;
        }
    }

    private void Shot()
    {
        var bullet = Instantiate(_prefab, transform.position, Quaternion.identity);

        bullet.transform.LookAt(_target.position);
    }
}


На стреле вот этот код:

using UnityEngine;

public class MoveForward : MonoBehaviour
{
    [SerializeField] private float _speed;

    private void Update()
    {
        transform.Translate(-transform.forward);
    }
}


Заранее спасибо. По любым вопросам пишите!
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 2
KraGenDeveloper
@KraGenDeveloper
Unity Developer
Я знаю что не то НО что бы стрела летела по вектору взгляда врага нужно НЕ
var bullet = Instantiate(_prefab, transform.position, Quaternion.identity);

А
var bullet = Instantiate(_prefab, transform.forward, Quaternion.identity);

так стрела полетит по взгляду противника
Ответ написан
MrAfitol
@MrAfitol
У тебя в префабе стрелы нулевые координаты и поворот ?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы