float SeePlayer() { if (fov != null) { var lookDir = new Vector2( Mathf.Cos(Mathf.Deg2Rad * (fov.transform.rotation.eulerAngles.z + fovRotOffset)), Mathf.Sin(Mathf.Deg2Rad * (fov.transform.rotation.eulerAngles.z + fovRotOffset))); Debug.DrawRay(fov.transform.position, lookDir.normalized * fov.pointLightOuterRadius * 0.85f); RaycastHit2D hit = Physics2D.Raycast(fov.transform.position, lookDir.normalized, fov.pointLightOuterRadius * 0.85f, LayerMask.GetMask("Player", "Ground")); // If it hits something... if (hit.collider != null && hit.collider.gameObject.CompareTag("Player") && activity != EnemyState.DISTRACTED) { activity = EnemyState.WATCHING_PALYER; lastPhit = hit.collider.gameObject.GetComponent <OthersFearPlayer>(); lastPhit.scaredOf = this; if (bullyText) { bullyText.gameObject.SetActive(true); } } else { if (bullyText) { bullyText.gameObject.SetActive(false); } if (lastPhit != null) { lastPhit.scaredOf = null; lastPhit = null; } } return(hit.distance / fov.pointLightOuterRadius); } return(0); }
public void Distracted(bool is_distracted) { if (is_distracted) { activity = EnemyState.DISTRACTED; fov.color = Color.white; if (lastPhit != null) { lastPhit.scaredOf = null; lastPhit = null; } } else { activity = EnemyState.PATROLLING; fov.color = Color.red; } }