์ ๋ํฐ์์ transform.Find๋ Transform ํ์
์ ๋ฐํํฉ๋๋ค.
์ด๋ฅผ ํ์ฉํด ๋ถํ์ํ GetComponent ํธ์ถ์ ์ค์ด๊ณ ์ฐธ์กฐ ๊ตฌ์กฐ๋ฅผ ๋จ์ํํ ์ ์์ต๋๋ค.
private void Reset()
{
// transform.Find๋ ์ด๋ฏธ Transform์ ๋ฐํํ๋ฏ๋ก ๋ฐ๋ก ํ ๋น
_firePoint = transform.Find(BowSpriteString);
if (_firePoint != null)
{
// ์ฐพ์์จ Transform์์ ํ์ ์ ๋ณด(GameObject, Animator)๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ํจ์จ์
_bow = _firePoint.gameObject;
_bowAnim = _firePoint.GetComponent<Animator>();
}
}
๋จ์ ๊ณ์ฐ์ฉ ์์ ๋ณ์๋ฅผ ํด๋์ค ๋ณ์(์ ์ญ)๋ก ์ ์ธํ์ง ์๊ณ ์ง์ญ ๋ณ์๋ก ์ ์ธํด์ผ ํ๋ ์ด์ ๋
๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์ ๋๋ฌธ์
๋๋ค.
๋จ์ ๋ฐ์ดํฐ ๋ฌถ์์๋ class ๋์ struct๋ฅผ ๊ถ์ฅํฉ๋๋ค. ์ ๊ตฌ์กฐ์ฒด๊ฐ ์ฑ๋ฅ์ ์ ๋ฆฌํ ๊น์?
[System.Serializable]
public struct EnemySpawnData // ๋ฐ์ดํฐ ๋ฌถ์์ struct๊ฐ ๋ฒ ์คํธ!
{
public string enemyName;
public int spawnCount;
public float spawnInterval;
public GameObject prefab;
}
"๊ธฐ๋ฅ(๋ณต์กํ ๋ก์ง)์ด ์๋๋ผ ์ค์ง ๋ฐ์ดํฐ(๋ณ์ ๋ญ์น)๋ฅผ ์ ๋ฌํ๊ฑฐ๋ ์ ์ฅํ๋ ๋ชฉ์ ์ด๋ผ๋ฉด
class ๋์ struct๋ฅผ ์ฐ๋ ๊ฒ ์ฑ๋ฅ์ ํจ์ฌ ์ด๋์ด๋ค"
์ํฉ์ ๋ง๋ ํ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฑ๋ฅ ์ต์ ํ์ ์ฒซ๊ฑธ์์ ๋๋ค.
| ํจ์ | ํ์ ๋ฒ์ | ํน์ง ๋ฐ ๊ถ์ฅ ์ฌ์ฉ์ฒ |
|---|---|---|
GameObject.Find | ์ฌ ์ ์ฒด | ์ด๋ฆ์ผ๋ก ๊ฒ์. ๊ฐ์ฅ ๋๋ฆผ. ์ฌ์ ์ค๋ธ์ ํธ๊ฐ ๋ง์์๋ก ๋ถํ๊ฐ ์ฌํด์ง. (์ฌ์ฉ ์ง์) |
transform.Find | ์์ ์ค๋ธ์ ํธ | ๊ณ์ธต ๊ตฌ์กฐ ๋ด ์์ ๊ฒ์. ๋ฒ์๊ฐ ์ข์ ๋น๊ต์ ๋น ๋ฆ. Reset()์์ ์ถ์ฒ. |
FindAnyObjectByType<T> | ์ฌ ์ ์ฒด | ํ์
(์คํฌ๋ฆฝํธ)์ผ๋ก ๊ฒ์. ์ด๋ฆ์ด ๊ฐ๋ณ์ ์ผ ๋ ์ ์ฉํ๋ฉฐ GameObject.Find๋ณด๋ค ์์ ์ ์. |
GameObject.FindWithTag | ํ๊ทธ ์์ธ | ๊ฐ์ฅ ๋น ๋ฅธ ์ ์ฒด ๊ฒ์. ๋ฏธ๋ฆฌ ์ธ๋ฑ์ฑ๋ ํ๊ทธ๋ฅผ ํ์ฉํ๋ฏ๋ก 'Player'๋ 'Enemy' ๊ทธ๋ฃน์ ์ฐพ์ ๋ ์ต์ . |
๐ก ์ต์ข
๊ฒฐ๋ก : ๋ฐํ์ ์ฑ๋ฅ์ ์ํด ๊ฐ๊ธ์ Reset() ๋จ๊ณ์์ transform.Find๋ ํ๊ทธ๋ฅผ ํตํด ์ฐธ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ง์น๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.