概述
当3dCamera 调整fov 的时候,被查看的物体会产生位移,或者缩放的的效果,
比如我们在3dCamera 显示一个logo,是希望这个Quad 是不受到Camera的fov影响的
上代码
public class FovTest : MonoBehaviour {
public GameObject go1;//这个是Quad
public Camera cam;//这个是3dCamera
public Vector3 locv3 = Vector3.zero;//保存转换后的屏幕坐标
public Vector3 locs = Vector3.zero;//保存初始大小
float dis = 0;//保存2个物体距离
// Use this for initialization
void Start () {
Vector3 v3 = cam.WorldToScreenPoint(go1.transform.position);
locv3 = new Vector3(v3.x, v3.y, v3.z);
locs = new Vector3(go1.transform.localScale.x, go1.transform.localScale.y, 1);
dis = Vector3.Distance(go1.transform.position, transform.position);
}
// Update is called once per frame
void Update () {
go1.transform.localPosition = cam.ScreenToWorldPoint(locv3);
float frustumHeight = 2.0f * dis * Mathf.Tan(cam.fieldOfView * 0.5f * Mathf.Deg2Rad);
go1.transform.localScale = locs * (frustumHeight / 8f);
}
}
最后
以上就是坚强金针菇为你收集整理的unity3d让模型不受3dCamera FOV的影响的全部内容,希望文章能够帮你解决unity3d让模型不受3dCamera FOV的影响所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复