Cocos Creator 让OpenGL View变透明

如果你想要让游戏和下层的元素一起显示,例如在视频或者Web上面显示游戏层,那么我们需要让GLView变透明才行

Android

    @Override
    public Cocos2dxGLSurfaceView onCreateView() {
        Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
        // TestCpp should create stencil buffer
//        glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
        glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 8); //修改GLSurfaceView参数,其中第四个参数为AlphaSize,这样修改以后View就变透明了
        glSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);

        SDKWrapper.getInstance().setGLSurfaceView(glSurfaceView, this);

        return glSurfaceView;
    }

iOS

void Application::onCreateView(PixelFormat& pixelformat, DepthFormat& depthFormat, int& multisamplingCount)
{
//    pixelformat = PixelFormat::RGB565;
    pixelformat = PixelFormat::RGBA8; //给View本身增加透明通道
    depthFormat = DepthFormat::DEPTH24_STENCIL8;

    multisamplingCount = 0;
}

项目里注意,这里只是修改了View本身,支持透明通道,但是如果渲染的时候背景色不透明,那还是没用,所以我们需要在游戏里修改Camera的默认背景色,把Alpha改成0


修改Camera的背景色

————————
想要学习Cocos的同学,欢迎关注我的零基础Cocos教程
https://ke.qq.com/course/313749

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容