中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

動態(tài)網站開發(fā)工程師—aspseo一鍵優(yōu)化

動態(tài)網站開發(fā)工程師—asp,seo一鍵優(yōu)化,網站的內容建設,app游戲開發(fā)公司哪家好最終效果 前言 我們要實現的功能是雙擊疾跑,當玩家快速地按下同一個移動鍵兩次時能進入跑步狀態(tài) 我假設快速按下的定義為0.2秒內,按下同一按鍵兩次 簡單的分析一下需求,實現它的關鍵在于獲得按鍵按下的時間,我們需要知道第一次…

最終效果

在這里插入圖片描述

前言

我們要實現的功能是雙擊疾跑,當玩家快速地按下同一個移動鍵兩次時能進入跑步狀態(tài)

我假設快速按下的定義為0.2秒內,按下同一按鍵兩次

簡單的分析一下需求,實現它的關鍵在于獲得按鍵按下的時間,我們需要知道第一次按下按鍵的時間,然后判斷規(guī)定時間內有沒有按下按鍵

有兩種實現方法
第一種
啟動一個計時器,判斷在計時器結束之前有沒有再次按下這個鍵
在這里插入圖片描述
第二種
是分別記錄下兩次按鍵的時間,然后用第二次按下的時間減去第一次按下的時間,判斷是否小于0.2
在這里插入圖片描述
這里我采用第二種方法,為了獲取按下的時間,我們需要使用到Unity給我們提供的Time類,里面的Time.time會提供游戲啟動到現在運行了多少秒,這個需求還需要我們檢測到按鍵是否被按下,我打算使用Input Manager來實現

public static float GetAxis (string axisName);
public static float GetAxisRaw(string axisName);

GetAxisRaw會在檢測到按鍵后,馬上返回1或-1,松開按鍵后馬上變成0
而GetAxis會在檢測到按鍵的時候,從0過渡到1或-1,松開按鍵后再過渡到0

為了方便,我使用GetAxisRaw來獲得輸入的時間,當按鍵按下時意味著GetAxisRaw的返回值為1的絕對值,我們在符合條件的時候使用Time.time來獲得當前的時間即可

但顯然,我們不希望玩家按下a后馬上按下d,還能讓人物進入到疾跑狀態(tài),所以兩個按鍵的輸入時間要分開存儲,還有一個需要注意的地方是,當玩家開始走路或疾跑時,a鍵或d鍵是按住不放的,所以當玩家在移動的時候,我們要使個bool變量為真,當這個變量為真時,就不再刷新輸入的時間

我們設想一下,玩家進入游戲以后,馬上按下了一次移動鍵,如果他電腦開游戲開的特別的快,他第一次按下移動鍵的時間,離打開游戲不到0.2秒,如果我們存儲按鍵時間的變量,沒有初始化,那么會默認賦值為0,當他第一次按下移動時,就會進入到疾跑狀態(tài),這很明顯是我們不想要看到的bug

所以最后一個要點是給存儲按鍵時間的變量進行初始化,但初始化的只要賦值為多少也是一個值得考慮的問題,如果賦值為一個極大的正數,就算賦值為1萬,萬一玩家一開始在掛機剛好在10,000.01秒,按一下移動按鍵,還是會錯誤地進入到疾跑狀態(tài),所以可以給他賦值為,負的最大等待輸入時間,如果實在不放心,可以賦值為2倍,這樣第一次輸入就不會出現bug

經過了這么多的分析,相信你此時此刻已經完全明白了,接下來我們進入到代碼實戰(zhàn)環(huán)節(jié)

開始

配置動畫,walk為true進入走路動畫,run為true進入跑步動畫
在這里插入圖片描述

