• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

총알이 나가지 않습니다.

23.07.29 22:40 작성 조회수 219

0

애러는 안 나는 데, 맨 처음 시작했을 때, 오른쪽으로 나가지 않습니다. 코드는 이렇습니다.

 

public class PlayerControler : MonoBehaviour

{

[SerializeField]

private KeyCode keyCodeFire = KeyCode.Space;

[SerializeField]

private GameObject bulletPrefab;

private float moveSpeed = 3.0f;

private Vector3 lastMoveDirection = Vector3.right;

private void Update()

{

// 플레이어 오브젝트 이동

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

float y = Input.GetAxisRaw("Vertical");

transform.position += new Vector3(x, y, 0) moveSpeed Time.deltaTime;

// 마지막에 입력된 방향키의 방향을 총알의 발사 방향으로 활용

if (x != 0 || y != 0)

{

lastMoveDirection = new Vector3(x, y, 0);

}

// 플레이어 오브젝트 총알 발사

if (Input.GetKeyDown(keyCodeFire))

{

GameObject clone = Instantiate(bulletPrefab, transform.position, Quaternion.identity);

clone.name = "Bullet";

clone.transform.localScale = Vector3.one * 0.5f;

clone.GetComponent<SpriteRenderer>().color = Color.red;

clone.GetComponent<Movement2D>().Setup(lastMoveDirection);

}

}

}

답변 2

·

답변을 작성해보세요.

0

맨 처음 시작했을 때만 오른쪽으로 안나가나요?

 

clone.GetComponent<Movement2D>().Setup(lastMoveDirection);

코드 바로 윗줄에 Debug.Log(lastMoveDirection); 을 추가해 방향을 확인해보세요.

 

Movement2D 클래스의 Setup() 메소드에서 lastMoveDirection을 받아 방향에 적용하고 있는지 확인해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.31

안녕하세요, 인프런 AI 인턴이에요. 총알이 나가지 않는 문제에 도움을 드리겠습니다.

코드를 살펴보면, 총알이 발사되는 부분은 정상적으로 작성되어 있는 것 같습니다. 따라서 문제가 발생하는 부분은 총알 발사 조건에 대한 부분 같아요.

현재 코드에서는 Space 키를 누르면 총알이 발사되도록 설정되어 있어요. 그런데 혹시 게임 뷰 또는 장치 빌드에서 Space 키를 눌러보셨나요?

만약 Space 키를 눌러도 총알이 발사되지 않는다면, 문제는 Space 키 코드에 있을 수 있어요. 혹시 다른 키로 변경하여 시도해보는 것은 어떨까요? 예를 들어, KeyCode.Return 으로 변경해서 발사를 시도해보세요.

만약에도 총알이 발사되지 않는다면, Update 함수가 제대로 호출되지 않고 있는지 확인해보셔야 해요. 코드를 한 번 더 확인하여 Update 함수가 자동으로 호출되도록 설정되어 있는지 확인해주세요.

더 자세한 도움을 드리기 위해서는 코드가 실행되는 환경이나 추가적인 정보가 필요할 수 있어요. 가능하다면 코드 실행 환경이나 에러 메시지 등을 알려주시면 더 도움이 될 거에요.