Damage Clone From Projectile Script
I am trying to create a mold-able script. The script is attached to the player's projectiles. The script should take the other object as an argument, find it's "HP" float and update it. Each enemy prefab has a script attached to it called "//Enemy Name//" + "Behavior", which contains their HP as a float. one section of my code snips "(Clone)" from the name of the object and adds "Behavior" to it in order to access the script attached to the object it collides with (Which I think is dope). but I am having trouble updating the PRIVATE variable "HP" in the clone's script. I have been reading all day and can't seem to wrap my head around the proper execution. Should HP be private? If I make it public will they all suddenly share health, or some craziness? I must be misunderstanding something. I have tried many things... Please let me know what to read in order to better understand, along with your short answer. Here is my code as it stands. (It's not complete, so please don't comment on the serialized prefab. I am just testing.)
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class ProjectileDetect : MonoBehaviour {
private Animator anim;
private GameObject Target;
[SerializeField]
private GameObject BloodPF;
private GameObject BloodClone;
private Component script;
private float hp;
void OnTriggerEnter2D (Collider2D other) {
if (other.gameObject.tag == "Enemy"){
Target = other.gameObject;
//Affector for health below
script = other.GetComponent((other.name as string + "Behavior").Replace("(Clone)", ""));
hp = script.GetComponent(HP);
hp -= 25;
Destroy(gameObject);
anim = other.gameObject.GetComponent<Animator> ();
anim.SetBool("Damage", true);
//Bloodsplash below
BloodClone = Instantiate(BloodPF, Target.transform.position, Target.transform.rotation) as GameObject;
}
}
}
Your answer
Follow this Question
Related Questions
Managing In-Game Variables of Different Data Types 1 Answer
how do I read a variable from another class c# 4 Answers
Double vs Float 1 Answer
Random.Range for player stats 0 Answers
One script says the variable is 0 but the other says -37 1 Answer