Esempio n. 1
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.tag.Equals("Player"))
     {
         OnPlayerDetected?.Invoke();
     }
 }
Esempio n. 2
0
    public void Update()
    {
        float playerDistance = Vector3.Distance(Target.position, transform.position);

        if (playerDistance > Distance)
        {
            return;
        }

        Vector3 directionToPlayer = Target.position - transform.position;

        if (Target.GetComponent <SpriteRenderer>().enabled == false)
        {
            return;
        }

        float angle = Vector3.Angle(transform.right, directionToPlayer.normalized);

        if (angle > Angle)
        {
            return;
        }

        int layerMask = 1 << LayerMask.NameToLayer("Wall");


        RaycastHit2D raycastHit = Physics2D.Raycast(transform.position, Target.position - transform.position, Vector2.Distance(Target.position, transform.position), layerMask);


        if (raycastHit.collider == null)
        {
            if (StaticOnPlayerDetected != null)
            {
                StaticOnPlayerDetected.Invoke(this, Target);
            }

            if (OnPlayerDetected != null)
            {
                OnPlayerDetected.Invoke(Target);
            }
        }
    }
 void PlayerDetected(PlayerDetectedEventArgs e) => OnPlayerDetected?.Invoke(this, e);
 public void PlayerDetected(PlayerController player)
 {
     OnPlayerDetected?.Invoke(this, player.transform.position);
 }
Esempio n. 5
0
 //Start spawn of enemies
 protected virtual void Reaction()
 {
     OnPlayerDetected?.Invoke(this, EventArgs.Empty);
 }