Unity 视角 第一人称脚本 MouseLook

写在前面:

研究了一下 unity 的第一人称控制器后,把他自带的 Mouse Look 脚本做了简化。这样代码看上去更简单明了。记录下来,以备以后再用到。所以,这是一个没啥营养的文。


第一人称视角实验:

1,搭建一个实验场景:1个摄像机,1个平面,1个正方体(作为参照物),1个胶囊体(作为主角),1个点光源。

2,把摄像机放到胶囊体上,摆好高度(相当于第一人称的眼睛),如下图:


3,新建一个脚本,作为相机的控制脚本(其实这个脚本就是Mouse Look.cs 脚本,做了删减)。脚本如下:

using UnityEngine;
using System.Collections;

public class FirstView : MonoBehaviour {

	//方向灵敏度
	public float sensitivityX = 10F; 
	public float sensitivityY = 10F; 
	
	//上下最大视角(Y视角)
	public float minimumY = -60F;
	public float maximumY = 60F;
	
	float rotationY = 0F;
	
	void Update ()
	{
		//根据鼠标移动的快慢(增量), 获得相机左右旋转的角度(处理X)
		float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
		
		//根据鼠标移动的快慢(增量), 获得相机上下旋转的角度(处理Y)
		rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
		//角度限制. rotationY小于min,返回min. 大于max,返回max. 否则返回value 
		rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
		
		//总体设置一下相机角度
		transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0); 
	}
	
	void Start ()
	{
		// Make the rigid body not change rotation
		if (rigidbody)
			rigidbody.freezeRotation = true;
	}
}

4,把这个脚本放到相机上。ok。


总结:视角的控制,其实很简单。主要是控制:旋转、以及输入设备的增量(比如,鼠标移动的快,视角转动的也要快)。




评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>