UNITY 5.2 Camera类

Camera 是用于显示显示游戏中的世界的,显示范围为视锥体内。
屏幕中的点用像素定义,左下角为(0, 0),右上角为(pixelWidth,pixelHeight)。Z坐标使用世界坐标系中的单位。
视口中的点用相对于 Camera 单位化的向量。显示范围左下角为(0,0),右上角为(1,1)。Z坐标使用世界坐标系中的单位。
世界中的点是一个全局的坐标系。

委托:

public delegate void CameraCallback(Camera cam);
说明:参数为 Camera 的委托。
public static Camera.CameraCallback onPostRender;
说明:当某个场景被熏染完成后,所有在当前场景下的对象都能接受该事件。
public static Camera.CameraCallback onPreCull;
说明:当某个场景在被选择哪些对象是可见的时候调用,所有在当前场景下的对象都能接受该事件。
public static Camera.CameraCallback onPreRender;
说明:当某个场景正在被渲染的时候,所有在当前场景下的对象都能接受该事件。

静态变量:

public static Camera[] allCameras { get; }
说明:返回当前可用的所有 Camera 对象。
public static int allCamerasCount { get; }
说明:返回当前所有的 Camera 对象。
public static Camera current { get; }
说明:返回当前渲染的 Camera 对象。
public static Camera main { get; }
说明:返回第一个可用的以 "MainCamera" 为 TAG 的摄像机。

静态方法:

public static int GetAllCameras(Camera[] cameras);
说明:返回当前所有的摄像机 cameras 和摄像机数量。cameras的大小必须大于摄像机数量。

变量:

public RenderingPath actualRenderingPath { get; }
说明:实际的渲染路径。
public float aspect { get; set; }
说明:纵横比,默认为屏幕纵横比,如果修改过则可以使用 camera.ResetAspect() 恢复默认。
public Color backgroundColor { get; set; }
说明:屏幕清除时显示的颜色。仅当 clearFlags 设置为 CameraClearFlags.SolidColor 或者 CameraClearFlags.Skybox(但没有设置) 时才会显示。
public Matrix4x4 cameraToWorldMatrix { get; }
说明:将 Camera 空间转换到 世界空间的矩阵。用于计算 Camera 在世界坐标系中的坐标。前为 Z 负方向,UNITY前为 正方向。
public CameraType cameraType { get; set; }
说明:标识当前 Camera 类型。
public CameraClearFlags clearFlags { get; set; }
说明:Camera 当前的清除标志。重绘时,背景显示。
public bool clearStencilAfterLightingPass { get; set; }
说明:是否在延迟光通过后清楚模版缓冲区。
public int commandBufferCount { get; }
说明:当前 Camera 的命令缓冲区大小。
public int cullingMask { get; set; }
说明:设置 Camera 当前渲染场景中某些选择的标志对象。
public float depth { get; set; }
说明:设置 Camera 渲染顺序。值小则先渲染,值高则覆盖后渲染。
public DepthTextureMode depthTextureMode { get; set; }
说明:Camera 如何生成深度纹理。
public int eventMask { get; set; }
说明:设置 Camera 能触发时间的层级。
public float farClipPlane { get; set; }
说明:视锥体远截面的距离。
public float nearClipPlane { get; set; }
说明:视锥体近界面的距离。
public float fieldOfView { get; set; }
说明:当 Camera 为透视时,视野范围的角度。正交则忽略。
public bool hdr { get; set; }
说明:是否 Camera 使用HDR(高动态范围图像)渲染。
public float[] layerCullDistances { get; set; }
说明:每个 Layer 的最大选择渲染距离,该距离该不大于 Camera 的裁切面距离。
public bool layerCullSpherical { get; set; }
说明:设置 Layer 如何选择渲染。默认为正常,设置为 TRUE 时,用球体。
public OpaqueSortMode opaqueSortMode { get; set; }
说明:不透明物体排序模式。默认为从前往后。
public bool orthographic { get; set; }
说明:设置 Camera 为正交或者透视。
public float orthographicSize { get; set; }
说明:视口垂直方向大小的一般。水平大小根据 aspect ratio 计算。若不为正交模式则参数无效。
public Rect pixelRect { get; set; }
说明:Camera 渲染在屏幕上的大小,像素。
public int pixelHeight { get; }
说明:Camera 在屏幕上的高。
public int pixelWidth { get; }
说明:Camera 在屏幕上的宽。
public Matrix4x4 projectionMatrix { get; set; }
说明:自动一的投影矩阵。
public Rect rect { get; set; }
说明:Camera 在屏幕上渲染在单位坐标系中。左下角为 zero 右上角为 one
public RenderingPath renderingPath { get; set; }
说明:渲染路径。
public float stereoConvergence { get; set; }
说明:虚拟眼睛聚合为一点的距离。
public bool stereoEnabled { get; }
说明:是否 Camera 为立体渲染。
public bool stereoMirrorMode { get; set; }
说明:只渲染一次,渲染结果用于两只眼睛。
public float stereoSeparation { get; set; }
说明:两只虚拟眼睛之间的距离
public int targetDisplay { get; set; }
说明:设置 Camera 显示目标。
public RenderTexture targetTexture { get; set; }
说明:目的渲染纹理。默认渲染到显示器,有些时候渲染到一个纹理中。创建一个 RenderTexture 并设置它。
public TransparencySortMode transparencySortMode { get; set; }
说明:透明物体的排序模式。透视顺序为物体到摄像机距离,正交则根据视口的方向。
public bool useOcclusionCulling { get; set; }
说明:Camera 是否剔除选择渲染。
public Vector3 velocity { get; }
说明:Camera 每秒的运动速度。
public void ResetWorldToCameraMatrix();
说明:将世界坐标系转换为 Camera 坐标系的矩阵。前为 Z 负方向,UNITY前为 正方向。

