Unity视角控制和Camera的移动

类似第一人称射击游戏

把脚本绑定到camera里

using UnityEngine;
using System.Collections;

public class CameraControll : MonoBehaviour {


	public float near = 20.0f;
	public float far = 100.0f;

	public float sensitivityX = 10f;
	public float sensitivityY = 10f;
	public float sensitivetyZ = 0f;
	public float sensitivetyMove = 10f;
	public float sensitivetyMouseWheel = 2f;
	public int speed = 1;

	public Camera camera;

	void start(){
		camera = GetComponent<Camera> ();	
	}

	void Update () {

		//w键前进
		if(Input.GetKey(KeyCode.W))
		{
			transform.Translate(new Vector3(0,0,speed*Time.deltaTime));
		}
		//s键后退
		if(Input.GetKey(KeyCode.S))
		{
			transform.Translate(new Vector3(0,0,-1*speed*Time.deltaTime));
		}
		//a键后退
		if(Input.GetKey(KeyCode.A))
		{
			transform.Translate(new Vector3(-1*speed,0,0*Time.deltaTime));
		}
		//d键后退
		if(Input.GetKey(KeyCode.D))
		{
			transform.Translate(new Vector3(speed,0,0*Time.deltaTime));
		}


		// 滚轮实现镜头缩进和拉远
		/*
		 * if (Input.GetAxis("Mouse ScrollWheel") != 0)
		{
			camera.fieldOfView =this.camera.fieldOfView - Input.GetAxis("Mouse ScrollWheel")*sensitivetyMouseWheel;
			camera.fieldOfView = Mathf.Clamp(this.camera.fieldOfView, near, far);
		}
		*/
		//鼠标实现视角转动,类似第一人称视角
		//if (Input.GetMouseButton(1))
		//{ 
			float rotationX = Input.GetAxis("Mouse X") * sensitivityX;
			//float rotationY = Input.GetAxis("Mouse Y") * sensitivityY;
			transform.Rotate(-0, rotationX, 0); 
		   // transform.Rotate(-rotationY, 0, 0);
		//}

		//键盘按钮←和→实现视角水平旋转
		/*
		if (Input.GetAxis("Horizontal")!=0)
		{
			float rotationZ=Input.GetAxis("Horizontal") * sensitivetyZ;
			transform.Rotate(0, 0, rotationZ); 
		}
		*/
	}
}



参考:

http://www.cnblogs.com/reachteam/p/4229740.html


猜你喜欢

转载自blog.csdn.net/live4what/article/details/51731241
今日推荐