我是靠谱客的博主 坚强金针菇,最近开发中收集的这篇文章主要介绍unity3d让模型不受3dCamera FOV的影响,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当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的影响所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部