Enemies
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user