Camera

Clear Flags

skybox 天空盒渲染 - 3D游戏

solid color 纯色填充 - 2D游戏

Depth only - 只画该层,背景透明

Don't Clear - 不移除,覆盖渲染

Culling Mask

选择性渲染部分层级 可以只渲染指定对应层级的对象

Projection

Perspective - 透视模式 - 3D游戏

Orthographic - 正交模式 - 2D游戏

Clipping Planes

裁剪平面距离 - 渲染区间

Depth

渲染顺序上的深度,深度越小越先渲染,深度越大越后渲染,后面被渲染的内容会覆盖先渲染的内容

如果要多个摄像机叠加渲染往往会选择Depth Only

Target Texture

可以把摄像机画面渲染到一张图上 - 用于制作小地图

在Project右键创建Render Texture

Occlusion Culling

是否启用剔除遮挡

被挡住的模型不会被渲染


public class Lesson14 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        #region 重要静态成员
        //获取主摄像机
        //如果想通过这种方式获取摄像机,那么场景上必须要有一个tag为MainCamera的摄像机
        print(Camera.main.name);
        //获取摄像机数量
        print(Camera.allCamerasCount);
        //得到所有摄像机
        Camera[] allCam = Camera.allCameras;

        //渲染相关委托
        //摄像机剔除前处理的委托函数
        Camera.onPreCull += (c) =>
        {

        };
        //摄像机渲染前处理委托
        Camera.onPreRender += (c) => { };
        //摄像机渲染后处理委托
        Camera.onPostRender += (c) => { };

        #endregion

        #region 重要成员
        //界面上的参数都可以通过Camera获取到

        //世界坐标转屏幕坐标
        //z轴对应3D物体离摄像机的距离
        Vector3 v = Camera.main.WorldToScreenPoint(transform.position);
        print(v);

        //屏幕坐标转世界坐标
        //由于Input.mousePosition的Z轴始终是0
        //所以默认转换只会是摄像机视角交点的那个点
        //如果改变了Z就可以得到距离摄像机Z轴距离横截面上的世界坐标位置
        Vector3 v1 = Input.mousePosition;
        //可以得到距摄像机10个单位的横截面上的世界坐标位置
        v1.z = 10;
        print(Camera.main.ScreenToWorldPoint(Input.mousePosition));
        #endregion
    }


}
posted @ 2025-03-16 20:33  cannedmint  阅读(13)  评论(0)    收藏  举报