using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(Hazard))] public class BaseEnemy : MonoBehaviour { public float speed = 2f; public float maxMoveDistance = 5f; protected float moveDistanceLeft; Rigidbody2D body; protected SpriteRenderer sr; protected float startMoveTime; public Transform rightCollisionPos; public Transform leftCollisionPos; public bool hasEnteredView = false; void Start() { body = GetComponent(); sr = GetComponent(); startMoveTime = Time.time + .4f; moveDistanceLeft = maxMoveDistance; } //move enemy in dir direction protected void Move(Vector2 dir) { moveDistanceLeft -= (dir * speed * Time.deltaTime).magnitude; body.transform.Translate(dir * speed * Time.deltaTime); } //check for collision in dir direction and start horizontal check in collisionPos protected bool CheckCollision(Vector2 dir, Vector3 collisionPos) { RaycastHit2D hitSide = Physics2D.Raycast(collisionPos, dir, .1f); RaycastHit2D hitDown = Physics2D.Raycast(collisionPos, -transform.up, .1f); if (hitDown.collider != null && hitSide.collider == null) { return true; } return false; } protected bool CheckCollisionCharge(Vector2 dir, Vector3 collisionPos) { RaycastHit2D hitSide = Physics2D.Raycast(collisionPos, dir, .1f); if (hitSide.collider == null) { return true; } return false; } }