公共函数:

public void AddCommandBuffer(CameraEvent evt, CommandBuffer buffer);
说明:添加命令缓存到 Camera 事件中,当渲染的时候调用。
public Matrix4x4 CalculateObliqueMatrix(Vector4 clipPlane);
说明:返回一个指定的 clipPlane 投影矩阵。
public void CopyFrom(Camera other);
说明:赋值另外一个 Camera 的所有参数。
public CommandBuffer[] GetCommandBuffers(CameraEvent evt);
说明:获取所有的命令缓冲区。
public void RemoveAllCommandBuffers();
说明:移除 当前 Camera 的所有命令缓冲区。
public void RemoveCommandBuffer(CameraEvent evt, CommandBuffer buffer);
说明:指定移除一个命令缓冲区。
public void RemoveCommandBuffers(CameraEvent evt);
说明:指定移除 evt 中的所有命令缓冲区。
public void Render();
说明:手动执行渲染。

public bool RenderToCubemap(Cubemap cubemap);
public bool RenderToCubemap(RenderTexture cubemap);
public bool RenderToCubemap(Cubemap cubemap, int faceMask);
public bool RenderToCubemap(RenderTexture cubemap, int faceMask);

public void RenderWithShader(Shader shader, string replacementTag);
说明:使用着色器替换相机渲染,不会发送消息到脚本,图片过滤器也不会被渲染。
public void ResetAspect();
说明:重置纵横比。
public void ResetProjectionMatrix();
说明:重置投影矩阵。
public void ResetReplacementShader();
说明:移除着色器。
public void ResetWorldToCameraMatrix();
说明:世界坐标到相机的转换矩阵。
public Ray ScreenPointToRay(Vector3 position);
说明:返回摄像机和屏幕上一个点产生的射线。position屏幕坐标。
public Vector3 ScreenToViewportPoint(Vector3 position);
说明:将屏幕坐标转换为视口坐标。屏幕坐标为像素,视口坐标为单位坐标系。
public Vector3 ScreenToWorldPoint(Vector3 position);
说明:将屏幕坐标转换为世界坐标。position 中 Z 为世界坐标系中相对于摄像机的值。
public void SetReplacementShader(Shader shader, string replacementTag);
说明:设置 Camera 渲染使用着色器 shader。
public void SetTargetBuffers(RenderBuffer colorBuffer, RenderBuffer depthBuffer);
public void SetTargetBuffers(RenderBuffer[] colorBuffer, RenderBuffer depthBuffer);
说明:设置 Camera 渲染到指定缓存中的一个或多个 RenderTextures 中。
public Ray ViewportPointToRay(Vector3 position);
说明:返回一条射线从 Camera 开始,通过视口中的点, position为视口坐标。
public Vector3 ViewportToScreenPoint(Vector3 position);
说明:将视口坐标转换为屏幕坐标。
public Vector3 ViewportToWorldPoint(Vector3 position);
说明:将视口坐标转换为世界坐标。position 中 Z 为世界坐标系中相对于摄像机的值。
public Vector3 WorldToScreenPoint(Vector3 position);
说明:将世界坐标转换为屏幕坐标。
public Vector3 WorldToViewportPoint(Vector3 position);
说明:将世界坐标转换为视口坐标。

你可能感兴趣的:(UNITY)