通过鼠标的滚轮控制摄像机视野的拉近拉远效果
游戏中常常见到视野的拉近拉远效果,比如英雄联盟中就可以通过鼠标滚轮进行视野的拉近与拉远,同时你也会发现在视野进行拉近拉远到一定程度时,在进行操作就不起作用了,因为视野的拉近拉远有一定的限制范围。所以今天分享一个摄像机视野拉近拉远的代码。
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FllowPlayer : MonoBehaviour {
public float scrollSpeed = 10;//滑轮滚动速度
private Transform player;//主角的位置变量
private Vector3 offsetPosition; //位置偏移
public float distance = 0;//位置偏移的向量长度
void Start () {
player = GameObject.FindGameObjectWithTag(Tags.player).transform;//找到主角的位置
offsetPosition = transform.position - player.position;
//主角与摄像机之间的偏移
}
void Update () {
//调用处理视野的拉近和拉远方法
ScrollView();
}
private void ScrollView()
{
//向后滑动返回负值 向前滑动返回正值
distance = offsetPosition.magnitude;//位置偏移的向量长度
distance -= Input.GetAxis("Mouse ScrollWheel") *scrollSpeed;//获取滚轮值的改变
distance = Mathf.Clamp(distance, 2, 15);//限制滚轮距离的范围,此数值可根不同需求设置相应的值
offsetPosition = offsetPosition.normalized * distance; //单位向量 方向不变 距离改变
}
}
=