做项目镜子屏幕需要左右翻转画面
直接挂摄像机上勾选一下即可(注意只反场景里的 不包括ui)
using UnityEngine;
[RequireComponent(typeof(Camera))]
[ExecuteInEditMode]
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;
}
}
直接使用
Matrix4x4 mat = camera.projectionMatrix;
mat *= Matrix4x4.Scale(new Vector3(-1, 1, 1));
camera.projectionMatrix = mat;
会造成镜像里画面出现问题
因为没有重置矩阵,摄像机画面不一定是正对着的
主要代码摘自
http://answers.unity3d.com/questions/20337/flipmirror-camera.html