참고 : http://itmining.tistory.com/25
[ 스크립트 ]
스크립트 인스턴스화 : Object에 삽입해야 함
[ 변수 ]
int, float, bool, string, Vector3
private, protectd, public
public으로 선언된 변수는 Unity Editor의 inspector 창에서 확인이 가능
변수의 범위
지역 변수와 전역 변수
유니티 에디터와 public 변수(직렬화 : Serialization)
변수와 Inspector
public으로 변수를 선언한 경우 Inspector 창에서 값을 변경할 수 있음
스크립트상에서 초기값을 설정해도 Inspector 창에서 설정한 값이 우선시 됨
[ HideInInspector ] : public 변수로 선언해도 Unity 에디터 상의 Inspector 창에서 표시되지 않도록 함
[ SerializeFeild ] : private 변수로 선언해도 Unity 에디터 상의 Inspector 창에서 표시될 수 있도록 함
[ 조건문 ]
[ if문 ]
? 문
( 조건식)? 참 : 거짓;
[ switch문 ]
[ 배열 ]
정적 배열
public GameObject[] MyObjects;
Inspector창에서 배열을 크기 및 할당도 가능
int [] number = new int[5];
동적 배열
[ 반복문 ]
for/while/do~while
foreach
public GameObject[] MyObjects; // Inspector 창에서 GameObject를 할당
foreach( GameObject Obj in MyObject) { ... }
foreach는 쓸데없는 메모리를 생성해 내므로 사용하지 않는 것이 좋다.
ToStirng
[ 열거형 ]
열거형 사용 이유
상수로 쓰는 경우 1) 값 입력의 실수 2) 어떤 의미인지 잘 모름
열거형 특징
결론적으로는 const로 지정된 상수
enum State { Idle, Walk, Attack, Dead }
public HeroState now = HeroState.Idle;
열거형의 변수는 Inspector창에서 드롭다운 형태로 표시된다( 변수의 범위 및 선택이 제한되는 효과)
[ 함수 ]
리턴값, 매개변수
함수 오버로딩 / 디폴트 매개변수
[ 이벤트 ]
Start / Update
그밖의 가상함수들...
[ 클래스와 객체지향 ]
캡슐화, 은닉성, 다형성
[ 클래스와 상속 ]
가상함수
모든 스크립트는 MonoBehaviour를 상속 바음
[ 클래스와 다형성 ]
Monobehaviour를 상속받지 않은 클래스는 게임씬에 넣을 수 없음
[ C# 프로퍼티 ]
private int iNum = 0;
public int MyNum { get {return iNum;} set { iNum = value } }
변수의 값 할당을 검증하고 제어하기에 유용한 도구로 유용
[ 주석 ]
XML 기반 주석
///<summary> ~~~~</summary>
///<returns> ~~ </returns>
///<param name = "Num1"> ~~ </param>
///<param name = "Num2"> ~~ </param>
int AddNums(int Num1, int Num2) { ... } // 이 부분을 블락으로 드래그하고 세개의 슬래시(/)를 넣는다.
주석을 통해 함수(AddNums)를 호출하는 곳에서 주석 내용을 볼 수 있게 된다.
[ 변수 표시 ]
Object의 Inspector 창에서 Debug모드로 표시 : private으로 선언된 변수도 확인이 가능해짐
[SerializeField] private int Num; [SerializeField]를 붙여주면 확인 가능
[HideInInspector]로 감출수도 있음
[ SendMessage와 BroadcastMessage ]
SendMessage : SendMessage를 호출한 스크립트를 가지고 있는 오브젝트의 모든 컴포넌트에서 호출이 가능
예> SendMessage("MyFunction", SendMessageOptions.DontrequireReceiver);
SendMessageOptions.DontRequireReceiver : 호출한 함수가 존재하지 않는 경우의 동작을 정의하는 것으로 무시하도록 한다.
BroadcastMessage : 씬 계층상의 모든 자식 오브젝트와 그 자식 컴포넌트에게 호출이 가능
[ 참고 ]
유니티가 당신에게 알려주지 않는 것들