728x90

๐ŸŽฎ Unity Study 90

C# & Unity Code Convention

Unity ์—์„œ Microsoft์™€ Google์˜ C# Code Convention์„ ๊ธฐ๋ฐ˜์œผ๋กœ Unity ๊ถŒ์žฅ Coding ๊ทœ์น™์„ ์ •๋ฆฌํ•ด์ค€ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Create a C# style guide: Write cleaner code that scales Get tips from industry experts on how to create a C# code style guide. A style guide can help your team develop a codebase to support the growth of your project to a commercial-scale production. resources.unity.com ์•„๋ž˜ ๋งํฌ์—์„œ ๋ฒˆ์—ญ์ค‘ ~ C# Coding Convention C# C..

[Unity] Json ๋กœ์ปฌ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

JSON ์ง๋ ฌํ™” - Unity ๋งค๋‰ด์–ผ JsonUtility ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Unity ์˜ค๋ธŒ์ ํŠธ๋ฅผ JSON ํฌ๋งท์œผ๋กœ ์ƒํ˜ธ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด JSON ์ง๋ ฌํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์„œ๋น„์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ํฌ๋งท์œผ๋กœ ์‰ฝ๊ฒŒ ํŒจํ‚น docs.unity3d.com json, xml ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ํฌ๋งท์ด ์žˆ๋‹ค. ๊ทธ ์ค‘ ๋ณด๊ธฐ๋„ ์ฒ˜๋ฆฌ๋„ ํŽธํ•œ Json ๋ฐ์ดํ„ฐ ํฌ๋งท์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด์ž. Json ํฌ๋งท์„ ์ง€์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Unity ์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” JsonUtility ํด๋ž˜์Šค, Newtonsoft์˜ Newtowsoft.json, Asset Store์—์„œ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” JSON.NET(ํ˜„์žฌ ์ง€์›์ข…๋ฃŒ) ๋“ฑ์ด ์žˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ณ„๋กœ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅธ๋ฐ, ๊ฐ„๋‹จํ•œ..

[Unity] ๋ณ‘๋ชฉํ˜„์ƒ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ๊ทผ๋ณธ์ ์ธ ์›์ธ์„ ์•Œ์•„๋ณด์ž. #PC์˜ ๊ฒฝ์šฐ Storage(HDD, SSD, SD)์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ CPU ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜ฌ๋ผ๊ฐ€๊ณ  ๊ทธ ์ค‘์— ๋ Œ๋”๋ง์ด ํ•„์š”ํ•œ(Texture, Shader ๋“ฑ) ๋ฐ์ดํ„ฐ๋ฉด GPU ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ PC๋Š” 64bit, 32bit๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ 64bit = 2^64 = 16EB(์—‘์‚ฌ๋ฐ”์ดํŠธ) 32bit = 2^32 = 4GB ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งํ•œ๋‹ค. ์ฆ‰, ๋ฌผ๋ฆฌ์  PC ๊ธฐ๊ณ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” 10GB์ธ๋ฐ ๊ฒŒ์ž„์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 12GB๋ฅผ ์“ด๋‹ค๋ฉด, Storage์˜ ์ผ๋ถ€๊ณต๊ฐ„์„ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋กœ ์“ฐ๋Š” Swap Paging ์ด ์ผ์–ด๋‚œ๋‹ค. (๋” ๋งŽ์€ ๊ณต๊ฐ„์„ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ฒƒ) ์ด Swap Paging์ด ๋งŽ์ด ์ผ์–ด๋‚˜๋ฉด ๋ณ‘๋ชฉํ˜„์ƒ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ด๋‹ค. GPU Memory์—์„œ๋„ ๋ชจ..

[Unity] Garbage Collector

Resources.UnloadUnusedAssets(); GC.Collect(); https://jingonpark-gameclient.tistory.com/13 ๋Œ€ํ‘œ์ ์ธ Memory leak ๋ฐœ์ƒ ์œ ํ˜• Singleton static instance ๋”์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” singleton๊ฐ์ฒด์˜ OnDestroy( )ํ•จ์ˆ˜์—์„œ ๋ฐ˜๋“œ์‹œ instance = null; ์ฒ˜๋ฆฌ๋ฅผ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด OnDestroy( ) ์ดํ›„์—๋„ ๊ฐ์ฒด๋Š” ๊ณ„์†ํ•ด์„œ ์‚ด์•„์žˆ๋‹ค. OnDestroy( )ํ•จ jingonpark-gameclient.tistory.com

