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 /
This post has been wikified, any user with enough reputation can edit it.
avatar image
0
Question by Conchness · Nov 25, 2012 at 10:38 PM · enemykillexperiencegainhealth

If Enemy Health (< 10) then Exp (+10)?

Hey I'm working with a Experience script and basically I want the player to gain 10xp when the enemy's HP drops below 10. I have Enemy Health attached to the Enemy and Experience attached to the Player. I've tried using Get.Component commands but I've just confused myself xP

Here is the Experience script in C#

 using UnityEngine;
 using System.Collections;
 using System;
 
  public class Experience : MonoBehaviour {
 
 public Transform myTransform;          
 public int maxExp;                      
 public int expToLevel = 0;              
 public int curExp;                      
 public int realExp;                    
 public int maxLevel = 99;              
 public int curLevel = 1;                
 
     private string displayLevel;           
     public bool changeLevel = true;                         
     private Rect windowRect = new Rect (20, Screen.height / 2, 210, 125);   
     public bool experienceBarEnabled = true;               
     public float experienceBarLenght;                       
     
 void Start () {
 
 GameObject go = GameObject.FindGameObjectWithTag("Player");
 myTransform = go.transform;     
 }   
 
 void OnGUI() {
  
 windowRect = GUI.Window (2, windowRect, LevelWdw2Function, "Character Level");
 
 if (experienceBarEnabled == true) {
 GUI.Box(new Rect(20, Screen.height - 40, experienceBarLenght , 20), curExp + "/" + maxExp);
 }
 }
     void LevelWdw2Function (int windowID) {
 
 GUI.Box(new Rect(5, 20, 200, 100), displayLevel);   
 GUI.DragWindow();}
 
 void Update () {
 
 displayLevel =  "Level: " + curLevel + 
 "\n Exp To Level: " + expToLevel +
 "\n Current Exp: " + curExp +
 "\n Exp Needed: " + realExp;
 
 levelModifier();
 experienceBarLenght = (Screen.width - 40) * (curExp / (float)expToLevel);   
 }
     
 public void levelModifier() {
 if(changeLevel){
 for(int i=0; i < curLevel; i++) {
 expToLevel = expToLevel + ((curLevel + 1) * 10) - (curLevel -1) * 10;
 changeLevel= false;        
 }
 }
 
 realExp = expToLevel - curExp;
 maxExp = expToLevel;
 .
 if(curExp >= expToLevel && curLevel< maxLevel ) {
 curLevel++;            
 changeLevel = true;     
 }
 if(curExp > maxExp){
 curExp = maxExp;
 }
 if(curLevel > maxLevel){
 curLevel = maxLevel;
 }
 if(curLevel < 1) {
 curLevel = 1;
         }
     }
 }

And this is the Enemy Health script in C#

 using UnityEngine;
 using System.Collections;
 
 public class EnemyHealth : MonoBehaviour {
     public int maxHealth = 100;
     public int curHealth = 100;
     public bool ShowHits = false;
     
     public float healthBarLength;
     
     // Use this for initialization
     void Start () {
         healthBarLength = Screen.width / 2;
     }
     
     // Update is called once per frame
     void Update () {
         AdjustCurrentHealth(0);
 
     }
     
     void OnGUI() {
         GUI.Box(new Rect(10, 40, healthBarLength, 20), curHealth + "/" + maxHealth);
         GUI.Label(new Rect((Screen.width / 2) + 10, 40, healthBarLength, 20), "Enemy");
     }
     
     public void AdjustCurrentHealth(int adj) {
         curHealth += adj;
         
         if(curHealth < 0)
             curHealth = 0;
         
         if(curHealth > maxHealth)
             curHealth = maxHealth;
         
         if (maxHealth < 1)
             maxHealth = 1;
         
         if (curHealth < 10)
         {
             Destroy (gameObject);
         }
         
         healthBarLength = (Screen.width / 2) * (curHealth / (float)maxHealth);
     }
     
 }

Thanks in advance for any help and or tips :)

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

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by laradov · Nov 26, 2012 at 11:32 AM

First, make curExp static:

        public static int curExp;

Then in Enemy Script:

        if (curHealth < 10)
        {
          Destroy (gameObject);
          Experience.curExp += 10;
        }
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 Conchness · Nov 26, 2012 at 12:34 PM 0
Share

Such a simple remedy to such a headache xD. Thanks a ton, you have been a great help and my understanding of C# has vastly improved! Thanks again :)

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

11 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

Related Questions

unity 3d enemy that shoots at you and gets killed 5 Answers

How to create a Expierence system for every kill 3 Answers

Need help for programming the killing of an enemy 1 Answer

How to create an NPC enemy which can take damage and be killed when its energy or health reaches zero? 2 Answers

How to create Enemy Health Bar ? 4 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