๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ Development Study/๐Ÿ’ป Win32API

Clone Object(๋ณต์‚ฌ ์ƒ์„ฑ์ž)

by eazuooz 2022. 10. 26.

์˜ˆ์ œ : )

https://github.com/eazuooz/WindowAPI/commit/d2c9e0ff36c548bbad02a2227d4a67b1f8ccc0dc#

 

object Copy Constructor · eazuooz/WindowAPI@d2c9e0f

Show file tree Showing 16 changed files with 127 additions and 16 deletions.

github.com

 

๊ธฐ์กด์— ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น๊ฐ์ฒด๋“ค์˜ ์†์„ฑ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ

์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์„๋•Œ ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. 

 

๋‹ค๋งŒ ๋ณต์‚ฌ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋„˜๊ฒจ์ค„ ๊ฒฝ์šฐ

๋™์ ํ• ๋‹น๋œ ์ฃผ์†Œ๊ฐ’์ด ์ƒˆ๋กœ์šด๊ฐ์ฒด์— ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌ๊ฐ€๋˜์–ด

delete ํ• ๋–„๋‚˜ ๊ฐ’๋“ค์„ ์‚ฌ์šฉํ• ๋•Œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ์ ์„ ์•ผ๊ธฐ์‹œํ‚จ๋‹ค.

 

๊ทธ๋ž˜์„œ ๊ฐ’์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ทธ ๊ฐ’์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’๋“ค์„ ์ด์šฉํ•ด

์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œํ›„ ๋ณต์‚ฌํ•ด์„œ ๋„˜๊ฒจ์ค˜์•ผ ํ•œ๋‹ค. 

 

๋ณต์‚ฌ ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ํ•จ์ˆ˜

		template <typename T>
		static __forceinline T* Instantiate(T* gameObject, eColliderLayer type)
		{
			T* newObject = new T(*gameObject);
			Scene* playScene = SceneManager::GetPlayScene();
			playScene->AddObject(dynamic_cast<Object*>(newObject), type);

			return newObject;
		}

 

 

์ƒ์„ฑ์ž์—์„œ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋‹ค์‹œ ์ƒˆ๋กœ ํ• ๋‹นํ•ด์„œ  ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

    Object::Object(Object& other)
        : mComponents{ }
        , mPos{ other.mPos }
        , mScale{ other.mScale }
        , mbDead(false)
    {
        mComponents.resize((UINT)eComponentType::End);
        for (Component* component : other.mComponents)
        {
            if (nullptr == component)
                continue;

            Component* newComp = CreateComponent(component);
            AddComponent(newComp);
        }
    }

 

๊ทธ๋ฆฌ๊ณ  ๊ฐ component๋“ค์˜ ํŠน์„ฑ์— ๋งž๊ฒŒ ๊ฐ๊ฐ ๋ณต์‚ฌ์ƒ์„ฑ์ž๊ฐ€ ๋Œ์•„๊ฐˆ์ˆ˜ ์žˆ๊ฒŒ๋”

๊ณ„์ธต์ ์œผ๋กœ ์ „๋ถ€ ๊ตฌํ˜„ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

'๐Ÿ“ Development Study > ๐Ÿ’ป Win32API' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

UIManager, UIBase  (0) 2022.11.09
Tile Map  (0) 2022.11.02
Rigidbody  (0) 2022.10.20
API Math  (0) 2022.10.20
Animator  (1) 2022.10.13

๋Œ“๊ธ€