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;
}
}