버그 해결을 위한 모든 질문을 던져
0 votes
241 views
안녕하세요. 이제 막 보고 따라하기 시작한 뉴비입니다.

유니티 공홈 보면서 따라하면서 변형도 섞어가면서 공부 중인데

아무리 생각해도 방법을 몰라서 글 남겨요.

오브젝트 이동 : transform.translate(Vector3.forward * speed * Time.deltaTime); 이거보고 변형해서 공부하려는데

왼쪽 키를 눌렀을땐 오브젝트가 멈추고 다시 왼쪽키를 눌렀을때 다시 스스로 이동하게 하는 방법은 어떻게 해야할까요? 구글 검색해도 잘 못찾겠어서 글 남겨요.

if(Input.GetKEy(KeyCode.LeftArrow))

{Transform.translate(Vector3.zero)

else

{transform.translate(Vector3.forward * speed * Time.deltaTime);

이렇게 하면 왼쪽으로 눌렀을때 잠깐 멈추었다가 다시 손떼면 다시 움직이는데 이렇게 말구

얼음땡 하듯이 왼쪽 누르면 얼음처럼 멈추었다가 다시 왼쪽 누르면 얼음 풀린듯이 다시 자동으로 이동하게 하는법을 알고 싶어요.

도와주세요!!]\
asked (2 point) , 241 views

1 답변

0 votes
토글방식을 구현해주어야하는데요.

클래스에 bool 변수를 하나 선언하고, Input.GetKeyDown이 true가 될 때마다 bool 변수가 true 였다면 false로, false 였다면 true로 바꾸어줍니다. Translate는 이 bool 변수가 true일때만 진행되도록 하면, 버튼을 누를 때 마다 가다 서다하는 원하시는 구현이 완성됩니다.
answered (405 point)
답변 감사합니다. 정말 죄송하지만 공부 시작한지 얼마 안되어서 토글의 개념을 이해못하고 그냥 시키는대로만 따라했다보니 bool은 알지만 어떻게 사용하는지 모르겠어서요 ㅠㅠ

bool inputKeydown ; // inputKeydown을 true,false로 분류 가능하게함.

void strat()

inputKeydown = true;  //  시작할땐 inputKeydown을 true로 만듬.

void update()

IF (inputKeydown)

{ if (Input.Input.GetKeyDown(Keycode.LeftArrow)

{ transform.Translate(Vector3.zero);          inputKeydown= false;}

else

{return;}

여기서 어떻게 고쳐야할까요? 기본적인걸지 모르지만 처음이라 공부하면서 하는거라 모르겠네요 ㅠㅠ 죄송하지만 어떻게 수정해야할지 도와주실수 있으신가요?
class UnitController : MonoBehaviour {

  public float speed = 1.0f;
  private bool isMoving = false;


  void Update() {

    // 이번프레임에 LeftArrow 버튼 누름 이벤트가 발생했다면
    if (Input.GetKeyDown(KeyCode.LeftArrow)) {

      // isMoving 변수를 토글합니다.
      isMoving = !isMoving;
    }

    // isMoving이 참이라면
    if (isMoving) {
      // (0,0,1) 방향으로 speed * 델타타임 만큼 이동시킵니다.
      transform.Translate(Vector3.forward * speed * Time.deltaTime);
    }
  }
}

 

전혀 갈피를 잡고 있지 못하신 것 같지만, 괜찮습니다. 
도움이 되길 바랍니다 ^^ 궁금한 점은 계속해서 답글 남겨 주세요.

이해하기 쉽게 설명해주셔서 감사해요 :)

전혀 감이 안잡히고 있었는데 덕분에 조금은 이해한것 같습니다. 밤 늦게까지 도와주셔서 감사함니다 :)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

618 질문
783 answers
748 댓글
118,441 users