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