1. 程式人生 > >Unity3D——學習分享(十三)滑鼠滾輪控制視野拉近拉遠效果

Unity3D——學習分享(十三)滑鼠滾輪控制視野拉近拉遠效果

通過滑鼠的滾輪控制攝像機視野的拉近拉遠效果

遊戲中常常見到視野的拉近拉遠效果,比如英雄聯盟中就可以通過滑鼠滾輪進行視野的拉近與拉遠,同時你也會發現在視野進行拉近拉遠到一定程度時,在進行操作就不起作用了,因為視野的拉近拉遠有一定的限制範圍。所以今天分享一個攝像機視野拉近拉遠的程式碼。

程式碼如下:
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; //單位向量 方向不變 距離改變 } }

=

注意:程式碼中定義了一個ScrollView()方法目的是使程式碼更加清晰整潔,在相對較大的專案中,程式碼都成百上千行,如果全部寫在Update函式中,極不容易進行修改和操作,也不方便團隊成員的閱讀和查閱。所以一般在Update中每定義使用一種型別的功能時,可以 為這類功能定義一個方法,通過在Update對方法的呼叫來實現功能。