或者 父对象.transform.find("子对象的名字").GetComponent<xx>()
Unity3d中GameObject对象可以包括其他子GameObject,并且本身包括多个Component.1.GameObject.Find("myObject") or FindGameObjectByTag will search the scene for an object called myObject.2. transform.Find("myObject") will only search the game objects children for an object called myObject.3.GetComponent用来获取组件。用法: Transform Find(String name)Transform FindChild(String name)1.查找名为name的(transform.gameObject)直接子物体并返回该子物体的Transform属性。不能是孙子物体或更低辈分的子物体。2.可以在name中使用字符'\' 遍历整个路径。其中路径的根必须是transform.gameObject的直接子物体,不能是孙子物体或更低辈分的子物体。这样就可以访问到以transform.gameObject为根的物体树,包括其子物体,孙子物体,曾孙物体。。。。若Cube物体有一个直接子物体Cube1,Cube1有一个直接子物体Cube2,我们就可以在Cube的脚本中使用transform.Find("Cube1/Cube2")或transform.FindChild("Cube1/Cube2") 这样就直接访问到了transform.gameObject的孙子物体Cube2。使用toggle实现单选效果
为toggle父物体添加:toggleGroup组件,勾选Allow Switch Off
为每一个toggle选择下的Group选择添加toggleGroup组件的物体(此为toggle父物体)
void Start () {
toggles = transform.GetComponentsInChildren<Toggle>()
for (int i = 0i <toggles.Lengthi++)
{
Toggle toggle = toggles[i]
toggle.onValueChanged.AddListener((bool value) =>OnToggleClick(toggle, value))
}
}
//功能:点击选中某一个toggle时播放相对应的视频
void OnToggleClick(Toggle toggle,bool isSwitch) {
if (isSwitch)
{
print(toggle.name)
//改变文本字体的布局--居中
toggle.transform.Find("LabelBGImage/Label").GetComponent<Text>().alignment= TextAnchor.MiddleCenter
PlayerPrefs.DeleteAll()
PlayerPrefs.SetString("CurrentVideo","xuting")
SceneManager.LoadScene("fengcaiqiang")
}
else {
//改变文本字体的布局--低部居中
toggle.transform.Find("LabelBGImage/Label").GetComponent<Text>().alignment = TextAnchor.LowerCenter
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)