用一句话概括就是:游戏对象是操作对象,一个场景下可以有很多个游戏对象,组件赋予游戏对象功能。脚本挂载在对象上变成一个组件实现功能(不挂载在对象上的脚本是没用的),功能实现就是一个类的实例化,这个类就写在了脚本中(脚本可能是用户自定义可能是系统集成)。
要明确的:不是所有C#脚本都是组件,但组件一定是C#脚本。这句话的原因是只有继承MonoBehaviour类下的脚本才能作为组件。
Unity中的组件分为两类
1)系统组件:Unity本身提供的,如Transform等等
2)用户自定义组件:用户写的脚本
Gameobject gameobject 是挂载当前脚本的对象
生命周期问题:
场景运行状态下,组件的生命周期受限于加载她的游戏对象的生命周期,游戏对象销毁时,挂载其上的组件生命周期也结束。
销毁游戏对象代码:
Destroy(player); // 立即销毁
Destroy(player, 3); // 3s后销毁
游戏对象没有结束,可以通过控制组件激活状态来激发组件功能,Player为组件类名
GetComponent<Player>().enabled = true; // 启用
GetComponent<Player>().enabled = false; // 禁用
因作者水平优先,如有错误之处,请在下方评论区指正,谢谢!