91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

宜阳县| 栾城县| 长武县| 上杭县| 育儿| 浪卡子县| 平利县| 武定县| 遵义县| 东阿县| 迁安市| 平塘县| 苍南县| 故城县| 临湘市| 晋州市| 平顶山市| 高碑店市| 新安县| 仁寿县| 昌吉市| 凌海市| 恩施市| 四川省| 深水埗区| 突泉县| 古田县| 双流县| 雷州市| 阳东县| 固始县| 政和县| 盐山县| 特克斯县| 砚山县| 凤庆县| 江山市| 密云县| 亚东县| 大余县| 扎兰屯市|