国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

超詳細(xì),unity如何用鼠標(biāo)中鍵控制視角放大、移動

這篇具有很好參考價(jià)值的文章主要介紹了超詳細(xì),unity如何用鼠標(biāo)中鍵控制視角放大、移動。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

介紹

unity如何用鼠標(biāo)中鍵,控制視角放大、移動?
鼠標(biāo)滑輪滑動視角放大。
鼠標(biāo)滑動按住拖拽,視角移動。

uinty運(yùn)行時可以用鼠標(biāo),解決問題,unity,計(jì)算機(jī)外設(shè),游戲引擎


方法

把這個腳本,掛載到主相機(jī)上。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ViewController : MonoBehaviour {

    public float sizespeed = 1;    // 定義了一個名為sizespeed的公共(public)浮點(diǎn)型(float)變量,初始值為1
    public float mouseSpeed = 10;  // 定義了一個名為mouseSpeed的公共浮點(diǎn)型變量,初始值為10

    private Vector3 lastMousePosition;    // 定義了一個名為lastMousePosition的私有(private)Vector3類型變量

    // Update is called once per frame
    void Update () {    // 定義了一個名為Update的方法,在每一幀(frame)中被調(diào)用

        float mouse = -Input.GetAxis("Mouse ScrollWheel");    // 獲取鼠標(biāo)滾輪的輸入值,并將其賦值給名為mouse的局部(local)浮點(diǎn)型變量

        // 鼠標(biāo)中鍵按住拖動
        if (Input.GetMouseButton(2)) {    // 檢測if語句中的條件是否為真,如果鼠標(biāo)中鍵被按住,則執(zhí)行大括號內(nèi)的代碼塊

            Vector3 deltaMousePosition = Input.mousePosition - lastMousePosition;    // 獲取當(dāng)前鼠標(biāo)位置和上一次鼠標(biāo)位置之間的差值,并將其賦值給名為deltaMousePosition的局部Vector3類型變量

            transform.Translate(-deltaMousePosition.x * mouseSpeed * Time.deltaTime, -deltaMousePosition.y * mouseSpeed * Time.deltaTime, 0);    // 將攝像機(jī)的位置向左右和上下移動,移動的距離由鼠標(biāo)的移動距離和鼠標(biāo)速度決定

        }

        transform.Translate(new Vector3(0, mouse * sizespeed, 0) * Time.deltaTime, Space.World);    // 將攝像機(jī)的位置向上或向下移動,移動的距離由鼠標(biāo)滾輪的輸入值和大小速度決定

        lastMousePosition = Input.mousePosition;    // 將鼠標(biāo)當(dāng)前位置賦值給lastMousePosition變量,以便下一幀計(jì)算鼠標(biāo)位置差值
    }
}

下面是對該方法的分點(diǎn)總結(jié):文章來源地址http://www.zghlxwxcb.cn/news/detail-807196.html

  1. 獲取鼠標(biāo)滾輪輸入值:
float mouse = -Input.GetAxis("Mouse ScrollWheel");
  1. 如果鼠標(biāo)中鍵被按住,則獲取當(dāng)前鼠標(biāo)位置和上一幀鼠標(biāo)位置之間的差值,并將其賦值給名為deltaMousePosition的局部Vector3類型變量:
if (Input.GetMouseButton(2)) {
    Vector3 deltaMousePosition = Input.mousePosition - lastMousePosition;
}
  1. 將攝像機(jī)的位置向左右和上下移動,移動的距離由鼠標(biāo)的移動距離和鼠標(biāo)速度決定:
transform.Translate(-deltaMousePosition.x * mouseSpeed * Time.deltaTime, -deltaMousePosition.y * mouseSpeed * Time.deltaTime, 0);
  1. 將攝像機(jī)的位置向上或向下移動,移動的距離由鼠標(biāo)滾輪的輸入值和大小速度決定:
transform.Translate(new Vector3(0, mouse * sizespeed, 0) * Time.deltaTime, Space.World);
  1. 將鼠標(biāo)當(dāng)前位置賦值給lastMousePosition變量,以便下一幀計(jì)算鼠標(biāo)位置差值:
lastMousePosition = Input.mousePosition;
  1. Update方法的完整實(shí)現(xiàn)如下:
void Update () {
    float mouse = -Input.GetAxis("Mouse ScrollWheel");

    if (Input.GetMouseButton(2)) {
        Vector3 deltaMousePosition = Input.mousePosition - lastMousePosition;
        transform.Translate(-deltaMousePosition.x * mouseSpeed * Time.deltaTime, -deltaMousePosition.y * mouseSpeed * Time.deltaTime, 0);
    }

    transform.Translate(new Vector3(0, mouse * sizespeed, 0) * Time.deltaTime, Space.World);
    lastMousePosition = Input.mousePosition;
}

到了這里,關(guān)于超詳細(xì),unity如何用鼠標(biāo)中鍵控制視角放大、移動的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包