На
видео это видно лучше всего.
Противник стреляет не туда куда нужно и стрела повернута криво.
Если игрок пробежит, то стрелы начинают лететь вообще не в ту сторону.
Как это исправить?
Код:
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);
}
}
Заранее спасибо. По любым вопросам пишите!