Hazel游戏引擎(087)Drawing组件UI

文中若有代码、术语等错误,欢迎指正

文章目录

前言

  • 此节目的

    点击实体,在属性面板里显示这个实体的spriterenderer组件的属性,应包括颜色、texture、shader什么的(纹理),但目前先只显示颜色

  • 如何实现

    同86 85节,只需判定是否有这个组件,然后传入ImGui的Api中

代码

// 实体transform组件
if (entity.HasComponent<SpriteRendererComponent>()) {
    
    
    if (ImGui::TreeNodeEx((void*)typeid(SpriteRendererComponent).hash_code(), ImGuiTreeNodeFlags_DefaultOpen, "Sprite Renderer")) {
    
    
        auto& src = entity.GetComponent<SpriteRendererComponent>();
        ImGui::ColorEdit4("Color", glm::value_ptr(src.Color));
        // 展开树节点
        ImGui::TreePop();
    }
}

混合效果

  • 前提

    绿色的先渲染、红色的后渲染

  • 当两个的z一样,没有混合的效果

  • 当红色z=-0.5, 绿色z=0,有混合效果

    红色在绿色后面,且红色渲染,所以会混合

  • 当红色z=0,绿色z=-0.5,没有混合效果

    红色在绿色前面,且红色后渲染,所以不会混合

猜你喜欢

转载自blog.csdn.net/qq_34060370/article/details/132241205