Unity - 幕后组件

问题描述 投票:0回答:1

我想了解Unity中组件的编程概念。我知道每个游戏对象(例如车辆)都可以有一个组件,并且每个组件都有属性,例如比例、位置等。该组件是独立的,可以附加到每个游戏对象。

但是,我不明白这背后的概念!如果我使用 IDE 并创建一个类 Gameobject 并实例化该类中的一个对象,我将如何通过编程来实现该对象具有组件。如果我更改该组件的属性,实例化对象的行为也会发生变化吗?

c# unity-game-engine components
1个回答
0
投票

游戏对象:

游戏对象是场景中的一个对象,可以代表角色、道具、灯光、摄像机等。它本质上是一个可以容纳组件的空容器。

组件:

组件是附加到游戏对象以赋予其功能和行为的脚本、碰撞器、渲染器和其他资产。

示例:

就我个人而言,我更喜欢用一个例子来解释幕后发生的事情:

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()
    {

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.