• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

두개의 스크립트에서 gameObject를 실행했을 때

21.04.13 21:20 작성 조회수 85

0

제가 실수?로 두개의 스크립트에 아래와 같이 입력했습니다.

gameObject.AddComponent<AddScript>();

두개의 스크립트 모두 Cube에 연결되어 있는 상태였구요.

이 상태에서 실행을 하니 AddScript가 마치 Update함수에서 실행된 것처럼

무한히 생겨납니다.

그렇다는 것은 두개의 스크립트에서 계속 서로 참조를 하면서 AddComponent를 실행해서 생긴 결과인가요?

답변 1

답변을 작성해보세요.

0

안녕하세요. 이건 전체소스를 봐야 할것 같은데요.

아마 두개의 스크립트에서 참조가 일어난게 아니라 아래에서 말씀드리는 상태의 두번째 상태인것 같습니다. 

첫번째로 TestScrpt 가 있었을때 업데이트 안에서 gameObject.AddComponent<AddScript>() 가 있어도 그렇게 실행이 되고요. 

두번째로 AddScript 안에서 스타트에서 gameObject.AddComponent<AddScript>() 가 있어도 그렇게 실행이 됩니다. 이 상태는 AddScript 가 실행될때 Start 가 실행되므로 게임오브젝트에 스크립트가 부착이 되고 나면 다시 새로 생기는 AddScript 의 스타트가 또 실행되고 부착되고 실행되고 해서 계속 무한하게 AddScript 가 추가될 것입니다. 

구조를 한번 보여주시면 더 잘 답변드릴수 있을 것 같습니다. 

인스펙터하고 AddScript 를 한번 보여주시면 좋을 것 같습니다.