首页 > 其他分享 >unity 保持物体大小不变

unity 保持物体大小不变

时间:2023-02-14 11:34:51浏览次数:45  
标签:scale 物体 float Mathf pos unity cam 不变

    /// <summary>
    /// 在透视投影时,改变相机的fov或物体的位置,让物体保持在屏幕上看起来的大小一样的缩放值
    /// </summary>
    /// <returns></returns>
    public static float KeepSizeLookSameScale(Vector3 pos, Camera cam)
    {
        float distance = Vector3.Distance(cam.transform.position, pos);
        float size = distance * Mathf.Tan(cam.fieldOfView * 0.5f * Mathf.Deg2Rad);

        float max = 100f * Mathf.Tan(122 * 0.5f * Mathf.Deg2Rad);

        float scale = size / max;
        //scale = Mathf.Clamp(scale, 0.01f, 0.1f);//限定一个最大值和最小值
        return scale;
    }

  

 

标签:scale,物体,float,Mathf,pos,unity,cam,不变
From: https://www.cnblogs.com/Jason-c/p/17119010.html

相关文章

  • Unity Shader 后处理(1):景深效果
    景深的产生原因:摄像机成像时,通过棱镜聚焦,光线通过棱镜打在传感器平面上。不同物距的成像结果也会不一样,只有焦平面上的物体上的任意一点,通过过棱镜后会在传感器平面上聚焦......
  • Unity URP之如何实现半透明物体的阴影
    半透明物体的阴影现实中也应该是淡化过的,如何实现这种效果?渲染方案:使用内置的noise贴图来clip阴影。代码可参考:float2vpos=input.positionCS;h......
  • Unity+Vuforia AR虚拟现实初步案例
    完成需求;1.Unity2020版编辑器2.Vuforia2019.6.3的插件3.使用编辑器下载Android驱动支持,附带JDK+SDK等组件案例操作:1.在Vuforia官网注册账号......
  • unity 实现自定义class深度拷贝 deep copy 深度复制 引用类型复制
    气死我了,搜半天没有,全让序列化再反序列化,又不方便又不美观。结果自己试着一写就通,两行完事。首先先安装Newtonsoft.Json包,这个很常用也很简单,随便搜一下安上就行,早晚得学......
  • Unity Shader 风格化水体渲染
    风格化渲染(stylizedrendering)的具体定义我没能找到,但是在一些文章中,风格化渲染就是指那些非写实的(NonPhotorealisticRendering)渲染。其中卡通风格的渲染(ToonShad......
  • MySQLInstallerConsole.exe程序弹出窗口提示“MySQL Installer is running in Communi
    电脑运行中时不时弹出一个窗口,没反应过来就一下自动关闭了,下次再弹出,怎么回事?原来是MySQL的定时更新任务。 解决办法:这个是新版本MySQL服务自带的一个定时任务,每天......
  • Unity Shader 真实感水体渲染
    这两周用UnityShader做了点简单的水体渲染,有真实感的也有非真实感的,打算这几天总结整理一下贴出来。毛星云大牛有一篇详细的真实感水体渲染介绍:https://zhuanlan.zhihu.c......
  • 精华文稿|迈向统一的点云三维物体检测框架
    分享嘉宾| 杨泽同文稿整理| William嘉宾介绍Introduction3D检测是在三维世界中去定位和分类不同的物体,与传统2D检测的区别在于它有一个深度信息。目前,大部分的工作是倾......
  • unity乃至的特殊文件夹
    Assets文件夹:游戏资源的顶层文件夹。AssetDatabase方法可以访问里面的任意资源。Editor文件夹:编辑模式下的代码需要放在这里。打包以后,会自动剥离它。EditorDefaultRes......
  • unity2d碰撞和移动的反弹问题
    使用rigidbody2d和collider2d,可以实现控制物体移动和碰撞。但是有一个问题让博主抓狂:代表玩家的小方块撞上障碍物时,会有一瞬间嵌入障碍物,然后被弹回去。简单的控制代码如......