- Home /
How to access this variable?
In this part of my script, there is a variable called colliders. A ray is cast to find the colliders and it finds all of them in a certain radius.
Some colliders have different scripts in them, but each of those different scripts share a variable called SystemHealth. How can I access that variable even though some colliders don't have any scripts and some of the scripts have different names?
Another way to word the question: How can I find the variable SystemHealth inside of the colliders. Here is the important part of the script.
 function Explode() {
  
     var colliders : Collider[] = Physics.OverlapSphere (transform.position, radius);
         for (var collider : Collider in colliders) {
                 var hit : RaycastHit;
                 if (Physics.Linecast(transform.position, collider.transform.position, hit)) {
                     if (hit.collider == collider) {
                         if (hit.rigidbody)
                             hit.rigidbody.AddExplosionForce(power - (power / hit.distance), transform.position, radius, 3.0);
                 }
             }
         }
 }
Answer by KMKxJOEY1 · Mar 31, 2013 at 11:21 PM
 hit.collider.gameObject.GetComponent<SystemHealth>().fuction name here();
In js I think it's
 hit.collider.gameObject.GetComponent(SystemHealth).function name here();
Note that the script name is not SystemHealth. It's just a variable that may or may not be inside the colliders. I'll try it out but I think the javascript is wrong. $$anonymous$$aybe I know how to fix it.
Edit: Yeah I added in:
 print(hit.collider.gameObject.GetComponent(SystemHealth));
and it calls SystemHealth an unknown identifier.
oh lol then replace systemHealth with the script name
var health = hit.collider.gameObject.GetComponent(scriptname).SystemHealth;
Answer by whydoidoit · Mar 31, 2013 at 11:50 PM
They don't share the the variable - just because they have the same name - it's not the same variable. If you want to share a variable you need to have a script with the shared variable that the other scripts access using GetComponent
I know they don't share the value, but they share the name. None the less, how can I access it in colliders? I tried to do:
 print(hit.collider.gameObject.GetComponent(SystemHealth));
but that told me that SystemHealth is an unknown identifier.
Your answer
 
 
             Follow this Question
Related Questions
Variable Not Changing. 0 Answers
Should I create local copy of global variable? 3 Answers
How to make a GLOBAL variable in javascript (Unity) 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                