parent&SetParent - TeamCrazyPerformance/Game_study GitHub Wiki

parent&SetParent

  • parent์™€ SetParent ๋‘˜ ๋‹ค ๋ถ€๋ชจ๋ฅผ ์ง€์ •ํ•ด์ฃผ๋Š” ํ‚ค์›Œ๋“œ์™€ ํ•จ์ˆ˜์ด๋‹ค.
  • ํ”„๋ฆฌํŒน ์ธ์Šคํ„ฐ์Šค ์ƒ์„ฑ ์‹œ Hierachy(๊ณ„์ธต์ฐฝ)์— ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•ด์ค€๋‹ค.
  • ํ˜น์€ ๋ถ€๋ชจ๊ด€๊ณ„๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ด์–ด์ค€๋‹ค.
  • parent์€ ํ•ด๋‹น ๋ถ€๋ชจ๋ฅผ (get, set) ๊ฐ€๋Šฅ
  • SetParent์€ ์ง์ ‘ ๋ถ€๋ชจ๋ฅผ setํ•จ

์˜ˆ์‹œ

  • space๋ฐ” ํด๋ฆญ ์‹œ ๋ฌด๊ธฐ ๋ฐœ์‚ฌ
  • image
  • Durid ํ”„๋ฆฌํŒน
  • image
  • ๋ฌด๊ธฐ ํ”„๋ฆฌํŒน
  • image

Durid.cs


public class Druid : MonoBehaviour
{
    public GameObject weapon;
    public float projectileSpeed = 10f;
    public float fireRate = 0.5f;
    public Knife knife;

    private float nextFireTime = 0f;
    void Update()
    {
        if (Input.GetKey(KeyCode.Space) && Time.time > nextFireTime)
        {
            nextFireTime = Time.time + fireRate;
            GameObject obj = Instantiate(weapon, transform.position, Quaternion.identity);
            obj.transform.parent = transform;
            Rigidbody2D rb = obj.GetComponent();
            rb.velocity = new Vector2(projectileSpeed, 0f);
            Destroy(obj, 10);
            //knife.Spawn(weapon, projectileSpeed, transform);
        }
    }
}

Knife.cs


public class Knife : MonoBehaviour
{
    public void Spawn(GameObject weapon, float speed, Transform character)
    {
        GameObject obj = Instantiate(weapon, character.position, Quaternion.identity);
        //obj.transform.SetParent(character);
        //obj.transform.parent = GameObject.Find("Durid").transform;
        Rigidbody2D rb = obj.GetComponent();
        rb.velocity = new Vector2(speed, 0f);
        Destroy(obj, 10);
    }
}


19์˜ค์„ฑํ˜

โš ๏ธ **GitHub.com Fallback** โš ๏ธ