Unity3D——學習分享(十三)滑鼠滾輪控制視野拉近拉遠效果
阿新 • • 發佈:2018-12-12
通過滑鼠的滾輪控制攝像機視野的拉近拉遠效果
遊戲中常常見到視野的拉近拉遠效果,比如英雄聯盟中就可以通過滑鼠滾輪進行視野的拉近與拉遠,同時你也會發現在視野進行拉近拉遠到一定程度時,在進行操作就不起作用了,因為視野的拉近拉遠有一定的限制範圍。所以今天分享一個攝像機視野拉近拉遠的程式碼。
程式碼如下:
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; //單位向量 方向不變 距離改變
}
}
=