二、Camera类——B、实例方法
B、实例方法
1、RenderToCubemap
public bool RenderToCubemap(Cubemap cubemap); //参数为Cubemap静态贴图
(RenderTexture cubemap); // 参数为RenderTexture静态贴图
(Cubemap cubemap, int faceMask); //faceMask为反射面数量,默认值为63
(RenderTexture cubemap, int faceMask);
使用摄像机生成一个Cubemap静态贴图
2、RenderWithShader
public void RenderWithShader(Shader shader, string replacementTag);
shader为要使用的shader,replacementTag为shader的tag标示
此方法的作用是可以使用指定的shader来代替当前物体的shader渲染一帧。
当replacementTag为空时会替换视口中所有物体的shader
区别与SetReplacementShader方法,此为持久性替换
3、ScreenPointToRay
public Ray ScreenPointToRay(Vector3 position);
此方法可以从Camera的近视口nearClip向前发射一条射线到屏幕上的position点
射线探测物体
4、坐标系转换
ScreenToViewportPoint(Vector3 position)
ScreenToWorldportPoint(Vector3 position)
5、SetTargetBuffers
public void SetTargetBuffers(RenderBuffer colorBuffer, RenderBuffer depthBuffer)
colorBuffer为纹理的颜色缓存;depthBuffer为纹理的深度缓存
public void SetTargetBuffers(RenderBuffer[] colorBuffer, RenderBuffer depthBuffer)
此方法将Camera的渲染赋给RenderTexture的colorBuffer和depthBuffer
6、ViewportPointToRay
public Ray ViewportPointToRay(Vector3 position)
此方法可以从Camera的近视口nearClip向前发射一条射线到屏幕上的position点
与ScreenPointToRay不同点在于:S采用实际像素值的方式来决定,V采用单位化比例值得方式来决定Ray到屏幕的位置。
7、坐标系转换
ViewportToWorldPoint
WorldToScreenPoint
WorldToViewportPoint
8、关于Camera视口、aspect、pixelRect、rect的关系注解
Camera是一张二位图片,aspect来显示,pixelRect和rect决定 实际像素 还是 单位化形式 来显示