에디터 창 만들기


ExecuteInEditMode

스크립트의 모든 인스턴스를 편집 모드로 실행합니다.
기본적으로 MonoBehaviours는 재생 모드에서만 실행됩니다.
이 속성을 추가하면 에디터가 플레이 모드에 있지 않을 때 MonoBehaviour의 모든 인스턴스가 콜백 함수를 실행하게됩니다. 
함수는 재생 모드에있는 것처럼 지속적으로 호출되지 않습니다. 
장면의 무언가가 변경되었을 때만 업데이트 가 호출됩니다. 
게임보기가 이벤트를 받으면 OnGUI 가 호출됩니다.
- OnRenderObject 및 다른 렌더링 콜백 함수는 장면 뷰 또는 게임 뷰의 모든 다시 그리기에서 호출됩니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using UnityEngine;
 
[ExecuteInEditMode]
public class PrintAwake : MonoBehaviour
{
    void Awake()
    {
        Debug.Log("Editor causes this Awake");
    }
 
    void Update()
    {
        Debug.Log("Editor causes this Update");
    }
}
cs


HideInInspector
변수를 인스펙터 뷰 보이지 않게 설정

1
2
3
4
5
6
7
using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    [HideInInspector]
    public int p = 5;
}
cs


AddComponentMenu

AddComponentMenu 특성을 사용하면 "구성 요소 -> 스크립트"메뉴 대신 "구성 요소"메뉴의 아무 곳에 나 스크립트를 배치 할 수 있습니다.
이를 사용하여 구성 요소 메뉴를 더 잘 구성하여 스크립트를 추가 할 때 워크 플로를 향상시킵니다. 중요 공지 : 다시 시작해야합니다.

1
2
3
4
5
6
using UnityEngine;
 
[AddComponentMenu("Transform/Follow Transform")]
public class FollowTransform : MonoBehaviour
{
}
cs


RequireComponent
RequireComponent 특성은 필요한 구성 요소를 종속 요소로 자동 추가합니다.
GameObject에 RequireComponent를 사용하는 스크립트를 추가하면 필요한 구성 요소가 자동으로 GameObject에 추가됩니다.
이는 설치 오류를 방지하는 데 유용합니다.
예를 들어, 스크립트는 Rigidbody가 항상 같은 GameObject에 추가되도록 요구할 수 있습니다.
RequireComponent를 사용하면 자동으로 수행되므로 설치를 잘못 할 수 없습니다.
RequireComponent는 구성 요소가 GameObject에 추가되는 순간 누락 된 종속성 만 검사합니다.
GameObject에 새로운 종속성이없는 구성 요소의 기존 인스턴스에는 해당 종속성이 자동으로 추가되지 않습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using UnityEngine;
 
[RequireComponent(typeof(Rigidbody))]
public class PlayerScript : MonoBehaviour
{
    Rigidbody rb;
 
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }
 
    void FixedUpdate()
    {
        rb.AddForce(Vector3.up);
    }
}
cs


ContextMenu

ContextMenu 특성을 사용하여 상황에 맞는 메뉴에 명령을 추가 할 수 있습니다.
첨부 된 스크립트의 관리자.
사용자가 상황에 맞는 메뉴를 선택하면 해당 기능이 실행됩니다. 
이것은 스크립트에서 장면 데이터를 자동으로 설정하는 데 가장 유용합니다.
함수는 정적이 아니어야합니다.

1
2
3
4
5
6
7
8
9
10
using UnityEngine;
 
public class ContextTesting : MonoBehaviour
{
    [ContextMenu ("Do Something")]
    void DoSomething ()
    {
        Debug.Log ("Perform operation");
    }
}
cs


반응형

'Programming > Unity' 카테고리의 다른 글

상태 되돌리기  (0) 2016.08.07
유니티 애니메이션 연습  (0) 2016.07.16
유니티 ugui 클래스 관계도  (0) 2016.07.09
Live 2d 사용해보기.  (0) 2016.03.27
Unity Raycast 사용법  (0) 2016.02.19
데이터 관리 엑셀(xlsx)에 XML 데이터 불러오기  (0) 2016.02.15
연습 작업하기  (0) 2016.02.13
Unity UI Button 만들기(스크립트 연결하기)  (3) 2016.02.09