KITASENJU DESIGN BLOG

memo, html, javascript, unity

rendertextureのgetPixelを高速に得る

めちゃくちゃ高速化したー! It's so much faster!

参考

light11.hatenadiary.com

コード

    public override Color32[] GetPixels()
    {

        var colors = _texture.GetPixels32();
        return colors;

    }

    void Update()
    {
        if(!IsInit) return;

        _Request();

    }

    private void _Request(){

        if(_isRequest)return;
        _isRequest=true;
        AsyncGPUReadback.Request(_renderTex, 0, _onRequest);
    }

    private void _onRequest(AsyncGPUReadbackRequest request){
        
        _isRequest=false;

        if (request.hasError)
        {
            Debug.LogError("Error.");
        }
        else
        {
            var data = request.GetData<Color32>();
            _texture.LoadRawTextureData(data);
            _texture.Apply();
        }

    }
"FOOTER"