75 lines
1.6 KiB
C#
75 lines
1.6 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using Unity.VisualScripting;
|
||
|
using UnityEditor;
|
||
|
using UnityEditor.Callbacks;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.Timeline;
|
||
|
|
||
|
public class BasicEnemy : MonoBehaviour
|
||
|
{
|
||
|
|
||
|
[Header("References")]
|
||
|
public Transform parentTransform;
|
||
|
public Player playerData;
|
||
|
public BasicEnemyStateController sc;
|
||
|
|
||
|
[Header("Settings")]
|
||
|
|
||
|
public float distance;
|
||
|
public float moveSpeed;
|
||
|
|
||
|
[Header("Internal")]
|
||
|
|
||
|
public Vector2 targetPosition;
|
||
|
public Vector2 currentTargetVector;
|
||
|
public int randomNumber;
|
||
|
public Vector2 currentVelocity;
|
||
|
|
||
|
void Awake()
|
||
|
{
|
||
|
currentTargetVector = new Vector2(Random.Range(0,2)*2-1, Random.Range(0,2)*2-1);
|
||
|
}
|
||
|
|
||
|
void Start()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void Update()
|
||
|
{
|
||
|
|
||
|
if(Input.GetKeyDown(KeyCode.Q))
|
||
|
{
|
||
|
RandomNeighborVector();
|
||
|
CalculateTargetPosition();
|
||
|
}
|
||
|
|
||
|
MoveToPosition();
|
||
|
|
||
|
}
|
||
|
|
||
|
void CalculateTargetPosition()
|
||
|
{
|
||
|
targetPosition = playerData.playerPosition + currentTargetVector * distance;
|
||
|
}
|
||
|
|
||
|
void RandomNeighborVector()
|
||
|
{
|
||
|
if(Random.Range(0,2) == 0)
|
||
|
{
|
||
|
currentTargetVector.x = currentTargetVector.x - (currentTargetVector.x * 2);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
currentTargetVector.y = currentTargetVector.y - (currentTargetVector.y * 2);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void MoveToPosition()
|
||
|
{
|
||
|
parentTransform.position = Vector2.SmoothDamp(transform.position, targetPosition, ref currentVelocity, moveSpeed * Time.deltaTime);
|
||
|
}
|
||
|
|
||
|
}
|