首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一缩放脚本

统一缩放脚本
EN

Stack Overflow用户
提问于 2020-11-05 05:31:06
回答 1查看 650关注 0票数 0

我使用这个简单的缩放脚本,改变相机视野,而不是移动相机(以避免剪辑),它的工作很好。

不过,我想给它增加一个最大的FOV,比如FOV 80左右。也许也是最低的FOV (不像最大FOV那么重要)?

我可以修改这个脚本吗?

代码语言:javascript
复制
 {
 // Start is called before the first frame update
 void Start()
 {

 }

 // Update is called once per frame
 void Update()
 {
     if (Input.GetAxis("Mouse ScrollWheel") > 0)
     {
         GetComponent<Camera>().fieldOfView--;
     }
     if (Input.GetAxis("Mouse ScrollWheel") < 0)
     {
         GetComponent<Camera>().fieldOfView++;
     }
 }

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-05 06:39:08

只需将所需的min和max值作为成员添加到脚本中即可。然后,您可以使用检查器来调整它们:

代码语言:javascript
复制
private Camera cam;
[SerializeField] private float minFov = 20;
[SerializeField] private float maxFov = 80;

void Awake()
{
    cam = GetComponent<Camera>();
    // ensures that the field of view is within min and max on startup
    UpdateFov(cam.fieldOfView);
}

void Update()
{
    float scrollInput = Input.GetAxis("Mouse ScrollWheel");
    if(scrollInput > 0)
        UpdateFov(cam.fieldOfView - 1);
    else if(scrollInput < 0)
        UpdateFov(cam.fieldOfView + 1);    
}

void UpdateFov(float newFov)
{
    cam.fieldOfView = Mathf.Clamp(newFov, minFov, maxFov);
}

我还缓存了相机,因为GetComponent电话相当昂贵。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64691696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档