在Unity中我们要访问上层对象,他有两个属性:transform.parent和transform.root。
不过它们是有区别的。
transform.parent属性返回的是对象的父级Transform组件,父级就是它的上一级。假如游戏对象没有父对象,那么返回null。
而transform.root属性返回的是对象的根级Transform组件,跟级就是整个场景中最顶层的那一级,它的父级为空。假如游戏对象没有父对象,该属性则返回自身的Tranform组件。
这两个属性都是只读的。
transform.parent比较常用,但是有时候也会用到transform.root,比如:
我们习惯性会在场景顶层新建一个空游戏对象,放置主控制脚本,作为管理器对象。假如我们要获取这个对象,那么我们就无需通过新建脚本对象赋值获取了,我们可以直接使用transform.root就能获取到该对象了。比如对象名为:Manage,那么我可以这样获取该对象:
Manager manager = transform.root.GetComponent<Manager>();
获取到该对象我们就可以做一些全局相关的事件了。