게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
유니티 coroutine 사용 중 질문드립니다.
게시물ID : programmer_1858짧은주소 복사하기
작성자 : 아름다운썬
추천 : 0
조회수 : 3246회
댓글수 : 14개
등록시간 : 2014/03/15 20:23:50
앞면은 사과, 뒷면은 딸기인 카드를 놓고
사용자가 선택하면 카드가 회전하면서 앞면은 뒷면으로, 뒷면은 앞면으로 변하는 모습을 만들려고 하고 있습니다.
 
void Update () {
    //1. 키가 눌렸는지 확인하기 
    if(Input.GetKeyDown(KeyCode.LeftArrow))
   {
       StartCoroutine("CardFlip1"); // 카드 0~90도 회전,
       StartCoroutine("CardFlip2"); // 카드 90~180도 회전
    }
 }
 
IEnumerator CardFlip1() { 
    // 이미지 0~90도까지 회전
    for (float i = 1; i<90; i++) {
        transform.Rotate(0.0f, 1f, 0.0f);
         // 화면 갱신까지 대기
        yield return new WaitForFixedUpdate();
     }
  
    // 90도까지 회전 후 사과 이미지 삭제 후 딸기 이미지 생성
    prePos = this.gameObject.transform.position;
    preRotation = this.gameObject.transform.localRotation;
    Destroy(this.gameObject);
  
    Instantiate(preFruit,prePos,preRotation);
 }
 
 
 IEnumerator CardFlip2() { 
  // 이미지 90~190도까지 회전
  for (float i = 90; i<180; i++) {
   transform.Rotate(0.0f, 1f, 0.0f);
   // 화면 갱신까지 대기
   yield return new WaitForFixedUpdate();
  }
 }
 
위와 같은 방법을 이용하고 있는데
 
카드가 0~180도까지(앞면에서 뒷면으로까지) 모두 변화한 후에
이미지 그림이 바뀌고 있습니다.
 
CardFlip1 에서 90도까지 회전 후 Destory 와 Instantiate가 제대로 작동안하는거 같은데..
이 부분만 따로 coroutine로 작성을 해도 잘 안되네요
아시는분 답변 부탁 드립니다..
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호