how would you access the Parent's parent or the Child's child?
For example your Hierarchy is set up as:
Level
Player
Graphics
Main Camera
Weapon
Dagger
Gun
and I wanted my Weapon to be able to access some variable from my level object's Singleton's script. How would I do that?
Also how would I access it the other way around if my level needs to access my Main Camera's "CutScene" Script?
Also say I want my Gun to access my player's Graphics's "ChangeColor" Script?
So mainly I want to know thoroughly how the parenting system works so I can take advantage of it's full potential.
The parent's parent is `transform.parent.parent`. Accessing "main camera" from "level" would be `transform.Find("Player/Main Camera")`.
Singleton s = transform.parent.parent.GetComponent("Singleton");
//OR transform.root.GetComponent("Singleton"); //if you know it will be the top-level object in the hierarchy always
s.DoSomething();
CutScene cs = GetComponentInChildren("CutScene");
cs.DoSomething();
ChangeColor cc = GetComponentInChildren("ChangeColor");
cc.DoSomething();
using root for the first level hierarchy or recursively reading the child could work too, simple (untested) example:
Transform[] transforms = Selection.GetTransforms(Selection.Deep);
foreach(Transform t in transforms)
if(t.hasChildren){
<blockquote>
<p>print("hello, I'm " + t + ", I have " + t.childCount + " children");</p>
</blockquote>
</blockquote>
<p>}</p>