Quantcast
Channel: Questions in topic: "tagging"
Viewing all articles
Browse latest Browse all 120

How do I pickup multiples of the same item with the same tag?

$
0
0
Hello, I'm very new to C#. I know the answer to this question may be obvious for most, but I'm stuck at the moment. I wrote a "PlayerHealth/Damage Script". So far, it just has one type of damage, and 4 types of health items. (items are tagged) When I place one of each item in a row, everything works as expected. (Player picks up health OnTriggerEnter, & item destroys itself etc) The problem is, when I place multiple "copy's" of the Prefab throughout the scene, they basically "don't match up". (ex. entering a trigger of one item (ex. bread) could Destroy a different copy of the same item (ex. bread(2)) and so on. Here is my Script: using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class PlayerDamageScript : MonoBehaviour { int playerHealth = 100; int damage = 10; public AudioClip bite; public AudioClip drink; public AudioClip belch; public AudioClip ouch; public AudioClip dead; void Start () { print (playerHealth); playerHealth = 100; } void Update() { if (playerHealth <= 0) { Death (); } if (playerHealth >= 100) { playerHealth = 100; if (playerHealth > 100) { GetComponent ().clip = belch; GetComponent ().Play (); } } } //PLAYER HEALTH/DAMAGE TRIGGERS// //*****************************// void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Enemy") { playerHealth -= damage; print ("Enemy Hit You!" + playerHealth) ; GetComponent ().clip = ouch; GetComponent ().Play (); } if (other.gameObject.tag == "apple") { playerHealth += 10; print ("You ate an Apple + 10 Health =" + playerHealth); Destroy (GameObject.FindWithTag ("apple")); GetComponent ().clip = bite; GetComponent ().Play (); } if (other.gameObject.tag == ("bread")) { playerHealth += 25; print ("You ate Bread + 25 Health =" + playerHealth); Destroy (GameObject.FindWithTag ("bread")); GetComponent ().clip = bite; GetComponent ().Play (); } if (other.gameObject.tag == "cheese") { playerHealth += 50; print ("You ate Cheese + 50 Health =" + playerHealth); Destroy (GameObject.FindWithTag ("cheese")); GetComponent ().clip = bite; GetComponent ().Play (); } if (other.gameObject.tag == "potion") { playerHealth += 100; print ("You drank a healing Potion + 100 Health =" + playerHealth); Destroy (GameObject.FindWithTag ("potion")); GetComponent ().clip = drink; GetComponent ().Play (); } } public void Death() { SceneManager.LoadScene (8); } } So, how do I make multiple copy's of a prefab and pick up each one (correctly) by tag? Any help would be greatly appreciated! Thanks!

Viewing all articles
Browse latest Browse all 120

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>