This commit is contained in:
2023-02-01 22:53:34 +05:30
parent 63d359793b
commit 92ac8ad88a
4 changed files with 66 additions and 9 deletions

View File

@@ -67,7 +67,7 @@ public class Drawer : MonoBehaviour
}
for(int i= points.Count-1; i >0; i--)
{
points3.Add(points[i] + new Vector3(0,0.1f,0));
points3.Add(points[i] + new Vector3(0.05f,0.1f,0));
}
//edgeCollider2D.SetPoints(points3);
edgeCollider2D.SetPath(0, points3);

View File

@@ -5,10 +5,55 @@ using UnityEngine;
public class Enemy : MonoBehaviour
{
public float moveSpeed = 0.1f;
public bool canSeePlayer = false;
public float distanceThreshold = 0.1f;
public float dodgeTime = 0.2f;
float dodgeTimer = 0;
public LayerMask linecastLayer;
private void Awake()
{
dodgeTimer = dodgeTime;
}
Color debugColor = Color.white;
void FixedUpdate()
{
if (GameManager.Player == null) { return; }
RaycastHit2D hit = Physics2D.Linecast(transform.position, GameManager.Player.position, linecastLayer);
if (hit.collider == null) {
canSeePlayer = true;
} else if (hit.collider.transform == GameManager.Player.transform)
{
canSeePlayer = true;
}
else
{
canSeePlayer = false;
float distanceToBarrier = Vector2.Distance(transform.position, hit.point);
if (distanceToBarrier < distanceThreshold)
{
dodgeTimer = 0;
}
Debug.DrawLine(transform.position, hit.point, debugColor);
}
Vector3 direction = (GameManager.Player.position - new Vector3(0,0.5f,0) - transform.position).normalized;
if (dodgeTimer < dodgeTime)
{
dodgeTimer += Time.deltaTime;
if (dodgeTimer > dodgeTime/100f)
{
debugColor = Color.red;
transform.Translate(new Vector3(-direction.x, direction.y) * moveSpeed * 1.2f);
return;
}
}
transform.Translate(direction * moveSpeed);
debugColor = Color.white;
transform.Translate((GameManager.Player.position - transform.position).normalized * moveSpeed);
}
}