์˜ค๋ธŒ์ ํŠธ A๋ž‘ B๊ฐ€ ์žˆ๋Š”๋ฐ


๋‘˜์˜ Component๋ฅผ ์•„์˜ˆ ๊ต์ฒดํ•˜๊ณ ์‹ถ์€๋ฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Œ?


์˜ˆ์‹œ๋กœ Transform ํ•ญ๋ชฉ์„ ๊ต์ฒดํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๊ฐ position, rotation, scale์˜ ๊ฐ’์„ ์ผ์ผํžˆ ๋ฐ”๊ฟ”์ฃผ๋Š”๊ฑฐ ๋ง๊ณ 


๊ทธ๋ƒฅ Transform ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๋ฅผ ๋ฐ”๊ฟ”๋ฒ„๋ฆฌ๋Š”๊ฒŒ ๊ฐ€๋Šฅํ• ๊นŒ?

๊ตณ์ด A๋ž‘ B๊ฐ€ ์„œ๋กœ ๋ฐ”๋€”ํ•„์š”๋Š” ์—†๊ณ  A์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ B๊ป„๋กœ ๋งŒ๋“ค์–ด๋ฒ„๋ฆฌ๋Š”๊ฒƒ๋งŒ ํ•ด๋„๋จ.




ํ•˜๋ ค๋Š”๊ฑด ์ง์ ‘๋งŒ๋“  ์Šคํฌ๋ฆฝํŠธ ํ•˜๋‚˜๋ฅผ ํ†ต์งธ๋กœ ๋ฐ”๊พธ๊ณ ์‹ถ์€๊ฑด๋ฐ, ๋ชจ๋“ ๊ฐ’์„ ์ผ์ผํžˆ ๋ณต์‚ฌํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ์ด์ƒ ๊ฒฐ๊ตญ์—” ๊นŠ์€๋ณต์‚ฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•จ.

๊ทผ๋ฐ ์ด๊ฒŒ ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๋ฅผ ๊นŠ์€๋ณต์‚ฌํ•˜๋Š”๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Œ.



public static Student DeepClone<Student>(Student obj)
{
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
ms.Position = 0;
return (Student)formatter.Deserialize(ms);
}
}
}
[Serializable]
public class Student
{
public string Name { get; set; }
public string Age { get; set; }
public string Grade { get; set; }
}



์ถœ์ฒ˜: https://afsdzvcx123.tistory.com/entry/C-๋ฌธ๋ฒ•-C-ํด๋ž˜์Šค-๊ฐ์ฒด-๊นŠ์€๋ณต์‚ฌDeepClone-ํ•˜๋Š”-๋ฐฉ๋ฒ• [BeomBeomJoJo - Programmer]




์œ„ ๋ฐฉ๋ฒ•์€ ์จ๋ดค๋Š”๋ฐ ์ € DeSerialize์—์„œ Student๋กœ ํ˜•๋ณ€ํ™˜ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์•ˆ๋จ.

์•„๋งˆ ๋‚ด๊ฐ€ ๋ณ€ํ™˜ํ•˜๋ ค๋Š” class์— ๋ชจ๋“ ํƒ€์ž…์ด ๊ฐ„๋‹จํ•œ int string floatํ˜• ํ”„๋กœํผํ‹ฐ๋งŒ ์žˆ๋Š”๊ฒƒ๋„ ์•„๋‹ˆ๊ณ  ํด๋ž˜์Šค, ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ๋ž‘ ํŠธ๋žœ์Šคํผ๊ฐ™์€๊ฒƒ๋“ค๊นŒ์ง€ ์žˆ์–ด์„œ ๊ทธ๋Ÿฐ๊ฐ€์‹ถ๊ธฐ๋„ํ•˜๊ณ 



๊ทธ๋ž˜์„œ ์•„์˜ˆ A๋ž‘ B๋ž‘ ์žˆ์œผ๋ฉด B์˜ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ ์ž์ฒด๋ฅผ Instantiate๋กœ ๋ณต์ œํ•œ๋‹ค์Œ์— ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ A๋กœ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ,,, ์ด๊ฒŒ ์‚ฌ์‹ค ๊ทธ๋ƒฅ B์— ์žˆ๋Š”๊ฑธ A๋กœ ์˜ฎ๊ธฐ๋Š”๊ฑฐ๋ž‘ ๋˜‘๊ฐ™์€ ์ž‘์—…์ด์ž–์Šด





๊ฒฐ๊ตญ์—” B์— ์žˆ๋Š” ์ž„์˜์˜ ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค๋ฅผ A๋กœ ์˜ฎ๊ฒจ์˜ค๋Š”๊ฒŒ ๊ฐ€๋Šฅํ•œ์ง€ ๊ถ๊ธˆํ•จ.

ํ•ด๋‹น ์ž„์˜์˜ ์ปดํฌ๋„ŒํŠธ๋Š” A์™€ B ๋‘˜๋‹ค ๊ฐ€์ง€๊ณ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๊ธดํ•œ๋ฐ ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ์—” ๋„ˆ๋ฌด ๋“ค์€ ์ •๋ณด๊ฐ€ ๋งŽ์•„์„œ ์ปดํฌ๋„ŒํŠธ์ž์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ ์‹ถ์Œ.


์ •ํ™•ํžˆ๋Š” ์ €์žฅ๊ณผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ์—์„œ A์˜ ์ดˆ๊ธฐ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ A๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋กœ A์˜ ์ดˆ๊ธฐ์ƒํƒœ๋ฅผ ๋ณต์›ํ•˜๊ณ ์‹ถ์€๊ฑฐ์ž„.

ํ˜น์‹œ ๋ฐฉ๋ฒ• ์žˆ์Œ??