Raycast даже не дает Debug.Log("it hit something
, в то время как Debug.DrawRay
делает линию между врагом и игроком.
Враг, который использует следующий скрипт, находится на слое «Игнорировать Raycast», а игрок, на которого он пытается попасть, находится на слое «По умолчанию».
void FixedUpdate() {
RaycastHit hit;
Vector2 diff = PlayerMovement.playerTransform.position - transform.position;
Ray raycastToPlayer = new Ray(transform.position, diff);
Debug.Log(raycastToPlayer);
Debug.DrawRay(transform.position, diff, Color.white, 0.01f, true);
if (Physics.Raycast(raycastToPlayer, out hit)) {
Debug.Log("it hit something");
if (hit.collider != null) {
Debug.Log(hit.collider.gameObject.name);
if (hit.transform.tag == "Player"){
float rotZ = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, rotZ);
}
}
}
}