Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 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 Snowhouse · Apr 20, 2021 at 01:55 AM · enemydamagestarthealth

how do i damage the player on enemy start, Not collision

so i have this basic enemy script that works fine

public class Enemy : MonoBehaviour { public float health; public float damage;

 public GameObject deatheffect;

public void Update() {

     if (health <= 0) 
     { 
         Instantiate(deatheffect,transform.position,transform.rotation);
         Destroy(gameObject);
     }

 }

 void OnTriggerEnter(Collider hitInfo)
 {
   
         Player player = hitInfo.GetComponent<Player>();
         if (player != null)
         {
         player.health -= damage;
         health -= player.attackPower;
         }

 }

}

but i have a boss that instantiates an object for a health debuff and i dont want the debuff to use collision. i just want the player to lose health on the debuffs Start.

so how do i change the OnTriggerEnter to Start.ive tried this

public class testfox : MonoBehaviour {

 public float attackBuff;
 public float damage = 4;
 public GameObject player;


 void Start()
 {
    player = GameObject.Find("Player");
    player.health -= damage;
    Destroy(gameObject);
 }

},

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
0
Best Answer

Answer by HellsHand · Apr 20, 2021 at 11:14 AM

  public float attackBuff;
  public float damage = 4;
  public PlayerScript player;  //Declare variable for the players script
  void Start()
  {
     player = GameObject.Find("Player").GetComponent<PlayerScript>();  //Find the player and get it's script component
     player.health -= damage;  //Provided health is defined for the player this should do it
     Destroy(gameObject);
  }
Comment
Add comment · Show 2 · 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 hassanyawar · Apr 20, 2021 at 01:15 PM 0
Share

I would suggest to get player reference using built-in player tag. It will be less costly.

 player = GameObject.FindObjectWithTag("Player").GetComponent<PlayerScript>();
avatar image Snowhouse hassanyawar · Apr 20, 2021 at 04:48 PM 0
Share

This worked! thank you!

avatar image
0

Answer by lorenzfresh · Apr 20, 2021 at 06:11 PM

// PlayerScript

 public class PlayerController : MonoBehaviour{
 
 int health = 100;
    
  public void TaskDamage(int damage) {
         health -= damage;
         if (health <= 0) {
         // GameOver Screen
         }
     }
 }
 

Enemy Script

  public class EnemyAI : MonoBehaviour{
         
         int AttackDamage = 10;
         private PlayerController playerScript; // <-- the player script
     
       private void Awake() {
             playerScript = GameObject.Find("Player").GetComponent<PlayerController>();
     // The PlayerController script must be on the Game Object Player
         }
     
            private void Start() {
              AttackPlayer(AttackDamage);
             }
         
         private void AttackPlayer(int damage){
         playerScript.TaskDamage(damage)
              }
         }
     
 
 


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.

Follow this Question

Answers Answers and Comments

124 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

Related Questions

How to get Enemy to break wall between it and Player. 1 Answer

Enemy wont deal damage 0 Answers

(C#) Enemy health and take damage from bullets 1 Answer

How to have an NPC with multiple parts detect damage 1 Answer

Health below zero but shows negative numbers 1 Answer


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