You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
927 B
36 lines
927 B
using Ai; |
|
using UnityEngine; |
|
|
|
namespace Player |
|
{ |
|
public class RotateTowardsEnemy : MonoBehaviour |
|
{ |
|
|
|
[SerializeField] private TargetClosestEnemy _targeting; |
|
[SerializeField] private MainCharacter _character; |
|
[SerializeField] private Transform _rotatingTransform; |
|
|
|
private void Update() |
|
{ |
|
if (_character && _character.IsDead || _character && _character.GetState() != CharacterState.DEFAULT) |
|
{ |
|
transform.localEulerAngles = Vector3.zero; |
|
return; |
|
} |
|
|
|
var targetPosition = _targeting != null ? _targeting.ClosestPosition() : transform.forward; |
|
var heading = targetPosition - transform.position; |
|
var direction = _targeting != null && AiController.Instance.TargetingEnemies.Count > 0 |
|
? heading / heading.magnitude |
|
: transform.forward; |
|
|
|
transform.forward = direction; |
|
} |
|
|
|
private void OnValidate() |
|
{ |
|
if (_rotatingTransform == null) |
|
_rotatingTransform = transform; |
|
} |
|
} |
|
}
|
|
|