블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

[추가]

유니티가 버전업(추가글 쓰는 현재 5.4버전) 되면서 프리팹 관련 함수가 EditorUtilty에서 PrefabUtility로 옮겨졌습니다.

아래 링크를 참조해 주세요.


[참조] https://docs.unity3d.com/ScriptReference/PrefabUtility.html





Hierachy에 Prefab으로 만들어 진 Gameobject들이 어떤 이유로 Prefab과의 링크가 깨져서 자동으로 링크할 방법을 궁리하던 중..


EditorUtility.ReplacePrefab 이란 함수를 써봤는데, 


되긴 하지만, 마지막 Replace 된 오브젝트의 정보가 프리팹에 동기화 돼서 나머지 모든 오브젝트의 정보가 똑같이 바껴버렸다.


어떻게 보면 정상이지만 내가 원하는 게 아녀서 다시 고민..


[방법]

1. 해당 프리팹을 참조

2. 프리팹과 name이 같은 오브젝트를 Hierarchy에서 찾는다.

3. 프리팹을 참조해서 새로운 오브젝트를 생성 기존 오브젝트의 정보를 대입.

4. 기존 오브젝트 삭제.


라고 생각하고..


만들기 귀찮아서 찾아보니.. 있다.. -_-;


생각한 방법에서 궁금했던 프리팹 생성 함수(EditorUtility.InstantiatePrefab)가 안에 있있다.

  1.         foreach (GameObject go in OldObjects)
  2.         {
  3.             GameObject newObject;
  4.             newObject = (GameObject)EditorUtility.InstantiatePrefab(NewType);
  5.             newObject.transform.parent = go.transform.parent;
  6.             newObject.transform.localPosition = go.transform.localPosition;
  7.             newObject.transform.localRotation = go.transform.localRotation;
  8.             newObject.transform.localScale = go.transform.localScale;
  9.  
  10.             DestroyImmediate(go);
  11.         }



참조 : http://forum.unity3d.com/threads/24311-Replace-game-object-with-prefab

반응형
Posted by blueasa
, |