작성
·
310
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 인턴이에요. 총알이 나가지 않는 문제에 도움을 드리겠습니다.
코드를 살펴보면, 총알이 발사되는 부분은 정상적으로 작성되어 있는 것 같습니다. 따라서 문제가 발생하는 부분은 총알 발사 조건에 대한 부분 같아요.
현재 코드에서는 Space 키를 누르면 총알이 발사되도록 설정되어 있어요. 그런데 혹시 게임 뷰 또는 장치 빌드에서 Space 키를 눌러보셨나요?
만약 Space 키를 눌러도 총알이 발사되지 않는다면, 문제는 Space 키 코드에 있을 수 있어요. 혹시 다른 키로 변경하여 시도해보는 것은 어떨까요? 예를 들어, KeyCode.Return 으로 변경해서 발사를 시도해보세요.
만약에도 총알이 발사되지 않는다면, Update 함수가 제대로 호출되지 않고 있는지 확인해보셔야 해요. 코드를 한 번 더 확인하여 Update 함수가 자동으로 호출되도록 설정되어 있는지 확인해주세요.
더 자세한 도움을 드리기 위해서는 코드가 실행되는 환경이나 추가적인 정보가 필요할 수 있어요. 가능하다면 코드 실행 환경이나 에러 메시지 등을 알려주시면 더 도움이 될 거에요.