Hierarchy Attributes

Unity3D 2013. 8. 1. 19:49
반응형

http://unity3d.com/support/documentation/ScriptReference/20_class_hierarchy.Attributes.html

AddComponentMenu : 유니티 메뉴 추가.
// C# example:
[AddComponentMenu("Transform/Follow Transform")]
public class FollowTransform : MonoBehaviour
{
}

ContextMenu : 우클릭 메뉴 추가.
// C# example:
public class ContextTesting : MonoBehaviour {
/// Add a context menu named "Do Something" in the inspector
/// of the attached script.
[ContextMenu ("Do Something")]
void DoSomething () {
Debug.Log ("Perform operation");
}
}

ExecuteInEditMode : 에디트 모드에서 스크립트 실행.
using UnityEngine;
using System.Collections;

[ExecuteInEditMode]
public class example : MonoBehaviour {
public Transform target;
void Update() {
if (target)
transform.LookAt(target);

}
}

HideInInspector : 인스펙터에서 속성 감추기, 이전 세팅값은 유지.
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
[HideInInspector]
public int p = 5;
}

NonSerialized : 인스펙터에서 속성 감추기, 이전 세팅값은 무시.
// C# Example
class Test {
// p will not be shown in the inspector or serialized
[System.NonSerialized]
public int p = 5;
}

RPC : 원격지 호출 함수로 지정, 보내는 쪽과 받는 쪽 모두 다 존재해야 함.
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public Transform cubePrefab;
void OnGUI() {
if (GUILayout.Button("SpawnBox")) {
NetworkViewID viewID = Network.AllocateViewID();
networkView.RPC("SpawnBox", RPCMode.AllBuffered, viewID, transform.position);
}
}
[RPC]
void SpawnBox(NetworkViewID viewID, Vector3 location) {
Transform clone;
clone = Instantiate(cubePrefab, location, Quaternion.identity) as Transform as Transform;
NetworkView nView;
nView = clone.GetComponent<NetworkView>();
nView.viewID = viewID;
}
}

RequireComponent : 컴포넌트 자동 추가.
[RequireComponent (typeof (Rigidbody))]
public class PlayerScript : MonoBehaviour {
void FixedUpdate() {
rigidbody.AddForce(Vector3.up);
}
}

Serializable : 인스펙터에 인스턴스의 하위 속성 노출.
// C# Example
[System.Serializable]
class Test
{
public int p = 5;
public Color c = Color.white;
}

class Sample : MonoBehaviour
{
public Test serializableObj; // 인스펙터에 p, c가 노출된다.
}

SerializeField : 인스펙터에 비공개 멤버 노출.
//C# example
using UnityEngine;

public class SomePerson : MonoBehaviour {
//This field gets serialized because it is public.
public string name = "John";

//This field does not get serialized because it is private.
private int age = 40;

//This field gets serialized even though it is private
//because it has the SerializeField attribute applied.
[SerializeField]
private bool hasHealthPotion = true;

void Update () {
}
}
반응형
: