Camera代码相关

1、重要的静态成员

(1)获取摄像机

// 主摄像机的获取(场景中一定要有摄像机的tag是MainCamera,若有两个随意获取其中一个,但一般不会有两个)--->Camera.main.****

Camera.main.name

// 获取摄像机的数量

Camera.allCameraCount

// 得到所有摄像机

Camera[] allCamera = Camera.allCameras;

(2)渲染相关委托(c为Camera类型的参数)

// 摄像机剔除前(Occlusion Culling)处理的委托函数

Camera.onPreCull += (c) => {};

// 摄像机渲染前处理的委托

Camera.onPreRender += (c) => {};

// 摄像机渲染后处理的委托

Camera.onPostRender += (c) =>{};

2、重要的成员

(1)Inpector界面上的参数,都可以在Camera中获取到

// 比如下面这句代码就是得到主摄像机对象上的深度进行设置

Camera.main.depth

(2)世界坐标转屏幕坐标

// 转换过后,x和y对应的就是屏幕坐标,z对应的是这个3D物体离摄像机有多远

// 实际应用:头顶血条相关的功能

Vector3 v = Camera.main.WordToScreenPoint(this.transform.position);

(3)屏幕坐标转世界坐标

要改变z轴,否则z默认为0,转换过去的世界坐标系的点永远都是一个点,可以理解为视口相交的焦点,如果改变了z,那么转换过去的世界坐标系的点就是相对于摄像机前方多少个单位的横截面上的世界坐标点

Camera.main.ScreenToWorldPoint(Input.mousePosition)


eg:

Vector3 v = Input.mousePostion;

v.z = 10;

obj.position = Camera.main.ScreenToWorldPoint(v)

那么可以发现obj物体会在离摄像机10个单位的横截面上随鼠标移动

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值