public class PlayerController : MonoBehaviour
{private Rigidbody2D rb;private Animator animator;public float maxAwaitTime;private float leftPressTime, rightPressTime;private bool moving, canRun;public int walkSpeed, runSpeed;private int currentSpeed;private float h;private void Awake(){rb = GetComponent<Rigidbody2D>();animator = GetComponent<Animator>();leftPressTime = rightPressTime = -maxAwaitTime;}private void Update(){h = Input.GetAxisRaw("Horizontal");ChangeFaceDirection();CheckRun();}private void ChangeFaceDirection(){if (h == 1){transform.localScale = new Vector3(1, 1, 1);}else if (h == -1){transform.localScale = new Vector3(-1, 1, 1);}}private void CheckRun(){if (h == 1 && !moving){if (Time.time - rightPressTime <= maxAwaitTime){canRun = true;}rightPressTime = Time.time;}if (h == -1 && !moving){if (Time.time - leftPressTime <= maxAwaitTime){canRun = true;}leftPressTime = Time.time;}//取 h 的絕對值if (Mathf.Abs(h) == 1){moving = true;if (canRun){currentSpeed = runSpeed;animator.SetBool("run", true);}else{currentSpeed = walkSpeed;animator.SetBool("walk", true);}}else{animator.SetBool("run", false);animator.SetBool("walk", false);moving = false;canRun = false;}}private void FixedUpdate(){rb.velocity = new Vector2(h * currentSpeed * Time.deltaTime, rb.velocity.y);}
}

效果
在這里插入圖片描述

參考

【視頻】https://www.bilibili.com/video/BV1YN4113771/

完結

贈人玫瑰,手有余香!如果文章內容對你有所幫助,請不要吝嗇你的點贊評論和關注,以便我第一時間收到反饋,你的每一次支持都是我不斷創(chuàng)作的最大動力。當然如果你發(fā)現了文章中存在錯誤或者有更好的解決方法,也歡迎評論私信告訴我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奮斗的開發(fā)者,出于興趣愛好,于是最近才開始自習unity。如果你遇到任何問題,也歡迎你評論私信找我, 雖然有些問題我可能也不一定會,但是我會查閱各方資料,爭取給出最好的建議,希望可以幫助更多想學編程的人,共勉~
在這里插入圖片描述

http://www.risenshineclean.com/news/31136.html

相關文章:

  • 網站建設的需求怎么寫項目優(yōu)化seo
  • 寧波網站建設c nb網站優(yōu)化網
  • 全面做好政府網站建設管理工作的通知免費營銷培訓
  • 標識設計廠家珠海百度搜索排名優(yōu)化
  • 網站制作詳細流程凈水器十大品牌
  • 網站做視頻在線觀看網址網站開發(fā)合同
  • 陽江招聘網站哪個靠譜松原頭條新聞今日新聞最新
  • 廊坊網站建設技術外包百度平臺聯系方式
  • 網站頁腳信息網站播放視頻速度優(yōu)化
  • 電子商務網站建設預算微信公眾平臺開發(fā)
  • 公司網站購物平臺建設百度網盤網頁登錄入口
  • 網站a記錄的是做cname營銷方案怎么寫?
  • 免費的創(chuàng)建個人網站武漢大學人民醫(yī)院光谷院區(qū)
  • php做網站主要怎么布局百度明星人氣排行榜
  • 美容產品網站建設多少錢seo診斷網站
  • 手機h5頁面制作教程關鍵詞seo排名怎么選
  • 東京購物商城百度整站優(yōu)化
  • 技術支持 鄭州做網站企業(yè)網搭建
  • 旅游網站的導航怎么做陜西網站設計
  • 南寧網站建設醉懂網絡外鏈官網
  • 企業(yè)網站建設服務公司搜索引擎優(yōu)化工具
  • 北京建站推廣全網推廣公司
  • b2c網站怎么做google關鍵詞搜索技巧
  • 網站平臺免費游戲推廣員每天做什么
  • 學校網站建設調研報告天津疫情最新情況
  • 做網站平臺營銷網站建站公司
  • 哪些網站專門做細胞的好的搜索引擎推薦
  • wordpress評論框加游戲優(yōu)化大師官方下載
  • 中英網站開發(fā)青島官網seo方法
  • 網站測試頁面怎么做網站推廣途徑和推廣要點