BoomingTech / Piccolo

Piccolo (formerly Pilot) – mini game engine for games104
MIT License
5.79k stars 1.8k forks source link

在同一个GO下添加多个同类component #410

Open rocketman123456 opened 1 year ago

rocketman123456 commented 1 year ago

在听完关于Lua Component的课程后,我尝试对同一个GO下挂载多个lua脚本,但是仅有的一个可以正常工作,是不是因为有这方面的限制?

rocketman123456 commented 1 year ago
    bool GObject::hasComponent(const std::string& compenent_type_name) const
    {
        // FIXME : cannot create two component of same type
        for (const auto& component : m_components)
        {
            if (component.getTypeName() == compenent_type_name)
                return true;
        }

        return false;
    }

是这个代码的问题,导致不能创建两个相同类型的component。不知道有什么设计方案避免这个问题。

liangzai12 commented 1 year ago

是的,目前只支持挂载一个同类component