超详细,unity如何用鼠标中键控制视角放大、移动

这篇具有很好参考价值的文章主要介绍了超详细,unity如何用鼠标中键控制视角放大、移动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

unity如何用鼠标中键,控制视角放大、移动?
鼠标滑轮滑动视角放大。
鼠标滑动按住拖拽,视角移动。

uinty运行时可以用鼠标,解决问题,unity,计算机外设,游戏引擎


方法

把这个脚本,挂载到主相机上。

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

public class ViewController : MonoBehaviour {

    public float sizespeed = 1;    // 定义了一个名为sizespeed的公共(public)浮点型(float)变量,初始值为1
    public float mouseSpeed = 10;  // 定义了一个名为mouseSpeed的公共浮点型变量,初始值为10

    private Vector3 lastMousePosition;    // 定义了一个名为lastMousePosition的私有(private)Vector3类型变量

    // Update is called once per frame
    void Update () {    // 定义了一个名为Update的方法,在每一帧(frame)中被调用

        float mouse = -Input.GetAxis("Mouse ScrollWheel");    // 获取鼠标滚轮的输入值,并将其赋值给名为mouse的局部(local)浮点型变量

        // 鼠标中键按住拖动
        if (Input.GetMouseButton(2)) {    // 检测if语句中的条件是否为真,如果鼠标中键被按住,则执行大括号内的代码块

            Vector3 deltaMousePosition = Input.mousePosition - lastMousePosition;    // 获取当前鼠标位置和上一次鼠标位置之间的差值,并将其赋值给名为deltaMousePosition的局部Vector3类型变量

            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;    // 将鼠标当前位置赋值给lastMousePosition变量,以便下一帧计算鼠标位置差值
    }
}

下面是对该方法的分点总结:文章来源地址https://www.toymoban.com/news/detail-807196.html

  1. 获取鼠标滚轮输入值:
float mouse = -Input.GetAxis("Mouse ScrollWheel");
  1. 如果鼠标中键被按住,则获取当前鼠标位置和上一帧鼠标位置之间的差值,并将其赋值给名为deltaMousePosition的局部Vector3类型变量:
if (Input.GetMouseButton(2)) {
    Vector3 deltaMousePosition = Input.mousePosition - lastMousePosition;
}
  1. 将摄像机的位置向左右和上下移动,移动的距离由鼠标的移动距离和鼠标速度决定:
transform.Translate(-deltaMousePosition.x * mouseSpeed * Time.deltaTime, -deltaMousePosition.y * mouseSpeed * Time.deltaTime, 0);
  1. 将摄像机的位置向上或向下移动,移动的距离由鼠标滚轮的输入值和大小速度决定:
transform.Translate(new Vector3(0, mouse * sizespeed, 0) * Time.deltaTime, Space.World);
  1. 将鼠标当前位置赋值给lastMousePosition变量,以便下一帧计算鼠标位置差值:
lastMousePosition = Input.mousePosition;
  1. Update方法的完整实现如下:
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;
}

到了这里,关于超详细,unity如何用鼠标中键控制视角放大、移动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包