您的位置:首页 > 移动开发 > Unity3D

unity3d 镜像翻转画面脚本

2017-06-12 09:46 381 查看
做项目镜子屏幕需要左右翻转画面

直接挂摄像机上勾选一下即可(注意只反场景里的 不包括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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: