Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by wai_wha · Oct 29, 2021 at 12:03 PM · 2dplayerattack

Need help with 2D Attack, attacking in every direction

I'm currently building my first makeshift game by watching tutorials. I have some prior programming knowledge due to my studies. I managed to do movement just fine but I am having problems with creating an Attack Function. Here is my code:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class PlayerAttack : MonoBehaviour
 {
     [SerializeField] public Animator animator;
 
     private Transform attackPoint;
     [SerializeField] public Transform normalAttackPoint;
     [SerializeField] public Transform lowerAttackPoint;
     [SerializeField] public Transform higherAttackPoint;
 
     [SerializeField] public LayerMask enemyLayers;
     
     [SerializeField] public float attackRange = 0.5f;
     [SerializeField] public int attackDamage = 40;
 
     void Start()
     {
         
     }
 
     void Update()
     {
         if (Input.GetMouseButtonDown(0))
         {
             Debug.Log("Attack Button Pressed");
 
             if (Input.GetButtonDown("Up"))
             {
                 Debug.Log("Attack Up Succesful");
                 //animator.SetBool("AttackUp", true)
                 attackPoint = higherAttackPoint;
             }
             else if (Input.GetButtonDown("Down"))
             {
                 Debug.Log("Attack Down Succesful");
                 //animator.SetBool("AttackDown", true)
                 attackPoint = higherAttackPoint;
             }
             else {
                 attackPoint = normalAttackPoint;
             }
 
             Debug.Log("Current Attack Point is: " + attackPoint.name);
             Attack(attackPoint);
         }
     }
 
     private void Attack(Transform attackPoint)
     {
         Debug.Log("Attack Function Initiated");
         //animator.SetTrigger("Attack");
         
         Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, 
                    attackRange, enemyLayers);
 
         foreach (Collider2D enemy in hitEnemies)
         {
             Debug.Log(enemy.name + " (was hit.)");
             enemy.GetComponent<Enemy>().TakeDamage(attackDamage);
         }
 
         //animator.SetBool("Down", false)
         //animator.SetBool("Up", false)
     }
 
     private void OnDrawGizmosSelected()
     {
         if (normalAttackPoint == null) return;
         Gizmos.DrawWireSphere(normalAttackPoint.position, attackRange);
 
         if (lowerAttackPoint == null) return;
         Gizmos.DrawWireSphere(lowerAttackPoint.position, attackRange);
 
         if (higherAttackPoint == null) return;
         Gizmos.DrawWireSphere(higherAttackPoint.position, attackRange);
     }
 }

Now for the Enemy Class:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class Enemy : MonoBehaviour
 {
     [SerializeField] public int maxHealth = 100;
     private int currentHealth;
 
     void Start()
     {
         currentHealth = maxHealth;    
     }
 
     public void TakeDamage(int damage) 
     {
         currentHealth -= damage;
 
         if (currentHealth <= 0) Die();
     }
 
     private void Die()
     {
         Debug.Log("Enemy died!");
 
         //Death Animation
 
         //Disable Enemy
     }
 }

I created 2 Axes in the InputManager called "Up" and "Down" which use "w" and "s" respectively in both negative and positive button fields.

The attackpoints are filled in the Player Inspector with Empty Objects at the right positions.

When Attacking the Logs: "Attack Button Pressed" "Current Attack Point is: Attack Point Normal" "Attack Function Initiated"

The problem is -> i always get "Attack Point Normal" even when pressing "w" for up or "s" for down Can someone tell my why this hapens and how i can fix it?

Apreciate it ifg you took time to look at this mess ^^

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

316 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

2D Sidescroller Issues Please help. 1 Answer

Make Player Move Slow Over Grass 1 Answer

Why Zombie clones dont take Player's HP? 0 Answers

How do I stop playing my jump animation? 0 Answers

In a script that checks an object's assigned number, how can I check the highest numbered object. 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges