30 lines
1.1 KiB
C#
30 lines
1.1 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
public class AutomatedPlayer : AutoControlledEntity
|
|
{
|
|
|
|
public Player player;
|
|
public float playerMinDistance;
|
|
|
|
private void FixedUpdate()
|
|
{
|
|
Vector2 direction = new Vector2(0, rb.linearVelocityY);
|
|
Entity target = player;
|
|
if (!closestEntity && Vector3.Distance(player.transform.position, transform.position) <= playerMinDistance)
|
|
{
|
|
rb.linearVelocity = direction; //repeated code sucks but it works in this case i guess
|
|
return; //do not bother running any more code lol you're already next to the player and no enemies nearby
|
|
}
|
|
if (closestEntity && Vector3.Distance(closestEntity.transform.position, transform.position) < maxTargettingRange)
|
|
{
|
|
target = closestEntity;
|
|
}
|
|
direction.x = (target.transform.position - transform.position).normalized.x * speed;
|
|
if ((target.transform.position.y - transform.position.y > maxHeightDifference || (DetectWalls() && Vector3.Distance(target.transform.position, transform.position) > minTargetJumpDistance)) && OnGround())
|
|
{
|
|
direction.y = jumpPower;
|
|
}
|
|
rb.linearVelocity = direction;
|
|
}
|
|
}
|