游戏开发过程中,需要很多地方来改变相机视野的大小,比如在竞技类游戏中通过拉伸相机视野,给人一种加速的感觉,本篇博客就告诉大家一种简易的方法实现这种效果,通过设置相机的Field Of View大小,本脚本只需挂载到相机上,设置enabled=true,就可以实现由近到远然后还原的效果。
using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraFieldStretch : MonoBehaviour{Camera mCamera;public float maxFiledValue=100;//filed of view的最大值public float beginRate=100;//开始放大的速率public float endRate=100;//结束放大的速率public float stretchTime=1;//拉伸后持续的时间float mTime;//拉伸field of view到设定值后的时间float originalSize;//原始大小bool hasChange;//已经拉伸bool alreadyAdd;//field of view已经加到最大值void OnDisable(){mCamera.fieldOfView = originalSize;}void OnEnable (){mCamera = gameObject.GetComponent<Camera>();originalSize = mCamera.fieldOfView;mTime = 0;alreadyAdd = false;}void Update (){if (!alreadyAdd) {mCamera.fieldOfView =Mathf.MoveTowards (mCamera.fieldOfView, maxFiledValue, beginRate * Time.deltaTime);if (Mathf.Approximately (mCamera.fieldOfView, maxFiledValue)) {alreadyAdd = true;}} else {mTime += Time.deltaTime;if (mTime>stretchTime) {mCamera.fieldOfView =Mathf.MoveTowards(mCamera.fieldOfView,originalSize,endRate * Time.deltaTime);if (Mathf.Approximately (mCamera.fieldOfView, originalSize)) {mCamera.fieldOfView = originalSize;enabled = false;}}}}}
如果觉得《相机视野拉伸 设置相机的Field Of View改变视野的大小》对你有帮助,请点赞、收藏,并留下你的观点哦!