제대로 이해한건지 확인 부탁드립니다
154
작성한 질문수 81
안녕하세요!
이해를 한 것 같은데 조금 헷갈리는 부분이 있어서, 확인을 부탁드려요
강의 중반부에 GameManager에서 적을 생성하는 부분을 수정할 때,
EnemyScript enemyPrefabScript = tr.GetComponent<EnemyScript>()
.....
GameObjec enemyObj = ...
...
EnemyScript enemyScript = enemyObj.GetComponent<EnemyScript>()
이렇게 나오는 부분에서 처음에 나온 EnemyScript랑 두번째 나온 EnemyScript는 다른 인스턴스에서 나온거죠?
예전 강의에서, 프리펩은 유니티 엔진만을 사용해서, 클래스 같은 걸 만들어 둔거라고 하셨잖아요
그리고 이부분에서 프리펩을 적 웨이브의 도안으로 사용하고 계시고요
처음에 나온 EnemyScript는 프리펩에서 적 타입을 읽어오기 위한 거지 실제로 게임에서 인스턴스화 되는 EnemyScript 클래스가 아니죠?
두번째로 나온 EnemyScript야 말로, 첫번째 EnemyScript로 만든 실제 EnemyScript 인스턴스에 부착된 EnemyScript인거죠?
답변 1
0
안녕하세요.
프리펩을 클래스로 만들었다는 의미는 폴더에 있는 프리펩이 클래스와 같은 의미로 말씀드린 거고요.
계층뷰로 올라가는 항목들은 프리펩을 가지고 실제 메모리에 생겨납니다.
미리 존재하고 있어도 관계없고요. 계층뷰에 존재하게 되는 연결되어 있는 프리펩의 경우에 하나의 메모리, 인스턴스입니다. 그곳에 있는 데이터도 읽어와서 사용하고 두번째 enemyObj 는 Instantiate 를 시키는 인스턴스겠죠.
그래서 프리펩에 있는 정보를 불러와서 enemyObj 의 필요한 부분에 대입을 하고 있습니다.
즉 둘다 인스턴스입니다. 프리펩이 클래스가 된다는 의미는 프로젝트 뷰에 있을때 클래스라는 것으로 말씀드렸고요. 실제로 계층뷰에 그것이 올라가면 다른 하나의 메모리가 생겨나는 것입니다.
감사합니다.
캐릭터 변경에 관해
0
230
1
Asteroid 생성에 관련해서
0
194
1
Part4 유니티로 세가지의 게임만들기 강의
0
211
1
Clamp 사용 시 앞서 설정한 ViewportToWorldPoint의 min, max를 사용하지 않고 새로 설정하는 이유가 있을까요
0
282
1
섹션8 슈팅게임 프로토타입 만들기3(적과 발사체)
0
269
1
캐릭터 고정데이터 로딩 강의
0
326
1
Destroy 함수 질문
0
413
1
GetComponent 강의 질문
0
344
1
transform.position과 transform.Translate 의 차이가 뭔가요??
0
1941
1
강의도중 질문이 있습니다
0
496
1
강의자료
0
284
0
117강 구조체를 정의하여 ShipData 구성
0
224
0
굳이 InitTime을 만들어서 호출 하는 이유가 있나요?
0
291
0
GameManager 의 Start()가 스페이스 누를때마다 반복실행됩니다.
0
415
1
Collider인 other.gameObject;
0
430
0
Generic에 대한 질문이 있습니다.
0
260
0
gameObject.setActive(false);
0
582
1
애플 앱스토어
0
248
0
비주얼스튜디오 오류
0
2151
1
part4강의
0
318
1
발사체 스피드
0
305
1
4분 44초 제가 이해한게 맞는지 궁금합니다
0
271
1
2분 44초 왜 void 함수를 써야하나욤..?
0
362
1
해당 부분 업데이트
0
260
1





