《UnityAPI.Input輸入》
版本 |
作者 |
參與者 |
完成日期 |
備註 |
UnityAPI_Input_V01_1.0 |
嚴立鑽 |
|
2020.06.18 |
|
|
|
|
|
|
#《UnityAPI.Input輸入》發佈說明:
++++“UnityAPI.Input輸入”是對UnityAPI中Input輸入類的剖析和拓展;
立鑽哥哥:Unity是一個入門快、提高難的遊戲引擎,想要提升能力,至少需要越過3道坎:API+Shader+綜合能力;++1、API的積累:對API的合理利用不僅可以減輕自己的編碼負擔,而且往往可以提高程序的運行效率;這也是鑽哥開始“Unity API”獨立打造分類的初衷; ++2、Shader編程:想要做出一款精品遊戲往往需要有高效的Shader的支持;Unity提供了一套改良的“Shader Lab”系統,優化了繁雜的“Open GL”編程; ++3、綜合能力(技術+業務+管理):一款產品的製作除了功能編程外,往往會涉及很多其他領域,例如產品架構、UI交互設計、模型製作等,作爲主要的編程人員,對其他相關領域的瞭解程序往往會影響到產品製作直至最後的產品體驗; ++++立鑽哥哥一直在推動【VR雲遊戲=Unity+SteamVR+雲技術+5G+AI】,這個只是一個引子,拋磚引玉讓大家對整個知識體系有一個明確的落地方向,寶寶們可以根據自己的興趣方向進行拓展:比如Unity這裏是指一種“3D遊戲引擎”,也可拓展至“UE4、Cocos2dx”等遊戲引擎;SteamVR是一種跨硬件解決方案,也可拓展至“VRTK”等第三方插件;“雲技術+5G”是一種跨平臺解決方案的核心技術,同樣可拓展至其他平臺解決方案;AI也是一種先進技術的舉例,也可以拓展至任何一種前沿技術; |
@@提示:有些博客可能只是開了頭,如果感興趣的同學,可以“點贊”或“評論區留言”,只要關注的同學多了,那就會繼續完善喲!(“++==”,表示沒有寫完的,如果關注度不高就不完善了;“++ok++”,表示此篇博客已經完成,是階段性完整的!)
$$$$博客溯源:
++++VR雲遊戲=Unity+SteamVR+雲技術+5G+AI;(說明:AI人工智能不是我們的主要研究技術,只是瞭解一下,領略一下有風的感覺!但是,VR是我們的研究重點)
++++【Unity API】分類:https://blog.csdn.net/vrunsoftyanlz/category_7637520.html
++++【Unity開發基礎】分類:https://blog.csdn.net/vrunsoftyanlz/category_7309057.html
++++【Linux系統編程】分類:https://blog.csdn.net/vrunsoftyanlz/category_9694767.html
++++【C++C鑄就生存利器】分類:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html
++++【人工智能AI2026】分類:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html
++++【立鑽哥哥CSDN空間】:https://blog.csdn.net/VRunSoftYanlz/
#Input輸入
#Input輸入 |
#Input輸入++A1、Description描述++B2、Variables變量++C3、Public Function共有函數++D4、Message消息 |
#A1、Description描述
#A1、Description描述 |
++A1、Description描述
++++立鑽哥哥:Input(輸入)是輸入系統的接口;
++++[namespace]:UnityEngine;
++++[Inherits from]:;
++++使用這個類能夠讀取輸入管理器設置的按鍵,以及訪問移動設備的多點觸控或加速感應數據;
++++想要讀取軸向使用Input.GetAxis方法獲取默認值:“Horizontal”和“Vertical”映射於控制桿、A、W、S、D和箭頭鍵(方向鍵);“Mouse X”和“Mouse Y”映射於鼠標,“Fire1”,“Fire2”,“Fire3”映射於鍵盤的Ctrl、Alt、Cmd鍵和鼠標中鍵或控制器的按鈕;新的輸入設置可以使用輸入管理器來添加;
++++如果使用Input製作某種運動作爲可以使用Input.GetAxis方法,它能夠返回來自鍵盤、控制器或鼠標平緩並且可以設置的輸入結果;使用Input.GetButton方法只用於像事件之類的動作;不要將它用於移動動作;Input.GetAxis方法可以使腳本代碼更簡潔;
++++注意:每次輸入的“Update()”之前不會再更新,所以建議將所有的輸入調用都寫在Update方法中;(Update循環中);
++++[移動設備(Mobile Devices)]:iOS和Android設備能夠支持多點觸控;可以通過Input.touches屬性集合訪問在最近一幀中觸摸在屏幕上的每一根手指的狀態數據;
++++當設備移動時,它們的加速感應器硬件將報告它們在三維空間中沿着三個主軸的線性加速變化數據;可以使用這些數據檢測設備當前的移動方向(相對於地面)和突然間的方向改變;
++++硬件沿着某感應一軸加速就會立即返回重力值;如果值爲1.0代表沿着給定軸的方向+1g的重力加速度,如果值爲-1.0代表-1g的重力加速度;如果保持設備垂直(主頁鍵在下方)在正前方,那麼X軸就是指向右側的方向,Y軸指向正上方,Z軸就是所面向的方向;
++++可以讀取Input.acceleration屬性獲得設備的加速度信息;也可以使用Input.deviceOrientation屬性獲取設備在三維空間中的方位偏移;檢測方位變化在想要製作遊戲行爲中會非常有用,當用戶轉動設備或拿着設備時它是不同的;
++++注意:速度感應裝置在每一幀中能夠輪詢多次,想訪問上一幀的所有速度樣本可以讀取Input.accelerationEvents屬性集合;這在重組玩家動作中會非常有用;例如將加速數據放入一個預測器中或者實現其他一些精確的動作捕捉;
++++【Unity API】分類:https://blog.csdn.net/vrunsoftyanlz/category_7637520.html
++++[Unity快速入門]:https://blog.csdn.net/VRunSoftYanlz/article/details/105776475
++++[UnityAPI目錄]:https://blog.csdn.net/VRunSoftYanlz/article/details/106533906
++++[Application應用]:https://blog.csdn.net/VRunSoftYanlz/article/details/106086327
++++[Object對象]:https://blog.csdn.net/VRunSoftYanlz/article/details/106202194
++++[GameObject]:https://blog.csdn.net/VRunSoftYanlz/article/details/106223815
++++[MonoBehaviour]:https://blog.csdn.net/VRunSoftYanlz/article/details/106533256
++++[Component組件]:https://blog.csdn.net/VRunSoftYanlz/article/details/106367004
++++[Transform變換]:https://blog.csdn.net/VRunSoftYanlz/article/details/106607761
++++[Camera攝像機]:https://blog.csdn.net/VRunSoftYanlz/article/details/106148837
++++[Shader着色器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106321040
++++[Material材質]:https://blog.csdn.net/VRunSoftYanlz/article/details/81814303
++++[Physics物理]:https://blog.csdn.net/VRunSoftYanlz/article/details/106268062
++++[Collider碰撞器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106696886
++++[Rigidbody剛體]:https://blog.csdn.net/VRunSoftYanlz/article/details/106698042
++++[Joint關節]:https://blog.csdn.net/VRunSoftYanlz/article/details/106771226
++++[RaycastHit]:https://blog.csdn.net/VRunSoftYanlz/article/details/106292370
++++[ParticleSystem]:https://blog.csdn.net/VRunSoftYanlz/article/details/106341995
++++[WWW萬維網]:https://blog.csdn.net/VRunSoftYanlz/article/details/106412890
++++[LineRenerer]:https://blog.csdn.net/VRunSoftYanlz/article/details/106306388
++++[WheelCollider]:https://blog.csdn.net/VRunSoftYanlz/article/details/82356217
++++[MovieTexture]:https://blog.csdn.net/VRunSoftYanlz/article/details/106434063
#B2、Static Variables靜態變量
#B2、Static Variables靜態變量 |
++B2、Static Variables靜態變量++++B2.1、acceleration++++B2.2、accelerationEventCount++++B2.3、accelerationEvents++++B2.4、anyKey++++B2.5、anyKeyDown++++B2.6、compass++++B2.7、compensateSensors++++B2.8、compositionCursorPos++++B2.9、compositionString++++B2.10、deviceOrientation++++B2.11、gyro++++B2.12、imeCompositionMode++++B2.13、imeIsSelected++++B2.14、inputString++++B2.15、location++++B2.16、mousePosition++++B2.17、mouseScrollDelta++++B2.18、multiTouchEnabled++++B2.19、simulateMouseWithTouches++++B2.20、touchCount++++B2.21、touches++++B2.22、touchSupported++++B2.23、YanlzXREngine.Input.StaticVariables |
++B2.1、acceleration
++B2.1、acceleration |
++B2.1、acceleration
++++立鑽哥哥:加速度;
public static Vector3 acceleration; |
++++上一次測量的設備在三維空間中的線性加速度(只讀);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public float speed = 10.0F;
void Update(){ Vector3 dir = Vector3.zero; dir.x = -Input.acceleration.y; dir.z = Input.acceleration.x;
if(dir.sqrMagnitude > 1){ dir.Normalize(); }
dir *= Time.deltaTime; transform.Translate(dir * speed);
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.2、accelerationEventCount
++B2.2、accelerationEventCount |
++B2.2、accelerationEventCount
++++立鑽哥哥:加速度事件次數;
public static int accelerationEventCount; |
++++上一幀發生的所測量的加速度次數;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ if(Input.accelerationEventCount > 0){ Debug.Log(“立鑽哥哥:We got new acceleration measurements.”); } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.3、accelerationEvents
++B2.3、accelerationEvents |
++B2.3、accelerationEvents
++++立鑽哥哥:加速度事件列表;
public static AccelerationEvent[] accelerationEvents; |
++++返回上一幀測量的加速度數據列表(只讀)(分配臨時變量);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ Vector3 acceleration = Vector3.zero;
foreach(AccelerationEvent accEvent in Input.accelerationEvents){ acceleration += accEvent.acceleration * accEvent.deltaTime; } //立鑽哥哥:foreach(){}
Debug.Log(acceleration);
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.4、anyKey
++B2.4、anyKey |
++B2.4、anyKey
++++立鑽哥哥:任意鍵;
public static bool anyKey; |
++++當前是否有任意鍵或鼠標鍵被按下(只讀)?
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ if(Input.anyKey){ Debug.Log(“立鑽哥哥:A key or mouse click has been detected.”); } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.5、anyKeyDown
++B2.5、anyKeyDown |
++B2.5、anyKeyDown
++++立鑽哥哥:任意鍵按下;
public static bool anyKeyDown; |
++++在用戶按下任意按鍵或鼠標按鍵首幀返回true(只讀);
++++可以在Update方法中輪流檢測這個變量,該狀態在每幀會得到復位;除非鬆開(釋放)所有的按鍵/按鈕然後再按下某個按鍵/按鈕,否則不會返回true;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ //if(Input.anyKey){ if(Input.anyKeyDown){ Debug.Log(“立鑽哥哥:A key or mouse click has been detected.”); } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.6、compass
++B2.6、compass |
++B2.6、compass
++++立鑽哥哥:指南針;
public static Compass compass; |
++++訪問指南針的屬性(僅手持設備);
++B2.7、compensateSensors
++B2.7、compensateSensors |
++B2.7、compensateSensors
++++立鑽哥哥:補償傳感器;
public static bool compensateSensors; |
++++該屬性控制輸入傳感器在屏幕方向的補償;
++++補償傳感器是加速度計、指南針、陀螺儀;注意:影響iOS全平臺和部分Android平臺(Android補償目前無法關閉);
++B2.8、compositionCursorPos
++B2.8、compositionCursorPos |
++B2.8、compositionCursorPos
++++立鑽哥哥:輸入法組合鼠標位置;
public static Vector2 compositionCursorPos; |
++++當前文本輸入位置,使用於IME來打開窗口;
++++某些語言IME,例如日語,在用戶輸入文本時,將打開窗口,以幫助用戶選擇正確的輸入字符串;這些窗口在當前光標位置彈出,因此輸入法需要知道在哪裏顯示輸入;當使用Unity內置GUI系統爲文本輸入,Unity將考慮爲IME設置鼠標位置;然而,如果想要實現自己的圖像用戶界面用來文本輸入,必須設置這個到當前文本輸入位置,爲使IME窗口正確顯示;
++B2.9、compositionString
++B2.9、compositionString |
++B2.9、compositionString
++++立鑽哥哥:輸入法組合字符串;
public static string compositionString; |
++++當前用戶正在輸入的IME組合字符串;
++++在某些語言如中文,日文或韓文,文本是通過鍵入多個鍵輸入來生成一個或多個字符;這些字符在屏幕上可視化組合,由用戶鍵入;當使用Unity內置的GUI系統用於文本輸入,Unity將考慮顯示組合字符串,由用戶鍵入;如果想實現自己的圖形用戶界面,必須考慮顯示字符串在當前鼠標位置;當IME組合使用時,該組合字符串才更新;
++B2.10、deviceOrientation
++B2.10、deviceOrientation |
++B2.10、deviceOrientation
++++立鑽哥哥:設備方向;
public static DeviceOrientation deviceOrientation; |
++++由操作系統所報告的設備的物理方向(只讀);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ if(Input.deviceOrientation == DeviceOrientation.FaceDown){ audio.Play(); } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.11、gyro
++B2.11、gyro |
++B2.11、gyro
++++立鑽哥哥:陀螺儀;
public static Gyroscope gyro; |
++++返回默認的陀螺儀;
++B2.12、imeCompositionMode
++B2.12、imeCompositionMode |
++B2.12、imeCompositionMode
++++立鑽哥哥:IME組合方式;
public static IMECompositionMode imeCompositionMode; |
++++控制IME輸入組合的啓用和禁用;
++++一些語言使用複雜的輸入方法,其中涉及到打開窗戶插入字符;通常,玩遊戲時這是不理想的,對於遊戲可能只是解釋按鍵作爲遊戲輸入,而不是文本;默認,當在文本字段,Unity啓用IME組合,並禁用其他的;然而,當想實現自己的輸入圖形用戶界面,來替代這個控制,要使用到imeCompositionMode屬性;可以設置爲自動(默認行爲),或開或關,明確地啓用或禁用輸入法組成;
++B2.13、imeIsSelected
++B2.13、imeIsSelected |
++B2.13、imeIsSelected
++++立鑽哥哥:IME是否已選擇;
public static bool imeIsSelected; |
++++用戶是否已選擇IME鍵盤輸入源?
++++如果用戶鍵盤是當前配置的IME輸入返回true,否則返回false;由於亞洲語言的用戶通常可以把IME打開或關閉,這個用來提供IME啓用的可視化提示,像這樣做Input.imeIsSelected;
++B2.14、inputString
++B2.14、inputString |
++B2.14、inputString
++++立鑽哥哥:輸入字符串;
public static string inputString; |
++++返回在這一幀的鍵盤輸入(只讀);
++++inputString中只包含ASCII碼中的字符;
++++這個字符串中可以包含兩個需要處理的特殊字符:字符“\b”代表回退鍵;字符“\n”代表返回或回車鍵;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public GUIText gt;
void Start(){ gt = GetComponent<GUIText>(); } //立鑽哥哥:void Start(){}
void Update(){ foreach(char c in Input.inputString){ if(c == “\b”[0]){ if(gt.text.Length != 0){ gt.text = gt.text.Substring(0, gt.text.Length - 1); } //立鑽哥哥:if(gt.text.Length != 0){} }else{ if(c == “\n”[0] || c == “\r”[0]){ Debug.Log(“立鑽哥哥:User entered his name: ” + gt.text); }else{ gt.text += c; } //立鑽哥哥:if(){}else{} } //立鑽哥哥:if(){}else{} } //立鑽哥哥:foreach(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.15、location
++B2.15、location |
++B2.15、location
++++立鑽哥哥:位置;
public static LocationService location; |
++++用於訪問設備位置信息(僅手持設備)(只讀);
++B2.16、mousePosition
++B2.16、mousePosition |
++B2.16、mousePosition
++++立鑽哥哥:鼠標位置;
public static Vector3 mousePosition; |
++++在屏幕座標空間當前鼠標的位置(只讀);
++++屏幕或窗口的左下角是座標系的(0,0)座標;右上角的座標是(屏幕寬度值,屏幕高度值);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public GameObject particle;
void Update(){ if(Input.GetButtonDown(“Fire1”)){ Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Physics.Raycast(ray)){ Instantiate(particle, transform.position, transform.rotation) as GameObject; } //立鑽哥哥:if(Physics.Raycast()){} } //立鑽哥哥:if(Input.GetButtonDown()){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.17、mouseScrollDelta
++B2.17、mouseScrollDelta |
++B2.17、mouseScrollDelta
++++立鑽哥哥:鼠標滾動增量;
public static Vector2 mouseScrollDelta; |
++++當前鼠標滾動增量(只讀);
++B2.18、multiTouchEnabled
++B2.18、multiTouchEnabled |
++B2.18、multiTouchEnabled
++++立鑽哥哥:啓用多點觸控;
public static bool multiTouchEnabled; |
++++指示系統是否啓用多點觸控;
++B2.19、simulateMouseWithTouches
++B2.19、simulateMouseWithTouches |
++B2.19、simulateMouseWithTouches
++++立鑽哥哥:鼠標模擬觸摸;
public static bool simulateMouseWithTouches; |
++++啓用/禁用鼠標模擬觸摸;默認情況下啓用此項;
++++如果啓用,多達三個併發觸摸轉換到各自的鼠標按鈕(例如:兩指點擊等於鼠標右鍵點擊);
++B2.20、touchCount
++B2.20、touchCount |
++B2.20、touchCount
++++立鑽哥哥:觸摸個數;
public static int touchCount; |
++++觸摸的數量;每一幀之內都一定不會改變(只讀);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ if(Input.touchCount > 0){ Debug.Log(Input.touchCount); } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.21、touches
++B2.21、touches |
++B2.21、touches
++++立鑽哥哥:觸摸列表;
public static Touch[] touches; |
++++返回代表上一幀所有的觸摸狀態的對象列表(只讀)(分配臨時變量);
++++每個記錄都代表着一個手指在屏幕上的觸碰狀態;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ int fingerCount = 0;
foreach(Touch touch in Input.touches){ if(touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled){ fingerCount++; } //立鑽哥哥:if(){} } //立鑽哥哥:foreach(){}
if(fingerCount > 0){ Debug.Log(“立鑽哥哥:User has ” + fingerCount + “ finger(s) touching the screen.”); } //立鑽哥哥:if(){}
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++B2.22、touchSupported
++B2.22、touchSupported |
++B2.22、touchSupported
++++立鑽哥哥:觸摸支持;
public static bool touchSupported; |
++++返回設備是否在當前運行的應用程序支持觸摸輸入;
++++並不是檢查平臺,使用此屬性確定是否遊戲應該觸摸輸入,有的平臺可以支持多種輸入方式;
#C3、Static Functions靜態函數
#C3、Static Functions靜態函數 |
++C3、Static Functions靜態函數++++C3.1、GetAccelerationEvent++++C3.2、GetAxis++++C3.3、GetAxisRaw++++C3.4、GetButton++++C3.5、GetButtonDown++++C3.6、GetButtonUp++++C3.7、GetJoystickNames++++C3.8、GetKey++++C3.9、GetKeyDown++++C3.10、GetKeyUp++++C3.11、GetMouseButton++++C3.12、GetMouseButtonDown++++C3.13、GetMouseButtonUp++++C3.14、GetTouch++++C3.15、IsJoystickPreconfigured++++C3.16、ResetInputAxes++++C3.17、YanlzXREngine.Input.StaticFunctions |
++C3.1、GetAccelerationEvent
++C3.1、GetAccelerationEvent |
++C3.1、GetAccelerationEvent
++++立鑽哥哥:獲取加速度事件;
public static AccelerationEvent GetAccelerationEvent(int index); |
++++返回上一幀發生的指定的加速度測量(不允許分配臨時變量);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ Vector3 acceleration = Vector3.zero;
int i = 0; while(i < Input.accelerationEventCount){ AccelerationEvent accEvent = Input.GetAccelerationEvent(i); acceleration += accEvent.acceleration * accEvent.deltaTime; ++i; } //立鑽哥哥:while(){}
Debug.Log(acceleration);
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.2、GetAxis
++C3.2、GetAxis |
++C3.2、GetAxis
++++立鑽哥哥:獲取軸;
public static float GetAxis(string axisName); |
++++根據axisName名稱返回虛擬輸入軸中的值;
++++使用鍵盤和鍵盤輸入時此值範圍在-1到1之間;如果座標軸設置爲鼠標運動增量,鼠標增量乘以座標軸靈敏度的範圍將不是-1到1;
++++該值和幀率無關;使用此值時,不需要關心不同的幀速率;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public float speed = 10.0F; public float rotationSpeed = 100.0F;
void Update(){ float translation = Input.GetAxis(“Vertical”) * speed; float rotation = Input.GetAxis(“Horizontal”) * rotationSpeed; translation *= Time.deltaTime; rotation *= Time.deltaTime; transform.Translate(0, 0, translation); transform.Rotate(0, rotation, 0); } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{}
|
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public float horizontalSpeed = 2.0F; public float verticalSpeed = 2.0F;
void Update(){ float h = horizontalSpeed * Input.GetAxis(“Mouse X”); float v = verticalSpeed * Input.GetAxis(“Mouse Y”); transform.Rotate(v, h, 0); } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.3、GetAxisRaw
++C3.3、GetAxisRaw |
++C3.3、GetAxisRaw
++++立鑽哥哥:獲取原始軸;
public static float GetAxisRaw(string axisName); |
++++通過axisName名稱返回一個不使用平滑濾波器的虛擬軸值;
++++鍵盤和搖桿取值範圍在-1...1之間,此輸入沒有使用平滑;鍵盤輸入必然會是-1、0、1;這一點在想自己處理鍵盤平滑輸入時很實用;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ float speed = Input.GetAxisRaw(“Horizontal”) * Time.deltaTime; transform.Rotate(0, speed, 0); } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.4、GetButton
++C3.4、GetButton |
++C3.4、GetButton
++++立鑽哥哥:獲取按鈕;
public static bool GetButton(string buttonName); |
++++當由“buttonName”確定的虛擬按鍵被按下時,返回true;
++++想象一下自動開火:如果按鈕一直被按住此方法將永遠返回true;
++++只有當執行像武器射擊這樣的事件時纔可用此方法,Input.GetAxis適用於各種運動行爲;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public GameObject projectile; public float fireRate = 0.5F; private float nextFire = 0.0F;
void Update(){ if(Input.GetButton(“Fire1”) && Time.time > nextFire){ nextFire = Time.time + fireRate; GameObject clone = Instantiate(projectile, transform.position, transform.rotation) as GameObject; } //立鑽哥哥:if(Input.GetButton()){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.5、GetButtonDown
++C3.5、GetButtonDown |
++C3.5、GetButtonDown
++++立鑽哥哥:獲取按鈕按下;
public static bool GetButtonDown(string buttonName); |
++++當用戶按下由buttonName名稱確定的虛擬按鈕的那一幀返回true;
++++需要在Update方法中調用這個方法,此後每一幀重置狀態時,它將不會返回true,除非用戶釋放此按鍵然後重新按下;
++++只有當執行像武器射擊這樣的事件時纔可用此方法,Input.GetAxis適用於各種運動行爲;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public GameObject projectile;
void Update(){ if(Input.GetButtonDown(“Fire1”)){ Instantiate(projectile, transform.position, transform.rotation) as GameObject; } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.6、GetButtonUp
++C3.6、GetButtonUp |
++C3.6、GetButtonUp
++++立鑽哥哥:獲取按鈕彈起;
public static bool GetButtonUp(string buttonName); |
++++在用戶釋放根據buttonName名稱的虛擬按鈕時返回true;
++++需要在Update方法中調用這個方法,此後每一幀重置狀態時,它將不會返回true,除非用戶按下這個按鈕然後重新釋放它;
++++只有當執行像武器射擊這樣的事件時纔可用此方法,Input.GetAxis適用於各種運動行爲;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public GameObject projectile;
void Update(){ //if(Input.GetButtonDown(“Fire1”)){ if(Input.GetButtonUp(“Fire1”)){ Instantiate(projectile, transform.position, transform.rotation) as GameObject; } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.7、GetJoystickNames
++C3.7、GetJoystickNames |
++C3.7、GetJoystickNames
++++立鑽哥哥:獲取搖桿名稱列表;
public static string[] GetJoystickNames(); |
++++返回一個用來描述已連接的搖桿的字符串數組;
++++可用用在用戶輸入配置界面,這樣就可以把顯示的標籤“Joystick1”換成意義更明確的名字,讀取不同控制器的值,需要分別爲各個搖桿在輸入管理器中分配軸;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ int i = 0; while(i < 4){ if(Mathf.Abs(Input.GetAxis(“Joy” + i + “X”)) > 0.2F || Mathf.Abs(Input.GetAxis(“Joy” + i + “Y”)) > 0.2F){ Debug.Log(Input.GetJoystickNames()[i] + “ is moved.”); } //立鑽哥哥:if(){}
i++; } //立鑽哥哥:while(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.8、GetKey
++C3.8、GetKey |
++C3.8、GetKey
++++立鑽哥哥:獲取鍵;
public static bool GetKey(string name);public static bool GetKey(KeyCode key); |
++++當用戶按下由name名稱確定的按鍵時,然後true;想想自動開火;
++++當用戶按下由KeyCode枚舉確定的按鍵時,然後true;
++++按鍵的標識符列表可以在輸入管理器中找到,當處理輸入時推薦使用Input.GetAxis和Input.GetButton,它們允許最終用戶自定義按鍵;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ if(Input.GetKey(“up”)){ Debug.Log(“立鑽哥哥:up arrow key is held down.”); } //立鑽哥哥:if(Input.GetKey(“up”)){}
if(Input.GetKey(“down”)){ Debug.Log(“立鑽哥哥:down arrow key is held down.”); } //立鑽哥哥:if(Input.GetKey(“down”)){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{}
|
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ //if(Input.GetKey(“up”)){ if(Input.GetKey(KeyCode.UpArrow)){ Debug.Log(“立鑽哥哥:up arrow key is held down.”); } //立鑽哥哥:if(Input.GetKey(KeyCode.UpArrwo)){}
//if(Input.GetKey(“down”)){ if(Input.GetKey(KeyCode.DownArrow)){ Debug.Log(“立鑽哥哥:down arrow key is held down.”); } //立鑽哥哥:if(Input.GetKey(“down”)){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.9、GetKeyDown
++C3.9、GetKeyDown |
++C3.9、GetKeyDown
++++立鑽哥哥:獲取鍵按下;
public static bool GetKeyDown(string name);public static bool GetKeyDown(KeyCode key); |
++++當用戶按下指定名稱的按鍵時的那一幀返回true;
++++當用戶按下映射到指定枚舉參數的按鍵時的那一幀返回true;
++++需要在Update方法中調用這個方法,因爲該狀態每幀獲得重置;除非用戶釋放這個按鈕然後重新按下它,否則將不會返回true;
++++按鍵的標識符列表可以在輸入管理器中找到,當處理輸入時推薦使用Input.GetAxis和Input.GetButton,它們允許最終用戶自定義按鍵;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ if(Input.GetKeyDown(“space”)){ Debug.Log(“立鑽哥哥:space key was pressed.”); } } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{}
|
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ //if(Input.GetKeyDown(“space”)){ if(Input.GetKeyDown(KeyCode.Space)){ Debug.Log(“立鑽哥哥:space key was pressed.”); } } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.10、GetKeyUp
++C3.10、GetKeyUp |
++C3.9、GetKeyUp
++++立鑽哥哥:獲取鍵彈起;
public static bool GetKeyUp(string name);public static bool GetKeyUp(KeyCode key); |
++++當用戶釋放給定名稱的按鍵時的那一幀返回true;
++++當用戶釋放給定鍵值的按鍵的那一幀返回true;
++++需要在Update方法中調用這個方法,因爲該狀態每幀獲得重置;除非用戶釋放這個按鈕然後重新按下它,否則將不會返回true;
++++按鍵的標識符列表可以在輸入管理器中找到,當處理輸入時推薦使用Input.GetAxis和Input.GetButton,它們允許最終用戶自定義按鍵;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ //if(Input.GetKeyDown(“space”)){ if(Input.GetKeyUp(“space”)){ Debug.Log(“立鑽哥哥:space key was released.”); } } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{}
|
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ //if(Input.GetKeyDown(KeyCode.Space)){ if(Input.GetKeyUp(KeyCode.Space)){ Debug.Log(“立鑽哥哥:space key was released.”); } } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.11、GetMouseButton
++C3.11、GetMouseButton |
++C3.11、GetMouseButton
++++立鑽哥哥:獲取鼠標按鈕;
public static bool GetMouseButton(int button); |
++++當指定的鼠標按鈕被按下時返回true;
++++button值設定爲:0對應左鍵,1對應右鍵,2對應中鍵;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ if(Input.GetMouseButton(0)){ Debug.Log(“立鑽哥哥:Pressed left click.”); } //立鑽哥哥:if(Input.GetMouseButton(0)){}
if(Input.GetMouseButton(1)){ Debug.Log(“立鑽哥哥:Pressed right click.”); } //立鑽哥哥:if(Input.GetMouseButton(1)){}
if(Input.GetMouseButton(2)){ Debug.Log(“立鑽哥哥:Pressed middle click.”); } //立鑽哥哥:if(Input.GetMouseButton(2)){}
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.12、GetMouseButtonDown
++C3.12、GetMouseButtonDown |
++C3.12、GetMouseButtonDown
++++立鑽哥哥:獲取鼠標按鈕按下;
public static bool GetMouseButtonDown(int button); |
++++在用戶按下指定鼠標按鍵的那一幀返回true;
++++需要在Update方法中調用這個方法,此後每一幀重置狀態時,它將不會返回true,除非用戶釋放這個鼠標按鈕然後重新按下它;按鈕值設定爲:0對應左鍵,1對應右鍵,2對應中鍵;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ //if(Input.GetMouseButton(0)){ if(Input.GetMouseButtonDown(0)){ Debug.Log(“立鑽哥哥:Pressed left click.”); } //立鑽哥哥:if(Input.GetMouseButtonDown(0)){}
//if(Input.GetMouseButton(1)){ if(Input.GetMouseButtonDown(1)){ Debug.Log(“立鑽哥哥:Pressed right click.”); } //立鑽哥哥:if(Input.GetMouseButtonDown(1)){}
//if(Input.GetMouseButton(2)){ if(Input.GetMouseButtonDown(2)){ Debug.Log(“立鑽哥哥:Pressed middle click.”); } //立鑽哥哥:if(Input.GetMouseButtonDown(2)){}
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.13、GetMouseButtonUp
++C3.13、GetMouseButtonUp |
++C3.13、GetMouseButtonUp
++++立鑽哥哥:獲取鼠標按鈕彈起;
public static bool GetMouseButtonUp(int button); |
++++在用戶釋放指定鼠標按鍵的那一幀返回true;
++++需要在Update方法中調用這個方法,此後每一幀重置狀態時,它將不會返回true;除非用戶釋放這個鼠標按鈕然後重新按下它;按鈕值設定爲:0對應左鍵,1對應右鍵,2對應中鍵;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void Update(){ //if(Input.GetMouseButtonDown(0)){ if(Input.GetMouseButtonUp(0)){ Debug.Log(“立鑽哥哥:Pressed left click.”); } //立鑽哥哥:if(Input.GetMouseButtonUp(0)){}
//if(Input.GetMouseButtonDown(1)){ if(Input.GetMouseButtonUp(1)){ Debug.Log(“立鑽哥哥:Pressed right click.”); } //立鑽哥哥:if(Input.GetMouseButtonUp(1)){}
//if(Input.GetMouseButtonDown(2)){ if(Input.GetMouseButtonUp(2)){ Debug.Log(“立鑽哥哥:Pressed middle click.”); } //立鑽哥哥:if(Input.GetMouseButtonUp(2)){}
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.14、GetTouch
++C3.14、GetTouch |
++C3.14、GetTouch
++++立鑽哥哥:獲取觸摸;
public static Touch GetTouch(int index); |
++++返回一個存放觸摸信息的對象(不允許分配臨時變量);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public float speed = 0.1F;
void Update(){ if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved){ //Get movement of the finger since last frame Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
//Move object across XY plane transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0); } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{}
|
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public GameObject projectile; public GameObject clone;
void Update(){ for(var i = 1; i < Input.touchCount; ++i){ if(Input.GetTouch(i).phase == TouchPhase.Began){ clone = Instantiate(projectile, transform.position, transform.rotation) as GameObject; } //立鑽哥哥:if(){} } //立鑽哥哥:for(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{}
|
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{ public GameObject particle;
void Update(){ for(var i = 1; i < Input.touchCount; ++i){ if(Input.GetTouch(i).phase == TouchPhase.Began){ //Construct a ray from the current touch coordinates Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
//Create a particle if hit if(Physics.Raycast(ray)){ Instantiate(particle, transform.position, transform.rotation) as GameObject; } //立鑽哥哥:if(Physics.Raycast()){} } //立鑽哥哥:if(Input.GetTouch(i).phase == TouchPhase.Began){} } //立鑽哥哥:for(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzInput{} |
++C3.15、IsJoystickPreconfigured
++C3.15、IsJoystickPreconfigured |
++C3.15、IsJoystickPreconfigured
++++立鑽哥哥:是否是預配置搖桿;
public static bool IsJoystickPreconfigured(string joystickName); |
++++[joystickName]:檢測搖桿的名稱(由Input.GetJoystickNames返回);
++++返回值:如果該搖桿已經配置返回true,否則返回false;
++++確定Unity是否一個特定的操縱桿模型已預先配置(僅Linux);
++++預配置的搖桿報告索引,對應按鍵和輸入軸按下面的順序;按鍵:A,B,X,Y,left,bumper,right bumper,select,start,guide,left stick press,right stick press;輸入軸:left stick x,left stick y,left trigger,right stick x,right stick y,right trigger,dpad horizontal,dpad vertical;
++C3.16、ResetInputAxes
++C3.16、ResetInputAxes |
++C3.16、ResetInputAxes
++++立鑽哥哥:重置輸入軸;
public static void ResetInputAxes(); |
++++在一幀中重置所有的輸入,重置輸入指令之後所有的方向軸都被設置爲0並且所有的按鍵都被設置爲0;
++++可以用在當在復活角色時,不想接受任何可能仍有按下的按鍵輸入時;(當玩家復活的瞬間並不應該接受用戶控制時);
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzInput : MonoBehaviour{
void MyTestFunc(){ Input.ResetInputAxes(); } //立鑽哥哥:void MyTestFunc(){}
} //立鑽哥哥:public class YanlzInput{} |
#D4、立鑽哥哥對Input類的拓展
#D4、立鑽哥哥對Input類的拓展 |
++++【Unity API】分類:https://blog.csdn.net/vrunsoftyanlz/category_7637520.html
++++[Unity快速入門]:https://blog.csdn.net/VRunSoftYanlz/article/details/105776475
++++[UnityAPI目錄]:https://blog.csdn.net/VRunSoftYanlz/article/details/106533906
++++[Application應用]:https://blog.csdn.net/VRunSoftYanlz/article/details/106086327
++++[Object對象]:https://blog.csdn.net/VRunSoftYanlz/article/details/106202194
++++[GameObject]:https://blog.csdn.net/VRunSoftYanlz/article/details/106223815
++++[MonoBehaviour]:https://blog.csdn.net/VRunSoftYanlz/article/details/106533256
++++[Component組件]:https://blog.csdn.net/VRunSoftYanlz/article/details/106367004
++++[Transform變換]:https://blog.csdn.net/VRunSoftYanlz/article/details/106607761
++++[Camera攝像機]:https://blog.csdn.net/VRunSoftYanlz/article/details/106148837
++++[Shader着色器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106321040
++++[Material材質]:https://blog.csdn.net/VRunSoftYanlz/article/details/81814303
++++[Physics物理]:https://blog.csdn.net/VRunSoftYanlz/article/details/106268062
++++[Collider碰撞器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106696886
++++[Rigidbody剛體]:https://blog.csdn.net/VRunSoftYanlz/article/details/106698042
++++[Joint關節]:https://blog.csdn.net/VRunSoftYanlz/article/details/106771226
++++[RaycastHit]:https://blog.csdn.net/VRunSoftYanlz/article/details/106292370
++++[ParticleSystem]:https://blog.csdn.net/VRunSoftYanlz/article/details/106341995
++++[WWW萬維網]:https://blog.csdn.net/VRunSoftYanlz/article/details/106412890
++++[LineRenerer]:https://blog.csdn.net/VRunSoftYanlz/article/details/106306388
++++[WheelCollider]:https://blog.csdn.net/VRunSoftYanlz/article/details/82356217
++++[MovieTexture]:https://blog.csdn.net/VRunSoftYanlz/article/details/106434063
++++[Resources資源]:https://blog.csdn.net/VRunSoftYanlz/article/details/106818524
++++[Network網絡]:https://blog.csdn.net/VRunSoftYanlz/article/details/106795026
++++[Collision碰撞]:https://blog.csdn.net/VRunSoftYanlz/article/details/106697669
++++[Matrix4x4矩陣]:https://blog.csdn.net/VRunSoftYanlz/article/details/106504027
++++[Renerer渲染器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106481994
++++[AudioSource]:https://blog.csdn.net/VRunSoftYanlz/article/details/106462679
++++[AudioClip]:https://blog.csdn.net/VRunSoftYanlz/article/details/106448955
++++[Texture紋理]:https://blog.csdn.net/VRunSoftYanlz/article/details/106448589
++++[AssetBundle]:https://blog.csdn.net/VRunSoftYanlz/article/details/106412190
++++[ScriptableObject]:https://blog.csdn.net/VRunSoftYanlz/article/details/106392769
@@提示:有些博客可能只是開了頭,如果感興趣的同學,可以“點贊”或“評論區留言”,只要關注的同學多了,那就會繼續完善喲!(“++==”,表示沒有寫完的,如果關注度不高就不完善了;“++ok++”,表示此篇博客已經完成,是階段性完整的!)
++++VR雲遊戲=Unity+SteamVR+雲技術+5G+AI;(說明:AI人工智能不是我們的主要研究技術,只是瞭解一下,領略一下有風的感覺!但是,VR是我們的研究重點)
++++【Unity API】分類:https://blog.csdn.net/vrunsoftyanlz/category_7637520.html
++++【Unity開發基礎】分類:https://blog.csdn.net/vrunsoftyanlz/category_7309057.html
++++【Linux系統編程】分類:https://blog.csdn.net/vrunsoftyanlz/category_9694767.html
++++【C++C鑄就生存利器】分類:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html
++++【人工智能AI2026】分類:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html
++++【立鑽哥哥CSDN空間】:https://blog.csdn.net/VRunSoftYanlz/
【XR遊戲開發QQ羣:784477094】
++立鑽哥哥推薦的拓展學習鏈接(Link_Url):
立鑽哥哥推薦的拓展學習鏈接(Link_Url) |
++++立鑽哥哥Unity 學習空間: http://blog.csdn.net/VRunSoftYanlz/
++++虛擬現實VR資訊: https://blog.csdn.net/VRunSoftYanlz/article/details/89165846
++++HTC_VIVE開發基礎:https://blog.csdn.net/VRunSoftYanlz/article/details/81989970
++++Oculus雜談:https://blog.csdn.net/VRunSoftYanlz/article/details/82469850
++++Oculus安裝使用:https://blog.csdn.net/VRunSoftYanlz/article/details/82718982
++++Unity+SteamVR=>VR:https://blog.csdn.net/VRunSoftYanlz/article/details/88809370
++++Unity減少VR暈眩症:https://blog.csdn.net/VRunSoftYanlz/article/details/89115518
++++SteamVR簡介:https://blog.csdn.net/VRunSoftYanlz/article/details/86484254
++++SteamVR腳本功能分析:https://blog.csdn.net/VRunSoftYanlz/article/details/86531480
++++SteamVR2.0開發指南:https://blog.csdn.net/VRunSoftYanlz/article/details/86618187
++++SteamVR2.2.0開發指南:https://blog.csdn.net/VRunSoftYanlz/article/details/88784527
++++SteamVR2.2.0快速入門:https://blog.csdn.net/VRunSoftYanlz/article/details/88833579
++++SteamVR2.2.0交互系統:https://blog.csdn.net/VRunSoftYanlz/article/details/89199778
++++SteamVR2.2.0傳送機制:https://blog.csdn.net/VRunSoftYanlz/article/details/89390866
++++SteamVR2.2.0教程(一):https://blog.csdn.net/VRunSoftYanlz/article/details/89324067
++++SteamVR2.2.0教程(二):https://blog.csdn.net/VRunSoftYanlz/article/details/89894097
++++SteamVR_Skeleton_Poser:https://blog.csdn.net/VRunSoftYanlz/article/details/89931725
++++SteamVR實戰之PMCore:https://blog.csdn.net/VRunSoftYanlz/article/details/89463658
++++SteamVR/Extras:https://blog.csdn.net/VRunSoftYanlz/article/details/86584108
++++SteamVR/Input:https://blog.csdn.net/VRunSoftYanlz/article/details/86601950
++++OpenXR簡介:https://blog.csdn.net/VRunSoftYanlz/article/details/85726365
++++VRTK雜談:https://blog.csdn.net/VRunSoftYanlz/article/details/82562993
++++VRTK快速入門(雜談):https://blog.csdn.net/VRunSoftYanlz/article/details/82955267
++++VRTK官方示例(目錄):https://blog.csdn.net/VRunSoftYanlz/article/details/82955410
++++VRTK代碼結構(目錄):https://blog.csdn.net/VRunSoftYanlz/article/details/82780085
++++VRTK(SceneResources):https://blog.csdn.net/VRunSoftYanlz/article/details/82795400
++++VRTK_ControllerEvents:https://blog.csdn.net/VRunSoftYanlz/article/details/83099512
++++VRTK_InteractTouch:https://blog.csdn.net/VRunSoftYanlz/article/details/83120220
++++虛擬現實行業應用:https://blog.csdn.net/VRunSoftYanlz/article/details/88360157
++++Steam平臺上的VR:https://blog.csdn.net/VRunSoftYanlz/article/details/88960085
++++Steam平臺熱銷VR:https://blog.csdn.net/VRunSoftYanlz/article/details/89007741
++++VR實驗:以太網幀的構成:https://blog.csdn.net/VRunSoftYanlz/article/details/82598140
++++實驗四:存儲器擴展實驗:https://blog.csdn.net/VRunSoftYanlz/article/details/87834434
++++FrameVR示例V0913:https://blog.csdn.net/VRunSoftYanlz/article/details/82808498
++++FrameVR示例V1003:https://blog.csdn.net/VRunSoftYanlz/article/details/83066516
++++SwitchMachineV1022:https://blog.csdn.net/VRunSoftYanlz/article/details/83280886
++++PlaySceneManagerV1022:https://blog.csdn.net/VRunSoftYanlz/article/details/83280886
++++Unity5.x用戶手冊:https://blog.csdn.net/VRunSoftYanlz/article/details/81712741
++++Unity面試題ABC:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++Unity面試題D:https://blog.csdn.net/VRunSoftYanlz/article/details/78630838
++++Unity面試題E:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity面試題F:https://blog.csdn.net/VRunSoftYanlz/article/details/78630945
++++Cocos2dx面試題:https://blog.csdn.net/VRunSoftYanlz/article/details/78630967
++++禪道[zentao]:https://blog.csdn.net/VRunSoftYanlz/article/details/83964057
++++Lua快速入門篇(Xlua拓展):https://blog.csdn.net/VRunSoftYanlz/article/details/81173818
++++Lua快速入門篇(XLua教程):https://blog.csdn.net/VRunSoftYanlz/article/details/81141502
++++Lua快速入門篇(基礎概述):https://blog.csdn.net/VRunSoftYanlz/article/details/81041359
++++框架知識點:https://blog.csdn.net/VRunSoftYanlz/article/details/80862879
++++遊戲框架(UI框架夯實篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80781140
++++遊戲框架(初探篇):https://blog.csdn.net/VRunSoftYanlz/article/details/80630325
++++.Net框架設計:https://blog.csdn.net/VRunSoftYanlz/article/details/87401225
++++從零開始學架構:https://blog.csdn.net/VRunSoftYanlz/article/details/88095895
++++設計模式簡單整理:https://blog.csdn.net/vrunsoftyanlz/article/details/79839641
++++專題:設計模式(精華篇):https://blog.csdn.net/VRunSoftYanlz/article/details/81322678
++++U3D小項目參考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++Unity小遊戲算法分析:https://blog.csdn.net/VRunSoftYanlz/article/details/87908365
++++Unity案例(Vehicle):https://blog.csdn.net/VRunSoftYanlz/article/details/82355876
++++UML類圖:https://blog.csdn.net/vrunsoftyanlz/article/details/80289461
++++PowerDesigner簡介:https://blog.csdn.net/VRunSoftYanlz/article/details/86500084
++++Unity知識點0001:https://blog.csdn.net/vrunsoftyanlz/article/details/80302012
++++Unity知識點0008:https://blog.csdn.net/VRunSoftYanlz/article/details/81153606
++++U3D_Shader編程(第一篇:快速入門篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372071
++++U3D_Shader編程(第二篇:基礎夯實篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372628
++++Unity引擎基礎:https://blog.csdn.net/vrunsoftyanlz/article/details/78881685
++++Unity面向組件開發:https://blog.csdn.net/vrunsoftyanlz/article/details/78881752
++++Unity物理系統:https://blog.csdn.net/vrunsoftyanlz/article/details/78881879
++++Unity2D平臺開發:https://blog.csdn.net/vrunsoftyanlz/article/details/78882034
++++UGUI基礎:https://blog.csdn.net/vrunsoftyanlz/article/details/78884693
++++UGUI進階:https://blog.csdn.net/vrunsoftyanlz/article/details/78884882
++++UGUI綜合:https://blog.csdn.net/vrunsoftyanlz/article/details/78885013
++++Unity動畫系統基礎:https://blog.csdn.net/vrunsoftyanlz/article/details/78886068
++++Unity動畫系統進階:https://blog.csdn.net/vrunsoftyanlz/article/details/78886198
++++Navigation導航系統:https://blog.csdn.net/vrunsoftyanlz/article/details/78886281
++++Unity特效渲染:https://blog.csdn.net/vrunsoftyanlz/article/details/78886403
++++Unity數據存儲:https://blog.csdn.net/vrunsoftyanlz/article/details/79251273
++++Unity中Sqlite數據庫:https://blog.csdn.net/vrunsoftyanlz/article/details/79254162
++++WWW類和協程:https://blog.csdn.net/vrunsoftyanlz/article/details/79254559
++++Unity網絡:https://blog.csdn.net/vrunsoftyanlz/article/details/79254902
++++Unity資源加密:https://blog.csdn.net/VRunSoftYanlz/article/details/87644514
++++PhotonServer簡介:https://blog.csdn.net/VRunSoftYanlz/article/details/86652770
++++編寫Photon遊戲服務器:https://blog.csdn.net/VRunSoftYanlz/article/details/86682935
++++C#事件:https://blog.csdn.net/vrunsoftyanlz/article/details/78631267
++++C#委託:https://blog.csdn.net/vrunsoftyanlz/article/details/78631183
++++C#集合:https://blog.csdn.net/vrunsoftyanlz/article/details/78631175
++++C#泛型:https://blog.csdn.net/vrunsoftyanlz/article/details/78631141
++++C#接口:https://blog.csdn.net/vrunsoftyanlz/article/details/78631122
++++C#靜態類:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String類:https://blog.csdn.net/vrunsoftyanlz/article/details/78630945
++++C#數據類型:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity3D默認的快捷鍵:https://blog.csdn.net/vrunsoftyanlz/article/details/78630838
++++遊戲相關縮寫:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++UnityAPI.Rigidbody剛體:https://blog.csdn.net/VRunSoftYanlz/article/details/81784053
++++UnityAPI.Material材質:https://blog.csdn.net/VRunSoftYanlz/article/details/81814303
++++UnityAPI.Android安卓:https://blog.csdn.net/VRunSoftYanlz/article/details/81843193
++++UnityAPI.AndroidJNI安卓JNI:https://blog.csdn.net/VRunSoftYanlz/article/details/81879345
++++UnityAPI.Transform變換:https://blog.csdn.net/VRunSoftYanlz/article/details/81916293
++++UnityAPI.WheelCollider輪碰撞器:https://blog.csdn.net/VRunSoftYanlz/article/details/82356217
++++UnityAPI.Resources資源:https://blog.csdn.net/VRunSoftYanlz/article/details/83155518
++++JSON數據結構:https://blog.csdn.net/VRunSoftYanlz/article/details/82026644
++++CocosStudio快速入門:https://blog.csdn.net/VRunSoftYanlz/article/details/82356839
++++Unity企業內訓(目錄):https://blog.csdn.net/VRunSoftYanlz/article/details/82634668
++++Unity企業內訓(第1講):https://blog.csdn.net/VRunSoftYanlz/article/details/82634733
++++Unity企業內訓(第2講):https://blog.csdn.net/VRunSoftYanlz/article/details/82861180
++++Unity企業內訓(第3講):https://blog.csdn.net/VRunSoftYanlz/article/details/82927699
++++Unity企業內訓(第4講):https://blog.csdn.net/VRunSoftYanlz/article/details/83479776
++++Unity企業內訓(第5講):https://blog.csdn.net/VRunSoftYanlz/article/details/83963811
++++Unity企業內訓(第6講):https://blog.csdn.net/VRunSoftYanlz/article/details/84207696
++++鑽哥帶您瞭解產品原型:https://blog.csdn.net/VRunSoftYanlz/article/details/87303828
++++插件<Obi Rope>:https://blog.csdn.net/VRunSoftYanlz/article/details/83963905
++++計算機組成原理(教材篇):https://blog.csdn.net/VRunSoftYanlz/article/details/82719129
++++5G接入:雲計算和霧計算:https://blog.csdn.net/VRunSoftYanlz/article/details/88372718
++++雲計算通俗講義:https://blog.csdn.net/VRunSoftYanlz/article/details/88652803
++++立鑽哥哥Unity 學習空間: http://blog.csdn.net/VRunSoftYanlz
--_--VRunSoft:lovezuanzuan--_--