Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by Mufufado · Jan 31, 2019 at 07:49 PM · 2d2d-platformernot workingmethodcommunication

Script doesn't call method from other script

I have a problem, I want to make that when the player enters the trigger box of an enemy, it activates the attack animation of that enemy, and in a frame in the middle of the animation, the method "OnExplode" is executed, which is already defined in its own script. However, I have achieved that when the player approaches the animation plays, but the method of the other script is not executed. I have added an event in the animation (in an intermediate frame) that executes the method "Attack()".

Does anyone know what may be wrong? It's from a online course and I downloaded the teacher's files, but it has the code exactly like me and the same thing happens.

 private void OnTriggerEnter2D(Collider2D collision)
     {
         if(collision.gameObject.tag == "Player")
         {
             if (readyToAttack)
             {
                 var explode = collision.GetComponent<Explode>() as Explode;
                 explode.OnExplode();
             }
             else
             {
                 GetComponent<Animator>().SetInteger("AnimState", 1);
             }
         }
         
     }
 
     private void OnTriggerExit2D(Collider2D collision)
     {
         readyToAttack = false;
         GetComponent<Animator>().SetInteger("AnimState", 0);
     }
 
     void Attack()
     {
         readyToAttack = true;
     }
Comment
Add comment · Show 6
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
avatar image Hellium · Jan 31, 2019 at 09:29 PM 0
Share

Do you get any error in the console? Have you tried to use Debug.Log to check the value of readyToAttack and check if you enter the various conditions inside OnTriggerEnter2D ?

avatar image Mufufado Hellium · Jan 31, 2019 at 10:56 PM 0
Share

I haven't got any console errors, and I've tried it the Debug.Log and for some reason it doesn't enter on the part of the first if (readyToAttack). But when I put the Debug.Log in the method void Attack() it returns the true value of the readyToAttack = true.

avatar image xxmariofer Mufufado · Jan 31, 2019 at 11:00 PM 0
Share

maybe it is getting called the ontriggerexit just after your attack method is being called? i would suggest leaving a debug.log with the readyToAttack value and see when it is getting modified.

Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by whitegrimreaper_ · Jan 31, 2019 at 11:03 PM

Are you actually calling the Attack() function anywhere? It looks as though in

 if (readyToAttack) {
 ...
 }

the variable is most likely set to false, preventing the code from following through with the

 var explode = collision.GetComponent<Explode>() as Explode;
 explode.OnExplode();

Have you tried adding a Debug.Log() on the line above var = explode to see if the code is getting to that branch?

Comment
Add comment · Show 1 · Share
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
avatar image xxmariofer · Jan 31, 2019 at 11:04 PM 0
Share

" I have added an event in the animation (in an intermediate frame) that executes the method "Attack()"."

also he answered your second question in the comments.

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

273 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

Related Questions

How to detect if ObjectA is looking at ObjectB, and vice versa? 2 Answers

Trouble with directing launched projectiles in Unity 2D 0 Answers

Enemy Range 2D 1 Answer

OnCollisionEnter 2d not working 0 Answers

How can make it so only 1 object of type “Ability” can be selected at once? 0 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