[C#] ๋ฌธ๋ฒ• Keyword

? readonly : ์ธ์ŠคํŽ™ํ„ฐ์ฐฝ์—์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•จ. sealed : ๋ด‰์ธ๋œ. ๋”์ด์ƒ ์ƒ์†์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค/์†์„ฑ/ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ. : ์ƒ์†, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์œผ๋กœ ํด๋ž˜์Šค ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•ด์งˆ ๋•Œ ์ƒ์†์˜ ๊นŠ์ด๋ฅผ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ์‚ฌ๋žŒ์—๊ฒŒ ์ด ํด๋ž˜์Šค, ์†์„ฑ, ํ•จ์ˆ˜๋Š” ์ƒ์†์ด ์•ˆ๋œ๋‹ค๊ณ  ๋ช…์‹œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. public class LoginInterface() { } public sealed class LoginImplementation { } partial static 1) static ๋ฉ”์„œ๋“œ : ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  'ํด๋ž˜์Šค๋ช….๋ฉ”์„œ๋“œ๋ช…'์œผ๋กœ ๋ฐ”๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ. 2) static ์†์„ฑ, ํ•„๋“œ : ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  'ํด๋ž˜์Šค๋ช….์†์„ฑ๋ช…'์œผ๋กœ ๋ฐ”๋กœ ํ˜ธ์ถœํ•จ. : non-static..

[C#][์ƒ์†๊ณผ ์ธํ„ฐํŽ˜์ด์Šค] virtual, abstract, interface

์ƒ์†๊ณผ ํด๋ž˜์Šค ์„ค๊ณ„ ์‹œ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” virtual, abstract, interface ๊ฐ€ ๋ฌด์—‡์ธ์ง€, ๋ฌด์Šจ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž virtual (ํ•จ์ˆ˜, ์†์„ฑ, ์ธ๋ฑ์„œ, ์ด๋ฒคํŠธ) : ํŒŒ์ƒ ํด๋ž˜์Šค์—๊ฒŒ ์ƒ์†์œผ๋กœ ์™„๋ฒฝํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ. public class Animal(){ public virtual void Speak(){ Console.WriteLine(""); } } public class Dog : Animal(){ public override void Speak(){ Console.WriteLine("๋ฉ๋ฉ"); } } Dog maltize = new Dog(); maltize.Speak(); virtual ํ•œ์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์—๊ฒŒ ์™„๋ฒฝํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ƒ ํด๋ž˜์Šค์—..

[Unity] Asset, Library ์„ ํƒ ๊ธฐ์ค€

Asset ๋ฐ Library ์„ ํƒ ๊ธฐ์ค€์„ ์• ๋‹ˆ๋ฉ”์ด์…˜ Asset ํˆด์ธ DOTween๊ณผ iTween์œผ๋กœ ์•Œ์•„๋ณด์ž. DOTween (HOTween v2) | ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋„๊ตฌ | Unity Asset Store Use the DOTween (HOTween v2) tool from Demigiant on your next project. Find this & more animation tools on the Unity Asset Store. assetstore.unity.com iTween | ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋„๊ตฌ | Unity Asset Store Use the iTween tool from Pixelplacement on your next project. Find this & more animation tools ..

[Unity] ํ”„๋กœ์ ํŠธ ์„ฑ๋Šฅ ํ™•์ธ ์ง€ํ‘œ, FPS(Frame Per Second)

FPS = 1 / TIme.deltaTime ์ดˆ๋‹น ํ”„๋ ˆ์ž„ ์ˆ˜ FPS(Frame Per Second)๋Š” ์„ฑ๋Šฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ดˆ๋‹น ํ”„๋ ˆ์ž„ ์ˆ˜๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ๋”์šฑ ๋ถ€๋“œ๋Ÿฌ์šด ํ™”๋ฉด(์• ๋‹ˆ๋ฉ”์ด์…˜) ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ”„๋ ˆ์ž„์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง€๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ทธ๋งŒํผ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ์ด ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ์ฐธ๊ณ ) https://bloodstrawberry.tistory.com/795 ์œ ๋‹ˆํ‹ฐ - OnGUI๋กœ ์‹ค์‹œ๊ฐ„ ์ดˆ๋‹น ํ”„๋ ˆ์ž„ ์ˆ˜ ํ™•์ธํ•˜๊ธฐ (FPS Status based on OnGUI) Unity ์ „์ฒด ๋งํฌ ์ฐธ๊ณ  - OnGUI, ProfilerRecorder๋กœ ๋Ÿฐํƒ€์ž„ ๋“œ๋กœ์šฐ ์ฝœ ํ™•์ธํ•˜๊ธฐ ์ดˆ๋‹น ํ”„๋ ˆ์ž„ ์ˆ˜ FPS(Frame Per Second)๋Š” ์„ฑ๋Šฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ..

728x90