inflearn logo
강의

講義

知識共有

unity 2d 이동 좀 알려줘용....

解決済みの質問

469

song050114

投稿した質問数 2

0

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move : MonoBehaviour
{
    private float Speed;
    public float WalkSpeed;
    public float RunSpeed;
    private bool isRunning = false;
    public float JumpForce;
    private bool isJumpping = false;

    Rigidbody2D rb;
    SpriteRenderer sr;
    Animator ani;
   
    void Start()
    {
        Speed = WalkSpeed;

        rb = GetComponent<Rigidbody2D>();
        ani = GetComponent<Animator>();
        sr = GetComponent<SpriteRenderer>();
    }

    void FixedUpdate()
    {
        MoveControl();
        TryRun();
        Running();
        TryJump();
    }



    private void MoveControl()
    {
        float hor = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(hor * Speed, rb.velocity.y);

        //MoveStop
        if (Input.GetButtonUp("Horizontal"))
        {
            rb.velocity = new Vector2(rb.velocity.normalized.x * 0.5f, rb.velocity.y);
        }

        //MoveSpeed
        if (rb.velocity.x > Speed)
        {
            rb.velocity = new Vector2(Speed, rb.velocity.y);
        }
        else if (rb.velocity.x < Speed*(-1))
        {
            rb.velocity = new Vector2(Speed*(-1), rb.velocity.y);
        }

        //Animation
        if (rb.velocity.normalized.x == 0)
        {
            ani.SetBool("isWalking", false);
        }
        else
        {
            ani.SetBool("isWalking", true);
        }

        //Sprite Flip
        if (Input.GetButtonDown("Horizontal"))
        {
            sr.flipX = Input.GetAxisRaw("Horizontal") == -1;
        }
    }
    private void TryRun()
    {
        if (Input.GetKeyDown(KeyCode.LeftShift))
        {
            isRunning = true;
        }
        else if (Input.GetKeyUp(KeyCode.LeftShift))
        {
            isRunning = false;
        }
    }
    private void Running()
    {
        if (isRunning == true)
        {
            Speed = RunSpeed;
            isRunning = false;
        }
        else if (isRunning == false)
        {
            Speed = WalkSpeed;
            isRunning = true;
        }
    }
    private void TryJump()
    {
        if (Input.GetKeyDown(KeyCode.Space) && isJumpping == false)
        {
            rb.velocity = Vector2.up * JumpForce;
            isJumpping = true;
        }
        else if (Input.GetKeyUp(KeyCode.Space))
        {
            isJumpping = false;
        }
    }
}
제가 이번에 이제 유니티를 시작하게 되었는데요 유튜브를 여러 개 찾아 보면서 계속 연습을 하면서 이번에
제작에 들어가게 되었습니다 처음 시작이여서 2D 로 먼저 연습을 할려고 해서 이동하는 걸 만들어 보고
있는데요 지금 계속 중간에 가다가도 멈추고 점프도 될 때도 있고 안될때도 있고 그래서 질문 남깁니다...
빠르게 고쳐서 계속 만들어 보고 싶어요!!

unity 유니티 unity2d 유니티2d

回答 0

영상이 안나옵니다. 그냥 빈공간이에요

1

14

3

layout group의 종류 3가지 실무 적합활용이 궁금합니다.

0

14

1

수박게임 자료 받았는데 plante05, 06이 없습니다.

0

28

1

14강 녹음이 안되어 있습니다

0

41

1

유니티webgl 과 안티그래비티를 협업시키고 싶습니다.

0

49

2

소스를 받을 수 있는 링크가 있을까요?

0

78

2

프로덕션 부분 사용 불가

0

78

2

접근지정자

0

73

2

in-app purchasing 버튼의 install 버튼이 비활성화되어있을때 어떻게 해결해야하나요 ?

0

59

2

유니티 제외 설치한 프로그램들 및 파일 삭제 방법

0

64

1

깃허브에서 콤피유아이 매니저 설치하는게 안됩니다.

0

87

2

5강, 오류 수정과 관련해서

0

72

2

컴퓨터를 껐다가 클로드 코드 다시 키는 방법 알려주세요.

0

76

1

MA-POCA 알고리즘 응용 질문

0

53

1

Pivot을 마우스로 클릭하고 드래그해도 움직이 않아서 혹시 아시는 부분이 있나 해서 문의 남깁니다.

0

66

1

카메라가 많아지면 렌더링 비용이 커지나요?

0

51

1

3:56에 폰트 불러온 과정이 궁금합니다 ㅠㅠ

0

83

3

Spider와 Monster 구현 방식을 구분한 이유

1

47

1

Sprute Sheet에 대해서.

0

75

1

ResourceManager 클래스 관련 질문

1

89

2

FBX chan 모델

0

86

1

첨부된 수업자료와 강의 내용이 다릅니다.

0

124

2

몬스터 HP 게이지바 이동

0

61

1

TextMeshPro용 커스텀 한글 2350자.txt 파일은 어디에 있나요?

0

75

1