커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-6 고양이의 게이지가 가득 차면 좌,우로 이동하는 함수 작성 중 궁금증
게임개발 종합반 v0
3주차
북마크
정*효
댓글
6
추천
0
조회수
15
조회수
15
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


 if(transform.position.x > 0)

     {

       transform.position += Vector3.right * 0.05f;

     }

     else

     {

       transform.position += Vector3.left * 0.05f;


해당 부분의 Vector3.left * 0.05f; 에서 0.09f 이상의 값이 들어가면 고양이의 배고픔이 full 이 되었을 때 full 이미지로 바뀌지 않고 그냥 이동합니다.

추가로 고양이의 게이지가 full이 되었을 때 Hungry이미지 에서 Full이미지로 바뀌는 시간이 조금 걸리는데 그 딜레이를 줄일 수 있는 방법이 있을까요?


스파르타 즉문즉답스파르타 즉문즉답


화면밖으로 나갈때까지도 계속 Full 이미지로 바뀌지 않는 모습




작성한 코드 및 에러 메세지

 public class Cat : MonoBehaviour

{

  public GameObject hungryCat;

  public GameObject fullCat;


  public RectTransform front;


  float full = 5.0f;

  float energy = 0.0f;



  // Start is called before the first frame update

  void Start()

  {

    Application.targetFrameRate = 60; // 모든 컴퓨터의 프레임값 기준으로 속도 설정

  }


  // Update is called once per frame

  void Update()

  {

    if(energy < full)

    {

      transform.position += Vector3.down * 0.05f;

    }

    else

    {

      if(transform.position.x > 0)

      {

        transform.position += Vector3.right * 0.09f;

      }

      else

      {

        transform.position += Vector3.left * 0.09f;

      }

       

    }

     

  }


  // Rigidbody 속성을 kinematic으로 바꾸면서 concollision2D를 못쓰게되었음

  private void OnTriggerEnter2D(Collider2D collision)

  {

    if (collision.gameObject.CompareTag("Food"))

    {

      if (energy < full)

      {

        energy += 1.0f;

        front.localScale = new Vector3(energy / full, 1.0f, 1.0f);

        Destroy(collision.gameObject);

      }

      else

      {

        hungryCat.SetActive(false);

        fullCat.SetActive(true);

      }

    }

  }

}


취소
 공유
취소
댓글 0
댓글 알림
나의얼굴