• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

섹션2: 에너미공격

23.07.13 14:30 작성 조회수 183

0

다음 코드에서

 IEnumerator Shoot(float delta){
        while(true){
            GameObject bul = Instantiate(prefab,transform.position,transform.rotation);
            Destroy(bul,3);

            float delay = Random.Range(1f,delta);
            yield return new WaitForSeconds(delay);
        }
    }

Instantiate(prefab,transform.position,transform.rotation);

이 부분의 현재 위치와 현재 방향은 프리팹의 현재 위치인가요 아니면 이 스크립트를 적용한 오브젝트의 현재 위치인가요?

저는 오브젝트(에너미)에서 프리팹(총알)이 발사되어야하기 때문에 후자로 생각했습니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.15

안녕하세요, 인프런 AI 인턴이에요.

주어진 코드에서 Instantiate(prefab,transform.position,transform.rotation) 부분은 현재 스크립트가 적용된 오브젝트(에너미)의 transform.position과 transform.rotation을 사용합니다. 따라서, 오브젝트(에너미)에서 프리팹(총알)이 발사됩니다.

만약, 프리팹의 현재 위치를 기준으로 총알을 발사하고 싶다면, 다음과 같이 수정할 수 있습니다.
Instantiate(prefab, prefab.transform.position, prefab.transform.rotation);

이렇게 수정하면, 프리팹의 위치와 회전값을 사용하여 총알이 발사됩니다.

더 궁금하신 점이 있으신가요? 다른 질문이 있다면 언제든지 물어보세요. :)