This commit is contained in:
2022-05-15 18:24:43 +07:00
parent abf262095f
commit bb6aea8720
22 changed files with 5008 additions and 170 deletions

View File

@ -0,0 +1,62 @@
using UnityEngine;
[RequireComponent(typeof(NPC))]
public class AimAssistant : MonoBehaviour
{
public GameObject enemy;
public bool _isFiring = false;
private ICharacter _myNpc;
public float lookSpeed = 200f;
private void Awake()
{
_myNpc = GetComponent<NPC>();
}
private void Update()
{
//Ищем противника на сцене.
if (_isFiring == false)
{
var enemies = GameManager.GetVisibleEnemies(_myNpc.GetCharacter.Team, transform.position);
enemy = enemies[new System.Random().Next(enemies.Count)];
if (enemies.Count == 0)
{
return;
}
else
{
var character = enemy.GetComponent<ICharacter>();
character.OnDeathEvent += _ => _isFiring = false;
_isFiring = true;
}
}
else
{
//Raycast до противника enemy
var range = 200f;
while (true)
{
if (!Physics.Raycast(this.transform.position, this.transform.forward, out var hit, range))
{
_isFiring = false;
enemy = null;
return;
}
else
{
GetComponent<Shooting>().Shoot();
}
}
}
var direction = enemy.transform.position - gameObject.transform.position;
var targetRotation = Quaternion.LookRotation(direction);
var lookAt = Quaternion.RotateTowards(gameObject.transform.rotation, targetRotation,
Time.deltaTime * lookSpeed);
lookAt.z = 0;
lookAt.x = 0;
gameObject.transform.rotation = lookAt;
}
}