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

菜鸟初学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 frame
	void 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 initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
		float fov = Camera.main.fieldOfView;
		fov += -Input.GetAxis("Mouse ScrollWheel") * sensitivity;
		fov = Mathf.Clamp(fov, minFov, maxFov);
		Camera.main.fieldOfView = fov;
	}
}

javascript版

#pragma strict
var 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;
	}
}

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值