본문 바로가기

유니티/뱀서라이크

뱀서라이크 따라하기 - 3강 2D 셀 애니메이션 제작하기

유니티에 들어가면, sprite renderer라는 컴포넌트가 오브젝트에 있는 것을 볼 수 있습니다

여기서 x 축을 선택하면 오브젝트가 x축을 기준으로 반전되게 됩니다. 이제 우리가 조작하여 움직이고자 하는 방향으로 캐릭터가 바라볼 수 있게끔 만들어 보겠습니다.

void LateUpdate(){
       
    }

먼저 코드 가장 아래쪽에 void LateUpdate를 추가해줍니다. 이 함수는 프래임이 종료되기 전에 실행되는 생명주기 함수라고 합니다.

if (inputVec.x != 0){
            //키를 누르기 전에는 inputVec의 값이 0, 그러니 키를 눌렀을 때 이 if문이 돌아간다는 의미
           
        }  

그 안에 이런 코드를 넣어줍니다. 그 위에는 spriterenderer를 추가해주고, awake안에 spriter를 정의해줄 코드를 적어줍니다.

public class Player : MonoBehaviour
{
    public Vector2 inputVec;
    public float speed;
    Rigidbody2D rigid;
    SpriteRenderer spriter;
    void Awake()
    {
        rigid = GetComponent<Rigidbody2D>();
        spriter = GetComponent<SpriteRenderer>();
    }

그 뒤 Late update 안쪽에 filpx를 바꿔주는 코드를 작성해줍니다

    void LateUpdate(){
        if (inputVec.x != 0){
            //키를 누르기 전에는 inputVec의 값이 0, 그러니 키를 눌렀을 때 이 if문이 돌아간다는 의미
            spriter.flipX = inputVec.x < 0;
            // = 뒤의 논리연산자 값이 들어가게 된다. 만약 양의 방향으로 움직인다면 바꿀필요 없으니 0, 음의 방향으로 움직인다면 바꿔야하니 1
        }  
    }

이제 코드를 저장하고 유니티에서 실행시키게 될 경우, 플래이어가 움직이는 방향에 따라서 캐릭터가 보는 방향이 달라지게 됩니다!

또한, 캐릭터를 움직이고서 키를 때더라도 캐릭터가 보고 있던 방향에서 변하지 않는 모습을 볼 수 있습니다

 

다음 글은 캐릭터가 움직일 때 애니매이션을 적용시켜보도록 하겠습니다!

 

 

본 글은 아래 영상을 따라하는 과정을 기록한 글 입니다

https://www.youtube.com/watch?v=vizfd1TeRMI&list=PLO-mt5Iu5TeZF8xMHqtT_DhAPKmjF6i3x&index=5&ab_channel=%EA%B3%A8%EB%93%9C%EB%A9%94%ED%83%88 

7-21