응용프로그램/유니티(Unity)

Unity2D_착지 애니메이션, 충돌체(Collider)

zelkova 2017. 2. 10. 16:34

<목차로 돌아가기>


 Unity2D_충돌체 처리하기

이번에는 [Unity2D_횡스크롤 게임 지형만들기]에서 다루었던 충돌체(Collider)간의 이벤트를 처리하는 방법을 다뤄보려고합니다.


Player와 지형과 닫는 순간 착지를 탁! 하는 순간 앉는 애니메이션이 작동한다면 멋있겠죠? 



음 별로 멋있지는 않네요


그래도 어디에 쓰는지는 알겠죠?


총에 맞았을때 데미지를 입히거나, 땅을 딪고 있을때 것거나 아주 다양하게 사용하는것이 바로 트리거 입니다.


충돌체의 이벤트는 3가지가 있습니다. 


충돌체와 부딪친 순간

OnTriggerEnter()


충돌체위에 접촉해 잇을 때

OnTriggerStay()


접촉한 충돌체와 떨어질때

OnTriggerExit()


맨 상단의 움짤처럼 땅에 발이 다았을때 착지하는 모션을 만들어 보겠습니다.


Player 객체에 Collider2D 컴포넌트를 추가합니다.


Player의 발바닥에 Collider2D 컴포넌트를 새로 추가하고 is Trigger에 체크표시합니다.


착지하는 에니메이션을 Animator에 등록합니다.



좌측 상단에 + 표시를 누르고 Trigger를 누른뒤 Landing이라고 이름을 정합니다.



기본 대기상태에 우클릭 후 착지 애니메이션과 연결합니다.



연결한 선을 클릭하면 inspector에 애니메이션 전환설정이 나오는데 여기에서 Conditions에 아까 설정한 'Landing' parameters를 넣어줍니다. 



이제 Player객체에 아래의 스크립트를 달아주면 착지 애니메이션이 동작함을 알 수 있습니다.


  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;

  4. public class Player : MonoBehaviour {
  5. private Animator animator;
  6.    void Start () 
  7.    {
  8.       animator = GetComponent<Animator> (); 
  9.    }
  10.    void OnTriggerEnter2D(Collider2D other)
  11.    {
  12.    animator.SetTrigger ("Landing");
  13.    }
  14. }




반응형