unity中自制模擬第一人稱視角


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()
{
  Playercamera = GameObject.Find("PlayerCamera");
}

void Update()
{
  //滾輪實現鏡頭縮進和拉遠
  if (Input.GetAxis("Mouse ScrollWheel") != 0)
  {
    Playercamera.GetComponent<Camera>().fieldOfView = Playercamera.GetComponent<Camera>().fieldOfView - Input.GetAxis("Mouse ScrollWheel") * sensitivetyMouseWheel;
  }
  //鼠標右鍵實現視角轉動,類似第一人稱視角  
  if (Input.GetMouseButton(0))
  {
    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()
{
  //控制移動
  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);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM