Unity常用事件函数与变量
一、常用必然事件
Awake:腳本實例被創建時調用(用于游戲對象的初始化,注意Awake的執行早于所有腳本的Start函數)
Start:?Update函數第一次運行之前調用(用于游戲對象的初始化)
Reset: 用戶點擊檢視面板的Reset按鈕或者首次添加該組件時被調用。此函數只在編輯模式下被調用。Reset最常用于在檢視面板中給定一個最常用的默認值。
Update:每幀調用一次(用于更新游戲場景和狀態)
FixedUpdate:每個固定物理時間間隔調用一次(用于物理引擎的參數更新)
LateUpdate:每幀調用一次,在Update之后(用于更新游戲場景和狀態,和相機有關的更新一般放在這里)
??
?
二、常用的事件響應函數
OnMouseEnter:鼠標移入GUI控件或者碰撞體時調用
OnMouseOver:鼠標停留在GUI控件或者碰撞體時調用
OnMouseExit:鼠標移出GUI控件或者碰撞體時調用
OnMouseDown:鼠標在GUI控件或者碰撞體上按下時調用
OnMouseUp:鼠標按鍵釋放時調用
?
OnTriggerEnter:與其他碰撞體進入觸發器時調用
OnTriggerExit:與其他碰撞體離開觸發器時調用
OnTriggerStay:當其他碰撞體停留在觸發器時調用
?
OnCollisionEnter:當碰撞體或者剛體與其他碰撞體或者剛體接觸時調用
OnCollisionExit:當碰撞體或者剛體與其他碰撞體或者剛體停止接觸時調用
OnCollisionStay:當碰撞體或者剛體與其他碰撞體或者剛體保持接觸時調用
?
OnControllerColliderHit:當控制器移動時與碰撞體發生碰撞時調用
OnDestroy:腳本銷毀時調用
OnGUI:渲染GUI和處理GUI消息時調用
?
OnBecameVisible:對于任意一個相機可見時調用
OnBecameInVisible:對于任意一個相機不可見時調用
?
OnEnable:對象啟用或者激活時調用
OnDisable:對象禁用或者取消激活時調用
?特意找了一張圖,來說明各個函數的運行順序:
?
三、GameObject類中常用成員變量
name:繼承與父類Object,對象的名稱
tag:游戲對象的標簽tag
layer:游戲對象所在的層layer,范圍為[0...31]
activeSelf:游戲對象自身的激活狀態
transform:游戲對象上的Transform組件,設置對象位置、旋轉、縮放
rigidbody:游戲對象上的Rigidbody組件,設置物理引擎的剛體屬性
camera:游戲對象上的Camera組件,設置相機屬性
light:游戲對象上的Light組件,設置燈光屬性
animation:游戲對象上的Animation組件,設置動畫屬性
renderer:游戲對象上的Renderer組件,渲染物體模型
audio:游戲對象上的AudioSource組件,設置聲音屬性
?
?
?
四、GameObject類中常用成員函數
Find:靜態函數,根據名稱查找游戲對象
FindWithTag:靜態函數,根據標簽查找第一個符合條件的游戲對象
FindGameObjectsWithTag:靜態函數,根據標簽查找所有符合條件的游戲對象
CreatePrimitive:靜態函數,創建一個基本形體的游戲對象(如正方體,球體等)
SetActive:激活/取消激活游戲對象
GetComponent:獲取游戲對象
GetComponentInChildren:獲取游戲對象或其子對象上指定類型的第一個組件
GetComponents:獲取游戲對象上指定類型的所有組件
AddComponent:為游戲對象添加指定組件
SendMessage:調用游戲對象上所有MonoBehaviour的指定名稱方法
SendMessageUpwards:調用游戲對象及其所有父對象上所有MonoBehaviour的指定名稱方法
BroadcastMessage:調用游戲對象及其所有父對象上所有MonoBehaviour的指定名稱方法
CompareTag:比較游戲對象的標簽
?
?
?
?
五、GameObject類繼承自Object類的常用函數
Destroy:刪除一個游戲物體、組件或資源
DestroyImmediate:立即銷毀物體obj,強烈建議使用Destroy替代
Instantiate:克隆原始物體,并返回克隆的物體
DontDestroyOnLoad:加載新場景的時候使目標不被自動銷毀
FindObjectOfType:返回Type類型第一個激活的加載的物體
?
?
?
六、Transform組件常用屬性
position:在世界坐標系中,transform的位置
localPosition:相對于父級的變換的位置
eulerAngles:世界坐標系中以歐拉角表示的旋轉
localEulerangles:在世界坐標系中物體變換的旋轉角度作為Quaternion儲存
parent:返回物體變換的父級
root:返回最高層次的游戲物體的變換
七、Transform類中的常用函數
Translate:按指定的方向和距離平移
Rotate:按指定的歐拉角旋轉
RotateAround:按給定旋轉軸和旋轉角度旋轉
LookAt:旋轉使得自身的前方向指向目標的位置
Find:通過名字查找子物體并返回,返回值類型為transform
IsChildOf:判斷是否是指定對象的子對象
TransformDirection:將一個向量從局部坐標系變換到世界坐標系
TransformPoint:將一個位置從局部坐標系變換到世界坐標系
InverseTransformDirection:將一個方位從世界坐標系變換到局部坐標系
InverseTransformPoint:將一個位置從世界坐標系變換到局部坐標系
八、組件相關函數
GetComponent:得到指定名稱的組件
GetComponents:得到組件列表(用于有多個同類型組件的時候)
GetComponentInChildren:得到對象或對象子物體上的組件
GetComponentsInChildren:得到對象或對象子物體上的組件列表
?
?
?
九、Time類的成員變量
time:游戲從開始到現在經歷的時間(秒)(只讀)
deltaTime:上一幀消耗的時間(只讀)
fixedTime:最近FixedUpdate的時間,該時間從游戲開始計算
fixedDeltaTime:物理引擎和FixedUpdate的更新時間間隔
timeSinceLevelLoad:此幀的開始時間(只讀)。這是以秒計算到最后的關卡已經完成加載的時間
maximumDeltaTime:一幀消耗的最大時間。物理和其他固定幀速率更新
smoothDeltaTime:Time.deltaTime的平滑淡出
timescale:傳遞時間的縮放,可以用于制作減慢運動效果
frameCount:已渲染的幀的總數(只讀)
realtimeSinceStartup:以秒計,以游戲開始的實際時間(只讀),該時間不會受timescale的影響
captureFramerate:固定幀率設置
?
?
?
十、Random類的成員變量
seed:隨機數生成器的種子
value:返回一個0~1之間的隨機浮點數,包涵0,1
insideUnitSpere:返回位于半徑為1的球體內的一個隨機點(只讀)
insideUnitCircle:返回位于半徑為1的圓內的一個隨機點(只讀)
onUnitSphere:返回半徑為1的球面上的一個隨機點(只讀)
rotation:返回一個隨機旋轉(只讀)
rotationUniform:返回一個均勻分布的隨機旋轉(只讀)
?
?
?
十一、Random類的成員函數
Range:返回min和max之間的一個隨機浮點數,包涵min和max
Range:返回min和max之間的一個隨機整數,包涵min和max
?
?
?
十二、Mathf類的變量
PI:????圓周率π,即3.1415926···(只讀)
Infinity:? ? ??正無窮大(只讀)
NegativeInfinity:負無窮大(只讀)
Deg2Rad:???度到弧度的轉換系數(只讀)
Rad2Deg: ? ?弧度到度的轉換系數(只讀)
Epsilon: ? ? ? 一個很小的浮點數
?
?
?
十三、Mathf類的常用方法
Sin:計算角度(單位為弧度,下同)的正弦值
Cos:計算角度的余弦值
Tan:計算角度的正切值
Asin:計算反正弦值(返回的角度值單位為弧度,下同)
Acos:計算反余弦值
Atan:計算反正切值
?
Sqrt:計算平方根
Abs:計算絕對值
Min:返回最小值
Max:返回最大值
Pow:Pow(f,p)返回f的p次方
Exp:Exp(p)返回e的p次方
Log:計算對數
Log10:計算基數為10的對數
Clamp:將數值限制在min和max之間
Clamp01:將數值限制在0~1之間
Ceil:Ceil(f)返回大于或等于f的最小整數
Floor:Floor(f)返回小于或等于f的最大整數
Round:Round(f)返回浮點數f進行四舍五入得到的整數
?
?
?
十四、Input類中的常用變量
mousePosition:鼠位置的像素坐標(只讀)
anyKey:是否有按鍵按下(只讀)
anyKeyDown:當有任意按鍵按下的第一幀返回true(只讀)
inputString:得到當前幀的鍵盤輸入字符串
touches:當前所有觸摸狀態列表(只讀)
touchCount:當前所有觸摸列表長度(只讀)
multiTouchEnable:系統是否支持多點觸控
gyro:返回默認的陀螺儀
compensateSensors:是否需要根據屏幕方向補償感應器
?
?
十五、Input類中的常用函數
GetAxis: ? ? ? ? ? ? ? ?根據名稱得到虛擬輸入軸的值
GetAxisRaw: ? ? ? ? 根據名稱得到虛擬坐標軸的未使用平滑過濾得值
?
GetButton: ? ? 指定名稱的虛擬按鍵被按下,那么返回true
GetButtonDown: 指定名稱的虛擬按鍵被按下的那一幀返回true
GetButtonUp:??指定名稱的虛擬按鍵被松開的那一幀返回true
?
GetKey:? ? ? ?當指定的按鍵被按下時返回true
GetKeyDown:? ?當指定的按鍵被按下的那一幀返回true
GetKeyUp:????當指定的按鍵被松開的那一幀返回true
?
GetMouseDown:??指定的鼠標按鍵按下時返回true
GetMouseButtonDown:指定的鼠標按鍵按下的那一幀返回true
GetMouseButtonUp: 指定的鼠標按鍵松開的那一幀返回true
?
GetTouch: ? ????????????????返回指定的觸摸數據對象
ResetInputAxes:???重置所有輸入,調用該方法之后所有方向軸和按鍵的數值都變為0
?
GetAccelerationEvent:返回指定的上一幀加速度測量數據(不分配臨時變量)
GetTouch: ? ????????????????返回指定的觸摸數據對象(不分配臨時變量)
?
?
?
十六、Input類中和鼠標輸入有關的變量和方法
compensateSensors:是否需要根據屏幕方向補償感應器
gyro:返回默認的陀螺儀
mousePosition:鼠標位置的像素坐標(只讀)
anyKey:是否有按鍵按下(只讀)
anyKeyDown:當有任意按鍵按下的第一幀返回true(只讀)
inputString:得到當前幀的鍵盤輸入字符串(只讀)
acceleration:得到設備當前在三維空間中的線性加速度(只讀)
accelerationEvents得到上一幀的加速的數據列表(只讀)(分配臨時變量)
accelerationEventsCount:得到上一幀的加速度參數數據長度
touches:當前所有觸摸狀態列表(只讀)(分配臨時變量)
touchCount:當前所有觸摸狀態列表長度(只讀)
multiTouchEnabled:系統是否支持多點觸摸
loaction:設備當前的位置屬性(僅支持手持設備)(只讀)
campass:羅盤屬性(僅支持手持設備)(只讀)
deviceOrientation:操作系統提供的設備方向(只讀)
imeCompositionMode:設置IME組合模式?
compositionString:用戶通過IME輸入的組合字符串?
compositionCursorPos:當前IME組合字符串的光標位置
imelsSelected:當前是否啟用了IME輸入鍵盤
十七、常用按鍵的按鍵名與KeyCode編碼
None ???????????????????????????????? Not assigned (never is pressed)未分配(永不被按下)。
Backspace ???????????????????????? The backspace key //退格鍵。
Delete???????????????????????????????? The forward delete key //正向刪除鍵。
Tab ???????????????????????????????????? The tab key //制表鍵。
Clear ???????????????????????????????????The Clear key //清除鍵。
Return ???????????????????????????????? Return key //回車鍵。
Pause ???????????????????????????????????Pause on PC machines //PC上的暫停鍵。
Escape ????????????????????????????? ? ?Escape key //退出鍵。
Space ???????????????????????????????????Space key //空格鍵。
Keypad0 ???????????????????????????????Numeric keypad 0 //數字小鍵盤0。
Keypad1 ????????????????????????? ? ?? Numeric keypad 1 //數字小鍵盤1。
Keypad2 ????????????????????????? ? ?? Numeric keypad 2 //數字小鍵盤2。
Keypad3 ????????????????????????? ? ?? Numeric keypad 3 //數字小鍵盤3。
KeypadPeriod ????????????????? ? ?? Numeric keypad '.' // 數字小鍵盤的句點'.'。
KeypadDivide ????????????????? ? ?? Numeric keypad '/' // 數字小鍵盤的除號'/'。
KeypadMultiply ????????????????????Numeric keypad '*' //數字小鍵盤的乘號 '*'。
KeypadMinus ???????????????????????Numeric keypad '-' //數字小鍵盤的減號 '-'。
KeypadPlus ????????????????????? ? ?? Numeric keypad '+' //數字小鍵盤的加號 '+'。
KeypadEnter ?????????????????????????Numeric keypad enter //數字小鍵盤的回車鍵。
KeypadEquals ???????????????????????Numeric keypad '=' //數字小鍵盤的等號鍵'='。
UpArrow ???????????????????????????????Up arrow key //上箭頭鍵。
DownArrow ????????????????????? ? ? Down arrow key //下箭頭鍵。
RightArrow ????????????????????? ? ?? Right arrow key //右箭頭鍵。
LeftArrow ????????????????????????? ? ? Left arrow key //左箭頭鍵。
Insert ???????????????????????????????????? Insert key key //插入鍵。
Home ????????????????????????????????????Home key //起始鍵。
End ????????????????????????????????? ? ? ? End key //結束鍵。
PageUp ???????????????????????????????? Page up //上頁。
PageDown ????????????????????????????Page down //下頁。
Alpha0 ????????????????????????????? ? ? The '0' key on the top of the alphanumeric keyboard.鍵盤頂部的數字鍵'0'。
Alpha1 ????????????????????????????? ? ? The '1' key on the top of the alphanumeric keyboard.鍵盤頂部的數字鍵'1'。
Alpha2 ????????????????????????????? ? ??The '2' key on the top of the alphanumeric keyboard.鍵盤頂部的數字鍵'2'。
Exclaim ????????????????????????????? ? ? Explaim key //感嘆號鍵'!'。
DoubleQuote ????????????????????????Double quote key //雙引號鍵。
Hash ????????????????????????????????? ? ? Hash key //哈希鍵。
Dollar ????????????????????????????????????Dollar sign key //美元符號鍵。
Ampersand ???????????????????????????Ampersand key //和, ?&(and 的符號)鍵。
Quote ????????????????????????????? ? ? ?Quote key //單引號鍵。
LeftParen ??????????????????????????????Left Parent key //左括號鍵。
RightParen ????????????????????? ? ?? Right Parent key //右括號鍵。
Asterisk ????????????????????????????????Asterisk key //星號鍵 * 。
Plus ????????????????????????????????? ? ? Plus key //加號鍵 + 。
Comma ????????????????????????????????Comma ',' key //逗號鍵 , 。
Minus ??????????????????????????????????Minus '-' key //減號鍵 - 。
Period ??????????????????????????????????Period '.' key //句號鍵 . 。
Slash ????????????????????????????????????Slash '/' key //斜杠鍵 / 。
Colon ????????????????????????????? ? ?? Colon ':' key //冒號鍵 : 。
Semicolon ????????????????????????????Semicolon ';' key //分號鍵 ; 。
Less ??????????????????????????????????????Less '<' key //小于號鍵 < 。
Equals ??????????????????????????????????Equals '=' key //等于號鍵 = 。
Greater ????????????????????????????? ? Greater '>' key //大于號鍵 > 。
Question ?????????????????????????????Question mark '?' key //問號鍵 ? 。
At ????????????????????????????????? ? ? ?? At key //@符號鍵。
LeftBracket ??????????????????????????Left bracket key //左方括號鍵 [ 。
Backslash ????????????????????? ? ? ?? Backslash key //反斜杠鍵 \ 。
RightBracket ????????????????? ? ? ? Right bracket key //右方括號鍵 ] 。
Caret????????????????????????????????? ? ?Caret key //脫字符鍵 ^ 。
Underscore ??????????????????????????Underscore '_' key //下劃線鍵 _ 。
BackQuote ????????????????????? ? ? ?Back quote key //反引號鍵 。
A ?????????????????????????????????????????? 'a' key // a鍵
B????????????????????????????????????? ? ? ? 'b' key // b鍵
C????????????????????????????????????? ? ? ? 'c' key // c鍵
Numlock ????????????????????? ? ? ? ?? Numlock key //數字鎖定鍵 。
CapsLock ????????????????????????? ? ?? Capslock key //大寫鎖定鍵 。
ScrollLock ????????????????????????? ? ?? Scroll lock key //滾動鎖定鍵 。
RightShift ????????????????????????? ? ?? Right shift key //右上檔鍵。
LeftShift??????????????????????????????????Left shift key //左上檔鍵。
RightControl ????????????????????? ? ? Right Control key //右控制鍵。
LeftControl????????????????????????? ? ? Left Control key //左控制鍵。
RightAlt ??????????????????????????????????Right Alt key //右更改鍵。
LeftAlt ???????????????????????????????????? Left Alt key //左更改鍵。
LeftApple ????????????????????????? ? ? ? Left Apple key //左蘋果鍵。
LeftWindows????????????????????? ? ? ??Left Windows key //左Windows鍵。
RightApple????????????????????????? ? ?? Right Apple key //右蘋果鍵。
RightWindows ???????????????????????? Right Windows key //右Windows鍵。
AltGr ???????????????????????????????????????? Alt Gr key //右側更改鍵。
Help ???????????????????????????????????????? Help key //幫助鍵。
Print ???????????????????????????????????????? Print key //打印鍵。
SysReq??????????????????????????????????????Sys Req key //系統請求鍵。
Break?????????????????????????????????????????Break key //中斷鍵。
Menu ???????????????????????????????????????Menu key //菜單鍵。
Mouse0 ????????????????????????????????????First (primary) mouse button 第一個(主)鼠標鍵(鼠標左鍵)。
Mouse1 ????????????????????????????????? ? Second (secondary) mouse button第二個(次)鼠標鍵(鼠標右鍵)。
Mouse2 ????????????????????????????????????Third mouse button //第三個鼠標鍵(鼠標中鍵)。
注:有些鍵可以類推的我就不一一列舉了~大家以此類推既是。
?
?
十八、Random類的成員函數
Range(min,max) 返回一個min和max之間的一個隨機數
Next()????? 返回一個大于或等于零而小于2,147,483,647的數
Next(int max) 返回一個小于所指定最大值的正隨機數
Next(int min,int max)返回一個指定范圍內的隨機數
NextBytes 用隨機數填充指定字節數組的元素
NextDouble 返回一個介于0.0和1.0之間的隨機數
Sample 返回一個介于0.0和1.0之間的隨機數,只允許子類對象訪問
?
?
?
?
為此特意找了一張圖,來說明各個函數的運行順序:總結
以上是生活随笔為你收集整理的Unity常用事件函数与变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 热爱生活热爱工作才是第一位的
- 下一篇: HDU 2977 Color Squar