유튜브 24 - https://youtu.be/9jeO9IviLdk
* 오늘의 배울 내용
animator.SetBool()
안녕하세요~ 매일 30분 유니티 공부하기입니다~ 지난 시간에 캐릭터가 키보드 값에 따라 움직이는것을 구현해보았습니다. 오늘은 키보드 값에 따라 캐릭터가 움직일 때만 달리는 애니메이션을 보여주고, 멈출 경우에는 가만히 서있는, 즉 애니메이션 전환에 대하여 배워보도록 합니다. animator.SetBool( ) 메서드를 활용하여 애니메이션 전환을 하게 됩니다. 자, 그럼 시작할까요?

유니티 매뉴얼을 보면 스크립트 뿐만아니라 작업에 관련된 부분도 상세히 잘 되어 있습니다.
https://docs.unity3d.com/kr/2018.4/Manual/class-Transition.html

애니메이션 전환을 하려면 사전 작업이 필요합니다. 유튜브를 보시는것이 좀 더 이해가 잘 될것입니다. Animator 패널에서 +를 눌러 Bool 타입의 매개변수를 추가합니다. 체크표시를 해제하여 처음에는 값이 false가 되도록 했습니다. 여기서는 RunStart라는 매개변수를 만들었습니다.

애니메이션 상태에서 마우스 오른쪽 버튼을 클릭하여 Make Transition 을 생성하여 다음의 그림처럼 만들어 줍니다. 그럼 각각의 애니메이션 상태에서 전환이 이루어지는 상황을 만든 것입니다. 이때 각각의 상태전환시 매개변수 설정을 해줍니다. 여기서는 서있다가 달리는 전환에서는 true로 해주고, 달리다가 서있는 상태로 갈때는 false로 설정했습니다. 처음 이부분이 조금 헷갈립니다. 영상을 보시면 쉬울거에요^^ 의외로 쉽습니다. 꼭 영상 보세요^^

이제 다음의 코드를 완성해 봅니다. 구현은 잘 될것입니다. 키보드 입력값에 따라 좌우로 움직이며, 방향전환도 잘 됩니다. 또한 해당 키보드 값에 따라 animator.SetBool( ) 메서드에 의해 RunStart 매개변수 값이 설정됩니다. 달리는 부분에서는 true로 설정되며, 설 경우 false로 설정됩니다.
제사한 사항은 유튜브를 통해 설명을 들으시면 좀 더 쉬울거에요^^ 유튜브를 통해서는 설명을 하면서 한코드씩 작성합니다. 참고하세요^^
이러한 코드를 통해 이제 자연스럽게 캐릭터가 움직입니다. 와우~ ^^ Has Exit Time 을 체크 해제해야 바로 애니메이션으로 전환되어 더 자연스럽게 할 수 있습니다. 차이를 비교해 보세요^^
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController2 : MonoBehaviour
{
public float speed = 0.05f;
private Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
void Update(){
if(Input.GetAxisRaw("Horizontal") < 0 || Input.GetAxisRaw("Horizontal") > 0){
transform.Translate(Input.GetAxisRaw("Horizontal") * speed , 0, 0);
transform.localScale = new Vector2(Input.GetAxisRaw("Horizontal"), 1);
animator.SetBool("RunStart", true);
} else if(Input.GetAxisRaw("Horizontal") == 0) {
animator.SetBool("RunStart", false);
}
}
}

자, 우린 여기까지 해서 제법 자연스럽게 캐릭터가 움직이도록 했습니다. 뿌듯합니다. ^^ 다음 시간에 또 만나요~~~~ 안녕~~~

유튜브 24 - https://youtu.be/9jeO9IviLdk
* 오늘의 배울 내용
animator.SetBool()
안녕하세요~ 매일 30분 유니티 공부하기입니다~ 지난 시간에 캐릭터가 키보드 값에 따라 움직이는것을 구현해보았습니다. 오늘은 키보드 값에 따라 캐릭터가 움직일 때만 달리는 애니메이션을 보여주고, 멈출 경우에는 가만히 서있는, 즉 애니메이션 전환에 대하여 배워보도록 합니다. animator.SetBool( ) 메서드를 활용하여 애니메이션 전환을 하게 됩니다. 자, 그럼 시작할까요?
유니티 매뉴얼을 보면 스크립트 뿐만아니라 작업에 관련된 부분도 상세히 잘 되어 있습니다.
https://docs.unity3d.com/kr/2018.4/Manual/class-Transition.html
애니메이션 전환을 하려면 사전 작업이 필요합니다. 유튜브를 보시는것이 좀 더 이해가 잘 될것입니다. Animator 패널에서 +를 눌러 Bool 타입의 매개변수를 추가합니다. 체크표시를 해제하여 처음에는 값이 false가 되도록 했습니다. 여기서는 RunStart라는 매개변수를 만들었습니다.
애니메이션 상태에서 마우스 오른쪽 버튼을 클릭하여 Make Transition 을 생성하여 다음의 그림처럼 만들어 줍니다. 그럼 각각의 애니메이션 상태에서 전환이 이루어지는 상황을 만든 것입니다. 이때 각각의 상태전환시 매개변수 설정을 해줍니다. 여기서는 서있다가 달리는 전환에서는 true로 해주고, 달리다가 서있는 상태로 갈때는 false로 설정했습니다. 처음 이부분이 조금 헷갈립니다. 영상을 보시면 쉬울거에요^^ 의외로 쉽습니다. 꼭 영상 보세요^^
이제 다음의 코드를 완성해 봅니다. 구현은 잘 될것입니다. 키보드 입력값에 따라 좌우로 움직이며, 방향전환도 잘 됩니다. 또한 해당 키보드 값에 따라 animator.SetBool( ) 메서드에 의해 RunStart 매개변수 값이 설정됩니다. 달리는 부분에서는 true로 설정되며, 설 경우 false로 설정됩니다.
제사한 사항은 유튜브를 통해 설명을 들으시면 좀 더 쉬울거에요^^ 유튜브를 통해서는 설명을 하면서 한코드씩 작성합니다. 참고하세요^^
이러한 코드를 통해 이제 자연스럽게 캐릭터가 움직입니다. 와우~ ^^ Has Exit Time 을 체크 해제해야 바로 애니메이션으로 전환되어 더 자연스럽게 할 수 있습니다. 차이를 비교해 보세요^^
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController2 : MonoBehaviour
{
public float speed = 0.05f;
private Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
void Update(){
if(Input.GetAxisRaw("Horizontal") < 0 || Input.GetAxisRaw("Horizontal") > 0){
transform.Translate(Input.GetAxisRaw("Horizontal") * speed , 0, 0);
transform.localScale = new Vector2(Input.GetAxisRaw("Horizontal"), 1);
animator.SetBool("RunStart", true);
} else if(Input.GetAxisRaw("Horizontal") == 0) {
animator.SetBool("RunStart", false);
}
}
}
자, 우린 여기까지 해서 제법 자연스럽게 캐릭터가 움직이도록 했습니다. 뿌듯합니다. ^^ 다음 시간에 또 만나요~~~~ 안녕~~~