Unity3D 指令碼架構

2021-06-22 10:26:35 字數 1421 閱讀 3869

lateupdate():如果啟用,會在每一幀中被呼叫。在所有update函式被呼叫之後才執行。有利於程式的有序執行。(例如:跟隨攝像機就應該在lateupdate執行,因為它跟隨的物件也許需要在update中執行)  

onprecull():攝像機在場景中剔除物件前被呼叫。剔除確定哪些物件是在攝像機中是可見的。onprecull是在剔除這個過程之前被呼叫的,此訊息被傳送到所有附加了指令碼的攝像機上。如果想改變攝像機的觀察引數(例如fieldofview或transform),可以在這裡做到。在呼叫onprecull後將根據攝像機的引數決定場景中物件的可見性。  

onbecamevisible/onbecameinvisible: 當物體被任意攝像機可見時,onbecamevisible被呼叫;當物體不再被任意攝像機可見時,onbecameinvisible被呼叫。訊息被傳送到附加在該render上的所有指令碼。  

onwillrenderobject():如果物件可見,會被每個攝像機呼叫一次。如果禁用,將不會被呼叫。函式在剔除(culling)過程中呼叫時,僅在渲染每個被剔除物件前被呼叫。  

onprerender():在攝像機開始渲染場景前被呼叫。此訊息被傳送到所有附加了指令碼的攝像機上。注意:如果想在這裡改變攝像機的檢視引數(例如fieldofview),需要到下一幀才可以看到效果,要做到馬上,需要在onprecull中。  

onrenderobject():在攝像機渲染完場景後被呼叫,這可以用來用graphics.drawmeshnow或其它函式來渲染自己的物件。這個函式除了可以在任何有這個指令碼的物件上呼叫而不去管有沒有附加到攝像機上,與onpostrender類似。  

onpostrender():在攝像機渲染完場景後被呼叫,函式被呼叫只有在指令碼附加在攝像機上並且已啟用。onpostrender可以作為協同程式,可以在函式中用yield語句呼叫。onpostrender在攝像機渲染所有它的物件後被呼叫,如果想在攝像機、gui渲染完後做一些其他的事情,可用waitforendofframe協同程式。  

onrenderimage(source:rendertexture,destination:rendertexture):在渲染器完全渲染影象後被呼叫。後置處理效果(僅unity pro)。 

它可以允許你通過基於shader過濾器的處理來修改最終影象。傳入的影象是源渲染紋理,最終結果應該結束在目的渲染紋理。當這有多重影象過濾器附加到攝像機上時,會通過把第乙個的目的渲染紋理來作為第二個的源渲染紋理的順序來處理這些影象。 訊息被傳送到所有附加指令碼的攝像機上。  

ondrawgizmos():如果想要畫一些可以挑選的,又總是可見的小物件(gizmos)時,執行ondrawgizmos這個函式。這個可以讓你的物件在場景中迅速回暖。需要注意的是ondrawgizmos會使用相對於場景檢視的滑鼠位置。  

Unity3d時鐘指令碼

var tu1 texture2d var time1 float 0 function fixedupdate function ongui function gettime time float string var lasttime string var hour mathf.floortoi...

Unity3D 指令碼入門

1 資料型別和基本運算 a 命名空間就像在檔案系統中乙個資料夾容納多個檔案一樣,可以看作某些類的乙個容器。通過把類放入命名空間可以把相關的類組織起來,並且可以避免命名衝突。命名空間既用作程式de 內部 組織系統,也用作 外部 組織系統。使用命名空間 using 2 整型 整數 8個名稱 sbyte ...

unity3d 指令碼入門

1 virtual和override a virtual 用在基類中,指定乙個虛方法 屬性 表示這個方法 屬性 可以重寫。b override 用在派生類中,表示對基類虛方法 屬性 的重寫。class test2 test public sealed override void show 執行的結果...