• 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 JohnnyMccrum · Apr 29, 2016 at 06:27 AM · enemyhealthbar

More than one enemy?

I have a wolf, when I damage that wolf, it's health ticks down by 20, when I kill that wolf, the wolf despawns -- it works.

However, if i spawn a second wolf, then I kill the first wolf, the second wolf will crash my game, because the instance of the health object no longer exists.

How do I resolve this?

Thanks.

Comment
Add comment · Show 1
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 Whiteleaf · Apr 29, 2016 at 07:23 AM 0
Share

i don't understand what's happening, can you post your code for your wolf and the health manager?

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Vallar · Apr 29, 2016 at 08:16 AM

Hello,

Let me see if Understand correctly:

You have Wolf1 with HPobject and Wolf2 with HPobject, once you kill Wolf1, and error comes up and the game crashes that the Wolf2 object has no HPobject because the object no longer exists?

If I recall correctly I had a similar issue when I assigned in inspector the object (HPobject) to a variable using a prefab. The solution is to reference the HPobject from code.

So for example, put the HPobject as a child of the Wolf1 and same for Wolf2 then use something like:

GameObject child = transform.GetChild[0];

then do whatever to the variable child.

Hope that helps.

Comment
Add comment · 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
0

Answer by Kamil1064 · Apr 29, 2016 at 08:40 AM

Hi @JohnnyMccrum, you probably reduce health on prefab or just in in script which cause problem because you decrease health on global variavle, ie:

 // in Wolf script
 public static float wolfHealth;
 if(wolfHealth <= 0)
 //kill
 // in player script
 Wolf.wolfHealth -= 10;

That will decrease health for all wolfs, and if it's 0 it's killing wolf, if you instantiate wolf with 0 health and it will kill inmidiately so here is problem. Use something like that:

 // in Enemy script
 public float health;
 
 public void TakeDamage(float damage)
 {
 health = health - damage;
 if(health <= 0)
 // kill
 }


 // in Sword script
 public float swordDamage;
 
 void OnCollisionEnter(Collision col)
 {
 if(col.tag == "Enemy")
 col.gameObject.GetComponent<Enemy>().TakeDamage(swordDamage);
 }
 //you may check first if gameObjcet have got script "Enemy" but if tag is Enemy so let's say it will have that script





Comment
Add comment · 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

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Enemy Healthbar 1 Answer

My healtbar is not change when i look another enemy 0 Answers

Best way to make a health par over enemies 2 Answers

Enemy HealthBar Problems 2 Answers

[help] enemy Health Bar decrease at the same time 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