我想了解Unity中组件的编程概念。我知道每个游戏对象(例如车辆)都可以有一个组件,并且每个组件都有属性,例如比例、位置等。该组件是独立的,可以附加到每个游戏对象。
但是,我不明白这背后的概念!如果我使用 IDE 并创建一个类 Gameobject 并实例化该类中的一个对象,我将如何通过编程来实现该对象具有组件。如果我更改该组件的属性,实例化对象的行为也会发生变化吗?
游戏对象是场景中的一个对象,可以代表角色、道具、灯光、摄像机等。它本质上是一个可以容纳组件的空容器。
组件是附加到游戏对象以赋予其功能和行为的脚本、碰撞器、渲染器和其他资产。
就我个人而言,我更喜欢用一个例子来解释幕后发生的事情:
public class GameObject
{
private List<Component> components = new List<Component>();
public void AddComponent(Component component)
{
components.Add(component);
}
public void Update()
{
foreach (var component in components)
{
component.Update();
}
}
}
public class Component
{
protected GameObject gameObject;
public Component(GameObject gameObject)
{
this.gameObject = gameObject;
}
public virtual void Update()
{
}
}