Instantiate 의 반환타입때문에 조금 헤맸다.. 선언부분의 볼드체로 해둔 부분이 핵심인데, 파라미터로 넣은 original을 소스로 복사함수를 호출한다. 그러니 original과 같은 타입의 객체가 생성되어 Object타입으로 반환되는것이라고 추측할 수 있다. (팩트는 아니다)
public static Object Instantiate (Object original)
{
Object.CheckNullArgument (original, "The thing you want to instantiate is null.");
return Object.Internal_CloneSingle (original);
}
//혹은
public static Object Instantiate (Object original, Vector3 position, Quaternion rotation)
{
Object.CheckNullArgument (original, "The prefab you want to instantiate is null.");
return Object.Internal_InstantiateSingle (original, position, rotation);
}
만약,
GameObject source;
로 Instantiate를 한다면 GameObject의 복사본이 나오며,
Transform source;
로 한다면 Transform 타입으로 복사본이 나온다.
지금까지 Transform 타입의 소스만을 Instantiate에 넣어왔었고 Transform에서 Component를 가져올 수 없어 헤매고있었는데, GameObject로 생성해서 가져오도록 변경하여 해결하였다.
GameObject gmObj = Instantiate(src) as GameObject;
gmObj.GetComponent<ClassType>().memberVar;
...
이렇게 해결.
잘못된 접근인지는 모르겠지만, 일단은 의도한대로 돌아간다. 좀 더 공부해보다가 관련된 내용이 나오면 더 다듬어야겠다
'Note..' 카테고리의 다른 글
water jug problem (0) | 2013.06.18 |
---|---|
컴파일러 구성론 - VSM (0) | 2013.05.03 |
[DB] Newheart Academy DB - 4주차 ppt (0) | 2013.02.28 |
[DB] Newheart Academy DB - 3주차 ppt (0) | 2013.02.16 |
[DB] Newheart Academy DB - 2주차 ppt (0) | 2013.02.08 |