Camera

Camera是一个设备,玩家通过它看世界。

屏幕空间点用像素定义,屏幕的左下为(0,0);右上是(PixelWidth,pixelHeight).Z的位置是以世界单位衡量的到相机的距离。

视口空间点是归一化的并相对于相机的。相机的左下为(0,0);右上是(1,1);Z的位置是以世界为单位衡量的到相机的距离。

世界空间点是以全局坐标定义的(例如:Transform.position)

Variables 变量
fieldOfView 相机的视野,以度为单位
nearClipPlane 近裁剪面的距离
farClipPlane 远裁剪面的距离
renderingPath 渲染路径
actualRenderingPath 实际使用的渲染路径(只读)
orthographicSize 在正交模式下相机的一半尺寸
orthographic 相机是正交的(true),是透视的(false)?
depth 相机在渲染顺序上的深度
aspect 长宽比(宽度除以高度)
cullingMask 这个用来选择性的渲染部分场景
backgroundColor 屏幕将被清理为这个颜色
rect 相继被渲染到屏幕规范化坐标中的位置
pixelRect 相机被渲染到屏幕像素中的位置
targetTexture 描述渲染纹理(仅Unity专业版)
pixelWidth 相机有多宽,以像素单位(只读)
pixelHeight 相机有多高,以像素单位(只读)
cameraToWorldMatrix 从相机空间到世界空间的变换矩阵(只读)
worldToCameraMatrix 从世界到相机空间的变换矩阵
projectionMatrix 设置自定义的投影矩阵
velocity 获取世界空间中相机的速度(只读)
clearFlags 相机如何清除背景
layerCullDistances 每层的消隐距离
depthTextureMode 相机生成怎样的一个深度纹理
Functions 函数
ResetWorldToCameraMatrix 在场景中让渲染位置反映相机的位置
ResetProjectionMatrix 让投影反映正常的相机参数
ResetAspect 恢复长宽比为屏幕的长宽比
WorldToScreenPoint 从世界空间到屏幕空间变换位置
WorldToViewportPoint 从世界空间到视窗空间的变换位置
ViewportToWorldPoint 从视窗空间到世界空间的变换位置
ScreenToWorldPoint 从屏幕空间到世界空间的变化位置
ScreenToViewportPoint 从屏幕空间到视窗空间的变换位置
ViewportToScreenPoint 从视口空间到屏幕空间的变换位置
ViewportPointToRay 返回从相机出发穿过视点的一个射线
ScreenPointToRay 返回一条射线从摄像机通过一个屏幕点
Render 手动渲染相机
RenderWithShader 用shader替代渲染相机
SetReplacementShader 使相机渲染用shader替换
ResetReplacementShader 从相机上移除shader替换
RenderToCubemap 从这个相机渲染到一个立方贴图
CopyFrom 使这个相机的设置与其他相机相同
Messages Sent 发送消息
OnPreCull OnPreCull在相机开始裁剪场景之前调用
OnPreRender OnPreRender在相机开始渲染场景之前调用
OnPostRender OnPostRender 在相机渲染场景之后调用
OnRenderImage OnRenderImage在所有渲染完成后被调用,来渲染图片的后期处理效果(仅限UnityPro)
OnRenderObject OnRenderObject 被用来渲染你自己的物体,使用或者其他函数
OnWillRenderObject 如果物体可见,每个相机都会调用OnWillRenderObject
Class Functions 类函数
main 第一个启用的被标记为“MainCanmera”的相机(只读)
current 当前用于渲染的相机,只用于低级的渲染控制(只读)
allCameras allCameras 所有相机
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraTest : MonoBehaviour {

    private Camera mainCamera;

    // Use this for initialization
    void Start () {
        //获得Camera组件的方式
        //mainCamera = GameObject.Find ("MainCamera").GetComponent<Camera> ();

        //第一个启用的被标记为“MainCanmera”的相机(只读)。前提是场景中必须有标记为mainCamera的摄像机
        mainCamera = Camera.main;
    }

    // Update is called once per frame
    void Update () {
        //检测鼠标在摄像机中经过的位置产生的射线是否与场景中某物体发生碰撞
        Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        bool isCollider = Physics.Raycast (ray, out hit);
        if (isCollider) {
            //根据射线的方向画一条射线,只能在Scene窗口查看
            Debug.DrawRay (ray.origin, ray.direction * 10, Color.yellow);
            Debug.Log (hit.collider);
        }
    }
}

results matching ""

    No results matching ""