コード例 #1
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.name == "Player" && !monster.isDead)
     {
         monster.Attack();
     }
 }
コード例 #2
0
ファイル: AttackState.cs プロジェクト: Shiyingzhi/DarkGod
 public override void Act(MonsterController npc)
 {
     if (npc.isDie)
     {
         return;
     }
     npc.Attack();
 }
コード例 #3
0
ファイル: SO_AttackAction.cs プロジェクト: Surue/SpaceDwarfs
    void Attack(MonsterController controller)
    {
        Collider2D[] colliders;

        colliders = Physics2D.OverlapCircleAll(controller.transform.position, controller.stats.attackRange);

        foreach (Collider2D collider in colliders)
        {
            if (collider.tag == "Player")
            {
                RaycastHit2D hitPlayer = Physics2D.Raycast(controller.transform.position, collider.transform.position - controller.transform.position, Mathf.Infinity, ~(1 << LayerMask.NameToLayer("Monster")));
                if (hitPlayer.collider.tag == "Player")
                {
                    Debug.DrawRay(controller.transform.position, collider.transform.position - controller.transform.position, Color.green);

                    if (controller.CheckIfCountDownElapsed(controller.stats.attackRate))
                    {
                        controller.Attack(controller.stats.attackPoint);
                    }
                }
            }
        }
    }
コード例 #4
0
 public override bool Invoke()
 {
     //Debug.Log("Attack true");
     monController.Attack();
     return(true);
 }