ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ±Π΅ΡΠ° ΠΏΠΎ C# | Π²ΠΎΠΏΡΠΎΡΡ Ρ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ
Kanalga Telegramβda oβtish
ΠΠΎΠΏΡΠΎΡΡ Ρ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ C# ΠΈ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π½ΠΈΡ . ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @proglib_adv Π£ΡΠΈΡΡΡΡ Ρ Π½Π°Ρ: https://clc.to/QRJIVw ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ: @proglibrary_feeedback_bot ΠΠ°ΡΠΈ ΠΊΠ°Π½Π°Π»Ρ: https://t.me/proglibrary/9197
Ko'proq ko'rsatish5 640
Obunachilar
-124 soatlar
+37 kunlar
+330 kunlar
Postlar arxiv
ΠΠ°ΠΊ Π²Ρ Π±Ρ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π½Ρ Π² Unity Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ (VR), ΡΡΠΈΡΡΠ²Π°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ? ΠΠ±ΡΡΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ Π²Ρ Π±Ρ ΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ΠΎΠΌ.
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠ΅ΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² Unity Π΄Π»Ρ VR. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ VR ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° Π²ΡΡΠΎΠΊΠΈΡ
ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠ΅. ΠΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π°ΡΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ΅ΠΊΡΡΡΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ LOD (Level of Detail) ΡΠΈΡΡΠ΅ΠΌ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅Π½Π΅ΠΉ. ΠΠ°Π½Π΄ΠΈΠ΄Π°Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΊ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Ρ Π΄Π»Ρ VR, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ overdraw ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ occlusion culling.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»Π°ΡΡ?
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ βsealedβ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»Π°ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π³ Π² Unity3D? ΠΠΎΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ³ΡΡ?
Π€ΡΠ½ΠΊΡΠΈΡ Fixed Timestep ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΏΠΎΡ
Π°ΠΌΠΈ.
ΠΡΠ»ΠΈ ΡΠ°ΡΡΠΎΡΠ° ΠΊΠ°Π΄ΡΠΎΠ² ΡΠΏΠ°Π΄Π΅Ρ Π½ΠΈΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π³Π°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ³ΡΡ.
Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π»
ΠΠ»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ Β«dΒ».
Π§ΠΈΡΠ»ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π² ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ. ΠΡΠ»ΠΈ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΈΡΡ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠΎ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΡΠ»ΠΈ.
ΠΠ°ΠΊ Π² C# ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ "Lazy Initialization" ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ Π΄Π»Ρ Π΅Π³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
?
Π C# "Lazy Initialization" ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° Lazy<T>, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
, Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Lazy<T> Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ LazyThreadSafetyMode, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ?
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ System.NullReferenceException, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ tom ΠΠ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Employee, ΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ tom as Employee Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ null.
Π§ΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π² C#?
Π C# ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±Π»ΠΎΠΊΠΈ get ΠΈ set. Π Π±Π»ΠΎΠΊΠ΅ get Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ, Π° Π² Π±Π»ΠΎΠΊΠ΅ set ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° value, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ DateTime ΡΠ°Π²Π½ΡΡΡΡΡ null? ΠΠΎΡΠ΅ΠΌΡ?
ΠΠ΅Ρ, Ρ.ΠΊ. DateTime ΡΡΠΎ ΡΠΈΠΏ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΈΠ· System.ValueType.
