08
24

유니티 메카님 시스템

 - Has Exit Time은 반드시 해당 애니메이션이 끝난뒤에 트랜지션이 일어남.

 - 딜레이 없는 트랜지션을 원한다면 Has Exit Time을 끄고, Trigger 등으로 애니메이션 조건을 지정해주자.

 - Bool 과 Trigger는 보기에는 비슷해보이지만, Trigger는 한번 애니메이션이 재생되고 다시 자동으로 꺼진다. 

 - AIM_Anim.SetTrigger("트리거이름"); 로 적용한다.



레이캐스트 구현

 - update 문에서 아래와 같이 태그로 검색하면 된다.


RaycastHit hit;

Vector3 fwd = transform.TransformDirection (Vector3.forward);

if (Physics.Raycast (transform.position, fwd, out hit)) {  // 레이캐스트 히트 O

if (hit.collider.tag == "Monster") {

AIM ();

}



코루틴의 사용

 - IEnumerator로 선언한 뒤, StartCoroutine으로 실행한다.


StartCoroutine (DelayShot ());


IEnumerator DelayShot(){


yield return new WaitForSeconds (1f);

}



Send Message의 사용


if (col.collider.tag == "Monster") {

col.gameObject.SendMessage("ApplyHit", SendMessageOptions.DontRequireReceiver);

}



이펙트의 생성


Instantiate (DeathEff, this.transform.position, this.transform.rotation);



난수의 생성


value = Random.Range(최소값, 최대값);


최소 최대값을 int로 입력하면 정수생성, float를 넣으면 float로 생성함. 단 절대 Max 값은 나오지않음 

최소값 <= 난수 < 최대값 의 개념.


오일러 회전값


FP.slopeZ =  transform.parent.eulerAngles.z;

COMMENT