Unity 3D实现键鼠控制物体移动

原理

在unity 3d中实现物体的移动,除了对物体自身三维坐标进行改正外,还可以借助摄像机,以摄像机视角移动达到对物体的移动效果,在这里提供一种通过调整Main摄像机实现物体的移动。

代码

using UnityEngine;
using System.Collections;

public class CameraMove : MonoBehaviour
{
    //public设置三个灵敏度调节变量(方便更改灵敏度)
    public float sensitivityMouse = 2f;
    public float sensitivetyKeyBoard = 0.1f;
    public float sensitivetyMouseWheel = 10f;

    void Update()
    {
        //滚轮实现镜头缩进和拉远
        //UnityEngine.Camera.main可以省略UnityEngine.
        //省略后脚本命名不能为Camera
        if (Input.GetAxis("Mouse ScrollWheel") != 0)
        {
           UnityEngine.Camera.main.fieldOfView = UnityEngine.Camera.main.fieldOfView-Input.GetAxis("Mouse ScrollWheel")* sensitivetyMouseWheel;
        }
        //按着鼠标右键实现视角转动
        if (Input.GetMouseButton(1))
        {
            transform.Rotate(-Input.GetAxis("Mouse Y") * sensitivityMouse, Input.GetAxis("Mouse X") * sensitivityMouse, 0);
        }

        //键盘按钮←/a和→/d实现视角水平移动,键盘按钮↑/w和↓/s实现视角水平旋转
        if (Input.GetAxis("Horizontal") != 0)
        {
            transform.Translate(Input.GetAxis("Horizontal") * sensitivetyKeyBoard, 0, 0);
        }
        if (Input.GetAxis("Vertical") != 0)
        {
            transform.Translate(0, Input.GetAxis("Vertical") * sensitivetyKeyBoard, 0);
        }
    }

}

将代码复制到脚本文件中并挂载到Main摄像机下

脚本挂载效果
在这里插入图片描述

注意事项
代码中类名必须和脚本文件名保持一致!


版权声明:本文为weixin_45443729原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。