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

溫馨提示×

溫馨提示×

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

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

Unity3D怎么實現人物移動示例

發布時間:2021-10-15 17:12:29 來源:億速云 閱讀:170 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關Unity3D怎么實現人物移動示例,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一個是通過W、A、S、D來移動人物(示例一),另個是按屏幕上的按鈕來移動人物(示例二)。很簡單,只改了幾行代碼。

下面是“Assets”文件夾里面的資源。

示例一:

using System.Collections;using System.Collections.Generic;using UnityEngine; public class E3_07keyboard : MonoBehaviour{ //動畫數組 private Object[] animUp; private Object[] animDown; private Object[] animLeft; private Object[] animRight; //地圖貼圖 private Texture2D map; //當前人物動畫 private Object[] tex; //人物X坐標 private int x; //人物Y坐標 private int y; //幀序列 private int nowFram; //動畫幀的總數 private int mFrameCount; //限制一秒多少幀 private float fps = 5; //限制幀的時間  private float time = 0; void Start() {  //得到幀動畫中的所有圖片資源  animUp = Resources.LoadAll("up");  animDown = Resources.LoadAll("down");  animLeft = Resources.LoadAll("left");  animRight = Resources.LoadAll("right");  //得到地圖資源  map = (Texture2D)Resources.Load("map/map");  //設置默認動畫  tex = animUp; }  void OnGUI() {  //繪制貼圖  GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), map, ScaleMode.StretchToFill, true, 0);   //繪制幀動畫  DrawAnimation(tex, new Rect(x, y, 32, 48));   //點擊按鈕移動人物  if (Input.GetKey(KeyCode.W))  {   y -= 2;   tex = animUp;  }  if (Input.GetKey(KeyCode.S))  {   y += 2;   tex = animDown;  }  if (Input.GetKey(KeyCode.A))  {   x -= 2;   tex = animLeft;  }  if (Input.GetKey(KeyCode.D))  {   x += 2;   tex = animRight;  } }   void DrawAnimation(Object[] tex, Rect rect) {  //繪制當前幀  GUI.DrawTexture(rect, (Texture)tex[nowFram], ScaleMode.StretchToFill, true, 0);  //計算限制幀時間  time += Time.deltaTime;  //超過限制幀則切換圖片  if (time >= 1.0 / fps)  {   //幀序列切換   nowFram++;   //限制幀清空   time = 0;   //超過幀動畫總數從第0幀開始   if (nowFram >= tex.Length)   {    nowFram = 0;   }  } }}

示例二

using System.Collections;using System.Collections.Generic;using UnityEngine; public class E3_07button : MonoBehaviour{ //動畫數組 private Object[] animUp; private Object[] animDown; private Object[] animLeft; private Object[] animRight; //地圖貼圖 private Texture2D map; //當前人物動畫 private Object[] tex; //人物X坐標 private int x; //人物Y坐標 private int y; //幀序列 private int nowFram; //動畫幀的總數 private int mFrameCount; //限制一秒多少幀 private float fps = 5; //限制幀的時間  private float time = 0; void Start() {  //得到幀動畫中的所有圖片資源  animUp = Resources.LoadAll("up");  animDown = Resources.LoadAll("down");  animLeft = Resources.LoadAll("left");  animRight = Resources.LoadAll("right");  //得到地圖資源  map = (Texture2D)Resources.Load("map/map");  //設置默認動畫  tex = animUp; }  void OnGUI() {  //繪制貼圖  GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), map, ScaleMode.StretchToFill, true, 0);   //繪制幀動畫  DrawAnimation(tex, new Rect(x, y, 32, 48));   //點擊按鈕移動人物  if (GUILayout.RepeatButton("向上"))  {   y -= 2;   tex = animUp;  }  if (GUILayout.RepeatButton("向下"))  {   y += 2;   tex = animDown;  }  if (GUILayout.RepeatButton("向左"))  {   x -= 2;   tex = animLeft;  }  if (GUILayout.RepeatButton("向右"))  {   x += 2;   tex = animRight;  } }   void DrawAnimation(Object[] tex, Rect rect) {  //繪制當前幀  GUI.DrawTexture(rect, (Texture)tex[nowFram], ScaleMode.StretchToFill, true, 0);  //計算限制幀時間  time += Time.deltaTime;  //超過限制幀則切換圖片  if (time >= 1.0 / fps)  {   //幀序列切換   nowFram++;   //限制幀清空   time = 0;   //超過幀動畫總數從第0幀開始   if (nowFram >= tex.Length)   {    nowFram = 0;   }  } }}

關于Unity3D怎么實現人物移動示例就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

嘉义市| 乌审旗| 山阳县| 禄劝| 通榆县| 德兴市| 项城市| 毕节市| 孝感市| 夏邑县| 张北县| 阳高县| 屏山县| 清远市| 海宁市| 尖扎县| 咸宁市| 巨鹿县| 梓潼县| 容城县| 仙桃市| 商南县| 泰顺县| 鄂州市| 南岸区| 涞源县| 吉林市| 喀喇沁旗| 依安县| 古丈县| 周宁县| 文山县| 增城市| 双牌县| 罗山县| 黄浦区| 张北县| 宕昌县| 海阳市| 黎城县| 兴海县|