- Home /
Trying to make it so when the enemy collides with the player, the enemy dies, and the player is damaged.
I'm trying to make it so so when the enemy touches the player, the player gets hurt, and the enemy dies. But the player in this case is a plant (theres a player which is guarding plants from mosquitos, and if the plant gets hit, the enemy dies, and the plant gets damaged.) I dont quite understand 0nTriggerEnter2D, and I haven't found any tutorials that helped. I don't fully want you to write the code for me, just help me understand it better. Heres my code. public float health = 2f;
void PlantDeath()
{
Destroy()
}
void OnTriggerEnter2D(Collider2D col)
{
// if collider is enemy, subtracts 1 hp
if (other.gameObject.tag == ("Enemy"))
{
health -= 1f;
// when hit, changes color
SpriteRenderer sr;
sr = gameObject.GetComponent<SpriteRenderer>() as SpriteRenderer;
sr.color = new Color(243, 134, 1);
other.GameObject.health -= 5000;
if (health <= 0)
{
PlantDeath()
}
}
}
}
Answer by markythemurloc · Jun 26, 2020 at 10:59 PM
Hey! In line 18 lies your problem.
If you're trying to decrease health from a certain object, you need to access the script where the health parameter lies and decrease it from there.
Just as you did with changing colors- you accessed the SpriteRenderer component inside the current gameobject, then accessed the color parameter and then changed it.
Writing other.GameObject.health -= 5000; is equivalent to if you wrote gameobject.color = new color... in order to change your gameobject's color.
So if we want to decrease health from the enemy,
1. The health variable needs to be public (or private with a get and set). So make sure its declared as a public variable in the enemy health script.
2. Get the script which contains the enemy health, access the health variable and decrease its value: other.GameObject.GetComponent< EnemyHealthScript>().health -= 5000f;
Your answer
Follow this Question
Related Questions
2D SpriteRenderer not becoming disabled in Build but will work in Editor 0 Answers
Collider not working... 0 Answers
OnTriggerEnter2D called twice - doing UFO tutorial 1 Answer
Destroying a gameobject is not working. I tried triggering the colliders but an error comes out. 1 Answer
OnTriggerEnter2D & OnCollisionEnter2D Not Responding 1 Answer