Unity 3d 鼠标滚轮控制摄像头

来源:互联网 发布:东方仿真软件 编辑:程序博客网 时间:2024/04/30 10:29

菜鸟初学unity3d 需要的效果,鼠标左键绕中心模型旋转摄像机,滚轮调整摄像头与模型距离,右键暂时保留

因为有js版和c#(不会),不过自己整理了一下,可供大家选择

鼠标左键,摄像头旋转(c#版)

using UnityEngine;using System.Collections;public class control : MonoBehaviour {public float roate_Speed=200.0f;//旋转速度 void Start () {}// Update is called once per framevoid Update () {if (Input.GetMouseButton(0)){//Debug.Log("射线取得对象");float mousX = Input.GetAxis("Mouse X") * roate_Speed;//得到鼠标横向移动距离float mousY = Input.GetAxis("Mouse Y") * roate_Speed;//得到鼠标纵向移动距离// 绕Y轴旋转transform.RotateAround (Vector3.zero, Vector3.up, mousX * Time.deltaTime);// 绕x轴旋转(效果不是很好,使用时可注掉)transform.RotateAround (Vector3.zero, Vector3.right, -mousY * Time.deltaTime);}}}



鼠标滚轮调整摄像头与模型间距离

c#版

using UnityEngine;using System.Collections;public class carmera : MonoBehaviour {public float minFov = 15f;public float maxFov = 90f;public float sensitivity = 10f;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {float fov = Camera.main.fieldOfView;fov += -Input.GetAxis("Mouse ScrollWheel") * sensitivity;fov = Mathf.Clamp(fov, minFov, maxFov);Camera.main.fieldOfView = fov;}}

javascript版

#pragma strictvar viewSpeed=5;// 与模型最近距离var minFov=8.0;// 与模型最远距离var maxFov=100.0;var fov:float;function Start () {}function Update () {if(Input.GetAxis("Mouse ScrollWheel")) { // 从当前位置进行变更fov = this.GetComponent.<Camera>().fieldOfView;//Debug.Log("检测到滑轮"+Input.GetAxis("Mouse ScrollWheel"));fov -= Input.GetAxis("Mouse ScrollWheel") * viewSpeed;fov = Mathf.Clamp(fov, minFov, maxFov);this.GetComponent.<Camera>().fieldOfView = fov;}}

如果发现什么问题大家可以评论,共同进步吗!

0 0
原创粉丝点击