using UnityEngine;
[RequireComponent(typeof(Camera))]
[ExecuteInEditMode]
public class MirrorCamera : MonoBehaviour
{
new Camera camera;
public bool Horizontal;
void Awake()
{
camera = GetComponent<Camera>();
}
void OnPreCull()
{
camera.ResetWorldToCameraMatrix();
camera.ResetProjectionMatrix();
Vector3 scale = new Vector3(Horizontal ? -1 : 1, 1, 1);
camera.projectionMatrix = camera.projectionMatrix * Matrix4x4.Scale(scale);
}
void OnPreRender()
{
GL.invertCulling = Horizontal;
}
void OnPostRender()
{
GL.invertCulling = false;
}
}
将代码挂在到需要实现镜面显示效果的摄像机物体上,并将Horizontal选为True即可。
本文介绍了一种在Unity中实现镜面显示效果的方法,通过自定义脚本MirrorCamera,可以轻松地为游戏场景中的摄像机添加镜像翻转功能。只需将此脚本挂载到目标摄像机上,并设置Horizontal参数为True,即可实现水平方向的镜像效果。
1185

被折叠的 条评论
为什么被折叠?



