自制第一人称:
1、新建一个球、一个摄像机,把球和摄像机放在一个位置。
2、把下面代码托付给球。
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Move3 : MonoBehaviour { ? ? public float sensitivityX = 5f; ? ? public float sensitivityY = 5f;
? ? public float sensitivetyKeyBoard = 0.1f; ? ? public float sensitivetyMouseWheel = 10f;
? ? private GameObject Playercamera; ? ? public Rigidbody rigidbody; ? ? public float speed = 5;
? ? void Start() ? ? { ? ? ? ?// undefined ? ? ? ?Playercamera = GameObject.Find("PlayerCamera"); ? ? }
? ? void Update() ? ? { ? ? ? // ?undefined ? ? //滚轮实现镜头缩进和拉远 if (Input.GetAxis("Mouse ScrollWheel") != 0) ? ? ? ? { ? ? ? ? ? ?// undefined
Playercamera.GetComponent<Camera>().fieldOfView = Playercamera.GetComponent<Camera>().fieldOfView - Input.GetAxis("Mouse ScrollWheel") * sensitivetyMouseWheel; ? ? ? ? } ? ? ? ? //鼠标右键实现视角转动,类似第一人称视角 ? ? ? ? ? if (Input.GetMouseButton(0)) ? ? ? ? { ? ? ? ? ? ?// undefined ? ? ?? float rotationX = Input.GetAxis("Mouse X") * sensitivityX; ? ? ? ? ? ? transform.Rotate(0, rotationX, 0);
? ? ? ? ? ? float rotationY = Input.GetAxis("Mouse Y") * sensitivityY; ? ? ? ? ? ? Playercamera.transform.Rotate(-rotationY, 0, 0); ? ? ? ? }
? ? } ? ? void FixedUpdate() ? ? { ? ? ? ?// undefined ? ? //控制移动 float h = Input.GetAxis("Horizontal"); ? ? ? ? float v = Input.GetAxis("Vertical");
? ? ? ? //朝一个方向移动 new Vector3(h, 0, v) * speed * Time.deltaTime是个向量 ? ? ? ? transform.Translate(new Vector3(h, 0, v) * speed * Time.deltaTime); ? ? ? ? //移动到一个位置 ? ? ? ? //rigidbody.MovePosition(transform.position + new Vector3(h, 0, v) * speed * Time.deltaTime); ? ? } } ?
|