Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 rhysjura · Nov 21, 2013 at 07:35 PM · collidebumphealth

Health UI, how to make player loose health

I have a script here for a player health system, i am struggling to figure out how to make it that if the player is touched by "enemy" they loose one health. Thanks

using UnityEngine; using System.Collections;

public class HealthSystem : MonoBehaviour { public int maxHealth = 3; public int currHealth = 3;

 public float healthBarLength; 
 
 void Start ()
 {
     healthBarLength = Screen.width / 2;    
 }
 
 void Update ()
 {
     AddjustCurrentHealth(0);         
 }
 
 void OnGUI() 
 {
     GUI.Box(new Rect(10, 10, healthBarLength, 20), currHealth + "/" + maxHealth); 
 }        

 public void AddjustCurrentHealth(int adj) 
 {
     currHealth += adj;
     
     if(currHealth > maxHealth)
         currHealth = maxHealth;
     
     
     if(currHealth < 0)
         currHealth = 0;
     
     
     if(maxHealth < 1)
         maxHealth = 1;
     
     
     
     healthBarLength = (Screen.width / 2) * (currHealth / (float)maxHealth);
 }
 
 
 
 
 
 

}

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

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by bilo-lwabona · Nov 21, 2013 at 08:26 PM

You could use the OnCollisionEnter function. Here is a discussion of someone trying to do something similar. In the function definition, I suggest you check the tag of the colliding gameObject and only subtract health if where applicable (i.e. player vs enemy, but not player vs wall).

If you attach the script to the player object, you could also increase the player's health when they walk over a health pack, as another example of this function's usage.

Hope this helps!

Cheers

Bilo

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 rhysjura · Nov 22, 2013 at 12:23 AM

Couldn't get much from that.

I tried this but nothing happened when they collided

void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "EnemyBall") { currHealth = currHealth - 1;

     }    
 
 }
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 bilo-lwabona · Dec 27, 2013 at 08:03 AM 0
Share

OnTriggerEnter will never be triggered when objects collide. This function is only useful when you tick the isTrigger property on a gameobject's collider. When this is the case, you won't be able to collide with the object, but can walk through it. It is used more for something like loading a new scene when one walks through a door, playing a sound when one enters a room, spawning enemies when one enters a certain area etc.

You did not use OnCollisionEnter ...

I think it would be a good idea to read the documentation of these 2 functions, which I have provided links for.

Cheers

Bilo

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

18 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

Related Questions

Player Health 3 Answers

How to make health go down when objects collide 1 Answer

Die on collision doesnt work 2 Answers

how to make a player die on collision 2 Answers

Need help with health script 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