반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바
- 안드로이드 Application Lifecycle
- 아이폰
- TCP 네트워크 방식의 연결
- 포트(Port)
- 변경된 정보
- tcp네트워크
- 에셋
- 나지보
- Collection Framework
- game
- 소캣(Socket)
- 리눅스
- 안드로이드
- tcp
- 기업의 행포
- unity
- 히오스
- 집 정리
- 명령어
- 어플
- 컬렉션 프레임
- 스랄 특성
- 게임
- End of Darkness
- 비행기 모드
- php 홈디렉토리 변경방법
- 벨팡
- 아이패드
- 나지보 특성
Archives
- Today
- Total
Do Something IT
[Unity] Apply Prefab Editor 본문
반응형
동적 프리펩 갱신 아래를 사용하자
PrefabUtility.ReplacePrefab( go, PrefabUtility.GetPrefabParent( go ), ReplacePrefabOptions.ConnectToPrefab );
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class UnitEditorBulkApply : MonoBehaviour, ICheckForUnsafeChanges
{
public bool resetPosition = true;
public bool resetScale = true;
public bool resetRotation = true;
#if UNITY_EDITOR
[ContextMenu("Apply Bulk Prefab Apply")]
public void CheckForUnsafeChanges()
{
for ( int i = 0; i < transform.childCount; i++)
{
GameObject go = transform.GetChild( i ).gameObject;
if ( PrefabUtility.GetPrefabParent( go ) != null )
{
Vector3 pos = go.transform.localPosition;
Vector3 scale = go.transform.localScale;
Quaternion rot = go.transform.localRotation;
if ( resetPosition ) go.transform.localPosition = Vector3.zero;
if ( resetScale ) go.transform.localScale = Vector3.one;
if ( resetRotation ) go.transform.localRotation = Quaternion.identity;
{
MonoBehaviour [] behaviours = go.GetComponents<MonoBehaviour>();
foreach ( MonoBehaviour b in behaviours )
if ( b is ICheckForUnsafeChanges )
( b as ICheckForUnsafeChanges ).CheckForUnsafeChanges();
}
Debug.Log( "Applying changes to " + go.name, go );
PrefabUtility.ReplacePrefab( go, PrefabUtility.GetPrefabParent( go ), ReplacePrefabOptions.ConnectToPrefab );
if ( resetPosition ) go.transform.localPosition = pos;
if ( resetScale ) go.transform.localScale = scale;
if ( resetRotation ) go.transform.localRotation = rot;
}
}
}
#endif
}
public interface ICheckForUnsafeChanges {
#if UNITY_EDITOR
void CheckForUnsafeChanges();
#endif
}
반응형
'Unity3D > Editor' 카테고리의 다른 글
[unity] 코드상 프리펩 링크 완전히 끊기 (0) | 2016.11.18 |
---|---|
[Unity Custom MenuItem] 계층뷰 상의 여러개 프리펩 오브젝트들을 한번에 Apply 하기 (0) | 2016.10.31 |
[Unity] menuItem 여러번 실행 막기 (0) | 2016.10.31 |
[Unity extension Editor menu] 유니티 에디터 확장 메뉴 만들기 (0) | 2016.10.28 |
Comments