亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Unity中怎么實現人物旋轉和移動效果

發布時間:2021-08-11 13:48:58 來源:億速云 閱讀:696 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關Unity中怎么實現人物旋轉和移動效果,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

具體內容如下

旋轉

using System.Collections;using System.Collections.Generic;using UnityEngine; public class MouseLook : MonoBehaviour { public enum RotationAxes { MouseXandY = 0, MouseX = 1, MouseY = 2 }  public RotationAxes axes = RotationAxes.MouseXandY;  public float sensitivityHor = 9.0f; public float sensitivityVert = 9.0f;  public float minVert = -45.0f; public float maxVert = 45.0f;  private float _rotationX = 0;  // Use this for initialization void Start () { Rigidbody body = GetComponent<Rigidbody> (); if (body != null) {  body.freezeRotation = true; } }  // Update is called once per frame void Update () { //水平旋轉就是以Y軸作為旋轉軸旋轉,鼠標移動量為偏移量 if (axes == RotationAxes.MouseX) {  transform.Rotate (0, Input.GetAxis("Mouse X") * sensitivityHor, 0);//通過“增加”旋轉角度進行旋轉(X,Y,Z為對應方向的增加量),一般用于無限制旋轉 } else if (axes == RotationAxes.MouseY) {  _rotationX -= Input.GetAxis ("Mouse Y") * sensitivityVert;  _rotationX = Mathf.Clamp (_rotationX, minVert, maxVert);//限制_rotationX的值在minVert與minVert之間  float rotationY = transform.localEulerAngles.y;  //Debug.Log ("rotationX:"+_rotationX+","+Input.GetAxis ("Mouse Y") * sensitivityVert);  transform.localEulerAngles = new Vector3(_rotationX, rotationY, 0);//直接“設置”旋轉角度進行旋轉,一般用于有限制旋轉 } else {  _rotationX -= Input.GetAxis ("Mouse Y") * sensitivityVert;  _rotationX = Mathf.Clamp (_rotationX, minVert, maxVert);  float delta = Input.GetAxis ("Mouse X") * sensitivityHor;  float rotationY = transform.localEulerAngles.y + delta;  transform.localEulerAngles = new Vector3(_rotationX, rotationY, 0); } }}

移動

using System.Collections;using System.Collections.Generic;using UnityEngine; [RequireComponent(typeof(CharacterController))]//如果對象沒有該組件,則創建一個[AddComponentMenu("Control Script/FPS Input")]//可以在Add Component查到 public class FPSInput : MonoBehaviour {  private CharacterController _characterController; public float speed = 10.0f; public float gravity = -9.8f; // Use this for initialization void Start () { _characterController = GetComponent<CharacterController>();//獲取對象里的某一組件 }  // Update is called once per frame void Update () { float deltaX = Input.GetAxis ("Horizontal") * speed; float deltaZ = Input.GetAxis ("Vertical") * speed; Vector3 movement = new Vector3 (deltaX, 0, deltaZ); movement = Vector3.ClampMagnitude (movement, speed);//保持各方向的速度相同 movement.y = gravity; movement = movement * Time.deltaTime;//向量可以直接乘以一個數,Time.deltaTime確保在每臺計算機上的速度相同 movement = transform.TransformDirection (movement);//將本地坐標轉換為世界坐標 _characterController.Move(movement);//通過CharacterController進行移動而不是transform.Translate }}

以上就是Unity中怎么實現人物旋轉和移動效果,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

融水| 潞西市| 昭苏县| 西藏| 长白| 汉沽区| 河北区| 塔城市| 旬邑县| 子长县| 拉萨市| 神农架林区| 青州市| 华安县| 农安县| 鹤山市| 原平市| 武隆县| 车致| 自治县| 蒙阴县| 正宁县| 磐安县| 洛隆县| 彭阳县| 虎林市| 栖霞市| 宜川县| 象州县| 琼结县| 和平县| 神农架林区| 平远县| 长葛市| 余姚市| 穆棱市| 滨海县| 广河县| 郓城县| 金山区| 镇康县|