Unity摄像头镜面转换

来源:互联网 发布:草履虫软件下载 编辑:程序博客网 时间:2024/04/30 10:55

Unity中有时候需要实现水平翻转的镜像效果,在一篇帖子中看到的可以直接使用的代码,找不到链接了,这里记录下。

使用方法就是把以下脚本挂在相机上,勾选是否需要水平翻转的值就可以了。

public class MirrorFlipCamera : MonoBehaviour
{
    new Camera camera;
    public bool flipHorizontal;
    void Awake()
    {
        camera = GetComponent<Camera>();
    }
    void OnPreCull()
    {
        camera.ResetWorldToCameraMatrix();
        camera.ResetProjectionMatrix();
        Vector3 scale = new Vector3(flipHorizontal ? -1 : 1, 1, 1);
        camera.projectionMatrix = camera.projectionMatrix * Matrix4x4.Scale(scale);
    }
    void OnPreRender()
    {
        GL.invertCulling = flipHorizontal;
    }


    void OnPostRender()
    {
        GL.invertCulling = false;
    }
}

原创粉丝点击