c# - Don't know how to get enemy's health -
i have code , don't know why hit.collider.gameobject.getcomponent("health")
returning null
void shoot() { vector2 mouseposition = new vector2 (camera.main.screentoworldpoint (input.mouseposition).x, camera.main.screentoworldpoint (input.mouseposition).y); vector2 firepointposition = new vector2 (firepoint.position.x, firepoint.position.y); raycasthit2d nail = physics2d.raycast (firepointposition, mouseposition - firepointposition, bulletrange, whattohit); if (time.time >= timetospawneffect) { effect (); timetospawneffect = time.time + 1/effectspawnrate; } if (hit.collider != null) { if (hit.collider.name == "enemy") { debug.log(hit.collider.gameobject.getcomponent("health")); } //debug.log("we nail " + hit.collider.name + " , did " + harm + " damage"); } }
here enemy script
using unityengine; using system.collections; public class enemyai : monobehaviour { public float health = 100f; //... rest of code }
you need reference script attached enemy. utilize script manipulate health.
find gameobject.
gameobject g = hit.collider.gameobject;
get reference script.
enemyai e = g.getcomponent<enemyai>();
manipulate health.
e.health = 0f;
in 1 line if want badass.
hit.collider.gameobject.getcomponent<enemyai>().health = 0.0f;
bonus tip: health
should private
, enemyai
should have setter , getter variable.
c# unity3d
No comments:
Post a Comment