inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

유니티와 C#으로 배우는 카타나제로스타일 게임만들기 (기본편)

공격이펙트마무리

공격후에 미끄러지는 오류

229

Hants

작성한 질문수 1

0

공격이펙트 마무리 강의를 마쳤는데, 공격시 바라보는 방향으로 힘이 주어져서 더 빨리 이동하는데, 딱 딱 대시하고 멈추지가않고, 스르륵 미끄러집니다. 무엇이 문제일까요?


using System.Collections;

using System.Collections.Generic;

using System.IO;

using UnityEditor;

using UnityEngine;

using UnityEngine.UIElements;

public class Player : MonoBehaviour

{

public float speed = 5;

public float jumpUp = 1;

public float power = 5;

public Vector3 direction; //방향을 위한 Vector3형 변수

public GameObject slash;

Animator pAnimator; //애니메이션 관리를 위함

Rigidbody2D pRig2D; //물리효과처리 +

SpriteRenderer sp;

void Start()

{

pAnimator = GetComponent<Animator>();

pRig2D = GetComponent<Rigidbody2D>();

direction = Vector2.zero;

sp = GetComponent<SpriteRenderer>();

}

void KeyInput()

{

direction.x = Input.GetAxisRaw("Horizontal");

if (direction.x < 0)

{

//left

sp.flipX = true;

pAnimator.SetBool("Run", true);

}

else if (direction.x > 0)

{

//right

sp.flipX = false;

pAnimator.SetBool("Run", true);

}

else if (direction.x == 0)

{

pAnimator.SetBool("Run", false);

}

if (Input.GetMouseButtonDown(0))

{

pAnimator.SetTrigger("Attack");

}

}

void Update()

{

//클래스 사용

KeyInput();

Move();

if (Input.GetKeyDown(KeyCode.W))//W키 눌렀을때

{

if (pAnimator.GetBool("Jump") == false)

{

Jump();

pAnimator.SetBool("Jump", true);

}

}

}

private void FixedUpdate()

{

Debug.DrawRay(pRig2D.position, Vector3.down, new Color(0, 1, 0));

RaycastHit2D rayHit = Physics2D.Raycast(pRig2D.position, Vector3.down, 1, LayerMask.GetMask("Ground"));

if (pRig2D.velocity.y < 0)

{

if (rayHit.collider != null)

{

if (rayHit.distance < 0.7f)

{

pAnimator.SetBool("Jump", false);

}

}

}

}

//움직임 함수

public void Move()

{

transform.position += direction speed Time.deltaTime;

}

public void AttSlash()

{

//플레이어 오른쪽

if (sp.flipX == false)

{

pRig2D.AddForce(Vector2.right * power, ForceMode2D.Impulse);

GameObject go = Instantiate(slash, transform.position, Quaternion.identity);

go.GetComponent<SpriteRenderer>().flipX = sp.flipX;

}

else //왼쪽

{

pRig2D.AddForce(Vector2.left * power, ForceMode2D.Impulse);

GameObject go = Instantiate(slash, transform.position, Quaternion.identity);

go.GetComponent<SpriteRenderer>().flipX = sp.flipX;

}

}

//점프 함수

public void Jump()

{

//벡터값 제로

pRig2D.velocity = Vector2.zero; //제로로 해줘야 이전에 있던 값(힘)이 사라진다?

//위로 힘 가해주기

pRig2D.AddForce(new Vector2(0, jumpUp), ForceMode2D.Impulse);

}

}

 

C# unity

답변 1

0

Hants

영상을 몇번 돌려보니, Player의 Mass가 2, JumpUp이 10이더군요, 저는 Mass를1, JumpUp을 5로 했었는데, Mass를 2로 바꾸고 나니까 조금 더 자연스러운 것 같습니다.
영상에선 저처럼 마구잡이로 좌우로 안움직이기도하고 확대가 안되서, 미끄러지는지아닌지 모르겠다만, 제건 좌우막 움직이면서 공격하면 아직도 조금 미끄러지긴하는데, 제가 바꾼방식이 문제의 원인해결이 맞을지 잘 모르겠어요

수업자료 관련

0

12

1

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

0

13

0

몬스터 HP 게이지바 이동

0

13

1

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

0

14

1

02-02 NavMesh 응용 캐릭터 멈춤 문제

0

29

1

02-02 NavMesh 응용 캐릭터 멈춤 문제

0

37

2

비주얼 스튜디오 2026

0

34

2

C#에서의 RAII

0

60

3

public string Title { get; set; } 에서 WFO1000 오류가납니다.

0

37

1

Scene 뷰에서 Enemy Entity가 보이지 않는 문제

0

46

2

Lessons 3 & 4 don't have subtitles unfortunately

0

38

1

클로드코드 + 유니티 컨텐츠만들기 응용에 대하여 질문드립니다.

0

61

1

강의자료 누락

0

67

1

자꾸만 번거롭게 해서 죄송합니다.....

0

90

2

이거 후속 강의는 없는 건가요? ㅠㅠ

0

86

2

이거 후속 강의는 없는 건가요? ㅠㅠ

0

61

1

마우스 방향으로 공격을 하고 싶습니다.

0

617

1

스크립트 오류 관련

0

292

2

강좌가 마음에 드는데 심화과정 만드실 계획 있으신가요?

1

263

1

계단에서 착지시 문제점!

0

265

1

4번째 강의 질문

0

238

2

강의 질문드립니다.

0

411

4

엣지콜라이더설치후 폴리싱 관련된 부분 질문드립니다.

0

434

2

강의 순서가 이상해 질문 올립니다~

1

359

2