재미있는 실감미디어

꿈꾸는대로 만들어집니다.

유니티기초[유니티 기초] 25_C# 스크립트 - animator.SetBool()_캐릭터점프하기

김혜영
2020-04-14
조회수 1131

유튜브 25 - https://youtu.be/gA9FXKgjZZ0

* 오늘의 배울 내용

animator.SetBool()

캐릭터 점프하기 스크립트


지난 시간에 캐릭터의 움직임과 애니메이션 전환을 해보았습니다. 오늘은 캐릭터가 점프할 때 위치를 변경하고, 아울러 점프하는 애니메이션 전환을 완성해보도록 합니다. 지금까지 배운것의 복습 및 응용이라고 볼 수 있습니다.


오늘의 코드는 아주 단순합니다만… 저는 처음에 접근을 잘 못해서.. 점프시 애니메이션 전환이 순조롭게 되지 않았습니다. 밤에 한 시간정도 코드 잡고 씨름하다… 잘 때를 놓치고.. 새벽 1시경에 자면서… 현타가 왔었지요.. 그러다가 노마드 코더님의 요 영상을 보고 격한 공감을 하며.. 덧글보며 키득 웃다가 잠을 잤네요. 아침에… 맑은 정신에 다시 보니… 조건문.. 을 잘못 처리했음이… 깨달아지면서… 코드를 깔끔하게 정리, 해결했습니다. ^^

결론은.. 점프처리하면서… 이와 같은 코드를 만들기 위해 한시간 이상 헤맸네요. 단순히 점프 코드는 만들었지만 처음에 애니메이션 전환이 제대로 안되었거든요.. 어찌되었든.. 고민하다 생각을 잘 못한 부분을 파악하고.. 깔끔하게 해결했습니다. 제 경험상.. 이런 일은 코드를 짜면서 숱하게 만나는 상황입니다. 그런데.. 해결한 경험이 많이 쌓이고, 그 희열감을 맛보면서.. 코딩이 재미있어진것 같아요^^ 참고로.. 노마드 코더님 유튜브 추천합니다. ^^

https://www.youtube.com/watch?v=ThGbP9wgkz8&t=325s


자.. 제 고민의 결과가 이 코드입니다. 다음의 코드를 완성하여 봅니다. 유튜브를 참고하셔서 어떻게 저런 코드가 나왔는지 확인해보세요^^ 바로 코드보고 이해할 수 있다면… 당신은 대단하십니다. 저는 처음에 조건문을 잘 못 써서 한참을 헤매었네요… 밤에 안되다가.. 아침에 맑은 정신으로 코드 다시 보고 해결했습니다. 역시.. 스크립트 공부는 이런 끊임없는 싸움인 듯 합니다. 참. 이전에 깃 허브 코드보다는 정리가 되었지요? 그때는 테스트 버전으로 올려서 다시 업데이트 해 놓겠습니다. ^^

https://github.com/EngediKimHyeYoung/engedi


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); 

        } 

        if (Input.GetAxisRaw("Vertical") > 0 || Input.GetKey(KeyCode.Space)) { 

            // Debug.Log("상하: " + Input.GetAxisRaw("Vertical"));

            transform.Translate(0, speed, 0);

            animator.SetBool("JumpStart", true);

        }  else {

            animator.SetBool("JumpStart", false); 

        }

    }

}



오늘도 수고 하셨습니다^^ 코드는 적지만.. 스스로 완성해 하나씩 나아간다는 그 느낌이 참 좋네요^^ 100일 지나면 저는 게임을 출시할거에요^^ 아니.. 100일 전에^^

2 0

매일 한알의 마늘처럼 하나의 미션 수행!

동굴뛰쳐나가지 않고 매일 하나의 마늘을 먹기!!!

게임이나 VR, AR 에 유니티가 언리얼과 같이 많이 사용된다고 듣긴 했지만 나와는 관계없는 프로그램 같았습니다. 그러다가 우연한 계기로 게임 디자인을 하면서 유니티에 관심이 생겼습니다. 


자바스크립트가 유니티와 연동된다고 하니, 유니티가 매력있게 다가왔습니다. 유니티까지 활용한다면 작업 영역의 확장 뿐만 아니라 재미있는 콘텐츠를 제작할수 있겠다는 가능성이 보였습니다.


내가 기획하고, 디자인하고, 개발까지 하여 하나의 게임 앱을 만들수가 있다니! 얼마나 달콤한 유혹인지 모릅니다. 물론 수 많은 산을 넘고 에러를 넘고, 오류를 넘어야 하는 것은 각오를 해야 합니다. 그럼에도 불구하고 무척 매력적 입니다. 인고의 시간을 지나면 나는 상상력을 구현할수 있는 하나의 툴을, 도구를 장착할수 있는 것입니다. 아!이!언!맨! 처럼 말이지요!!!


카카오프로젝트 100은 게으른 저를 동기부여해 줍니다. 당장 통장에 계좌가 찍히는 일은 열심히 하게 되지만, 새로운것을 공부할 때는 의지가 참 약해지고 용두사미가 됩니다. 그런 의미에서 카카오프로젝트 100은 100일동안 의지를 불태울수 있는 작은 동기가 됩니다. 카카오프로젝트 시즌1에서는 자바스크립트 기초를 정리했습니다. 

시즌 2에서는 새로운 공부를 도전합니다. 바로 유!니!티!


여러분 생각은 어떤가요?

top