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 () {
}
}
반응형
'Unity3D' 카테고리의 다른 글
UnityVS (0) | 2013.08.05 |
---|---|
유니티 여러 프로젝트 실행방법 (0) | 2013.08.05 |
[스크랩] UNITY 비주얼스튜디오 C# 연동하기 (0) | 2013.08.01 |
Unity Korea 2013 3Session - Unity VS 사용방법 소개 (0) | 2013.08.01 |
Nomalrize 단위 벡터와 내적의 의미 (0) | 2013.07.26 |