[Unity] ์Šคํฌ๋ฆฝํ„ฐ๋ธ” ์˜ค๋ธŒ์ ํŠธ(Scriptable Object)
ยท
๐Ÿ“ Game/โœ Unity
์Šคํฌ๋ฆฝํ„ฐ๋ธ” ์˜ค๋ธŒ์ ํŠธ(Scriptable Object) 1. ์ •์˜ ScriptableObject๋Š” ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์™€๋Š” ๋ณ„๋„๋กœ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค. ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€ ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ’์˜ ์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” ์—ฐ๊ฒฐ๋œ MonoBehaviour ์Šคํฌ๋ฆฝํŠธ์— ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ”„๋ฆฌํŒน์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•˜๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋ฆฌํŒน์„ ์ธ์Šคํ„ด์Šคํ™”ํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ์ž์ฒด ์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋ฐฉ์‹ ๋Œ€์‹  ScriptableObject๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉด ๋ชจ๋“  ํ”„๋ฆฌํŒน์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ ์‚ฌ๋ณธ์„ ํ•˜๋‚˜๋งŒ ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์ „ ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ์—์„œ ์ˆ˜์ • ๋ฐ ..
[Unity] Layer์™€ Tag ์‚ฌ์šฉ ๋ฐ ์ฐจ์ด
ยท
๐Ÿ“ Game/โœ Unity
Layer์™€ Tag ์‚ฌ์šฉ ๋ฐ ์ฐจ์ด์œ ๋‹ˆํ‹ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋Š” ๊ฐ๊ฐ์˜ ์ด๋ฆ„์ด ์กด์žฌํ•˜๊ณ  ๊ทธ ์˜ค๋ธŒ์ ํŠธ๋“ค์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด Tag์™€ Layer๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‘  ์š”์†Œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ๋ฌด์Šจ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž. ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์„ ํƒํ•œ ํ›„ ์ธ์ŠคํŽ™ํ„ฐ ์ฐฝ์—์„œ ์ƒ๋‹จ์„ ๋ณด๋ฉด Tag์™€ Layer๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.  ํด๋ฆญ ํ›„ ๋งจ ์•„๋ž˜ Add Tag ๋˜๋Š” Add Layer๋ฅผ ๋‹ค์‹œ ํด๋ฆญํ•˜๋ฉด Tags & Layers ์ฐฝ์œผ๋กœ ์ด๋™๋œ๋‹ค.  Tags & Layers ์ฐฝ์—์„  ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  Tag์™€ Layer๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค.๊ธฐ๋ณธ์œผ๋กœ ์ถ”๊ฐ€๋œ Tag์™€ Layer ์™ธ์—๋„ ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.  1. LayerLayer๋Š” ์˜ค๋ธŒ์ ํŠธ๋“ค์˜ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค.๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ๊ธฐ๋ณธ ๋ ˆ..
[C#] ref์™€ out ํ‚ค์›Œ๋“œ
ยท
๐Ÿ“ Language/โœ C#
ref์™€ out ํ‚ค์›Œ๋“œ ref์™€ out ํ‚ค์›Œ๋“œ๋Š” ์ธ์ž๋กœ ๋„˜๊ธด ๋ณ€์ˆ˜๋ฅผ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ์ฐธ์กฐ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์—์„œ ๋™์ผํ•˜๋‹ค. ์†์„ฑ(Property)์€ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค. using System; namespace Test { class Program { static void Main(string[] args) { int i = 0; foo(ref i); Console.WriteLine(i); int j; bar(out j); Console.WriteLine(j); } static void foo(ref int a) { a = 3; } static void bar(out int a) { a = 15; } } } // 3 // 15 ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ํ‚ค์›Œ๋“œ๋„ ์ฐจ์ด์ ์€ ์žˆ๋‹ค. ref๋Š” ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๊ธฐ ..
[Unity] Inspector Attribute
ยท
๐Ÿ“ Game/โœ Unity
Inspector Attribute ์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ํ•œ๋ˆˆ์— ์•Œ์•„๋ณด๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค. ์ธ์ŠคํŽ™ํ„ฐ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์†์„ฑ๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. 1. [Header (string)] ์ธ์ŠคํŽ™ํ„ฐ ๋‚ด ํƒ€์ดํ‹€์„ ๋‹ฌ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด๋‹ค. 2. [Space (float)] ํ•„๋“œ ์‚ฌ์ด์— ์—ฌ๋ฐฑ์„ ์ฃผ๋Š” ์†์„ฑ์ด๋‹ค. 3. [Range (float, float)] ๋ณ€์ˆ˜ ๊ฐ’์„ ์Šฌ๋ผ์ด๋” ํ˜•์‹์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ์†์„ฑ์ด๋‹ค. 4. [Multiline (int)] ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•˜๊ธฐ ํŽธํ•˜๋„๋ก ๋ผ์ธ์˜ ์ˆ˜๋ฅผ ๋Š˜๋ ค์ฃผ๋Š” ์†์„ฑ์ด๋‹ค. 5. [TextArea (int, int)] Multiline๊ณผ ๋™์ผํ•œ ์†์„ฑ์œผ๋กœ ์ฐจ์ด์ ์€ ์ตœ์†Œ ํฌ๊ธฐ์™€ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 6. [SerializeField] private, prot..
[C++] ๋ฌธ์ž์—ด ์ŠคํŠธ๋ฆผ(stringstream)
ยท
๐Ÿ“ Language/โœ C & C++
๋ฌธ์ž์—ด ์ŠคํŠธ๋ฆผ ๋ฌธ์ž์—ด์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž๋ฃŒํ˜•์ด ๋“ค์–ด์™”์„ ๋•Œ ์šฉ๋„์— ๋งž๊ฒŒ ํŒŒ์‹ฑํ•˜๊ธฐ ์œ ์šฉํ•˜๋‹ค. ํ—ค๋” #include ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ๋ฌธ์ž์—ด์„ ํ’€์ดํ•  ๋•Œ C++ string๋งŒ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ์—” ์ž‘์€ ์–ด๋ ค์›€์ด ์žˆ๋‹ค. 1. ๋ฌธ์ž์—ด ์ŠคํŠธ๋ฆผ 1) stringstream ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ: ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ, ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์„ ๋ชจ๋‘ ํ•  ์ˆ˜ ์žˆ๋‹ค. 2) istringstream ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ๊ณผ '\n'์„ ๊ธฐ์ค€์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ์ฐจ๋ก€๋Œ€๋กœ ๋ถ„๋ฆฌํ•  ๋•Œ ํŽธ๋ฆฌํ•˜๋‹ค. ๋ฐ˜๋ณต๋ฌธ ์‹คํ–‰ ์‹œ ์ž๋ฃŒํ˜•์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ์‹คํ–‰๋œ๋‹ค. #include #include #include using namespace std; int main() { istringstream iss("test\n123 aaa 456"); string s1, ..
[C++] ํ‰ํ–‰ ๋ถ„ํ• , ๋ชจ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜
ยท
๐Ÿ“ Computer Science/โœ Algorithm
ํ‰ํ–‰ ๋ถ„ํ• , ๋ชจ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‰ํ–‰ ๋ถ„ํ• (SQRT Decomposition)์€ ๋ฐ์ดํ„ฐ๊ฐ€ N๊ฐœ์ด๋ฉด √N๊ฐœ๋งŒํผ ๋‚˜๋ˆ ์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ฐ ๊ทธ๋ฃน์€ ๋Œ€ํ‘ฏ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋งŒ์•ฝ ์ฃผ์–ด์ง€๋Š” ์ฟผ๋ฆฌ๊ฐ€ ๊ตฌ๊ฐ„์˜ ๋ง์…ˆ์ด๋ผ๋ฉด ๊ทธ๋ฃน์˜ ํ•ฉ์ด ๋Œ€ํ‘ฏ๊ฐ’์ด ๋œ๋‹ค. ๋ชจ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์–ด๋–ค ๊ตฌ๊ฐ„ [s, e]์— ์†ํ•˜๋Š” ์›์†Œ๋“ค์„ ์ด์šฉํ•˜์—ฌ ์–ด๋–ค ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์–ด ์ฟผ๋ฆฌ์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ฟผ๋ฆฌ ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฐฐ์—ด์„ k(√N)๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ ์ฃผ๊ณ , ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋‘ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์ฒ˜๋ฆฌํ•œ๋‹ค. [s1/k] < [s2/k] [s1/k] = [s2/k] and e1 < e2 ๋ฌธ์ œ https://www.acmicpc.net/problem/1..