中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

顺义区| 岳池县| 英吉沙县| 南靖县| 通城县| 滨海县| 东辽县| 两当县| 湖北省| 靖州| 长汀县| 平塘县| 印江| 北安市| 五华县| 平昌县| 宁武县| 临江市| 荣成市| 修水县| 武宁县| 兴山县| 上栗县| 仙游县| 永丰县| 平阳县| 固阳县| 巴马| 郴州市| 芦溪县| 明水县| 油尖旺区| 浦东新区| 汉沽区| 德格县| 寿宁县| 图木舒克市| 余江县| 专栏| 浦城县| 湟中县|