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);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值