• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

이동...

22.03.13 01:37 작성 조회수 142

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는 float health = 50.0f;
 
  void start(){
      Move();
  }

  void TakeDamage(float value){
      health -= value;

      if (health <= 0)
      {
          Die();
      }
  }

  public float GetHealth(){
      return health;
  }
  void Die(){
      Destroy(gameObject);
  }

  void OnCollisionEnter2D(Collision2D coll){
      if (coll.gameObject.CompareTag("bullet"))
      {
      TakeDamage(10);
      Debug.Log("enemy 체력 : " + health);
      coll.gameObject.SetActive(false);
      }
  }

  void Move(){
      gameObject.GetComponent<Rigidbody2D>().AddForce(Vector3.left * 200);
  }
}
 
마지막줄 Move 부분이 아무리해도 이동을 하지않네요... 겟컴포넌트에서 릿지드바디 2d가져오고 에드포스에서 좌측으로 힘 200받아야한다..
맞는거죠? 근데 숫자를 아무리 바꿔도 미동도없어요... 강의와 딱히 다른 점을 찾지도 못하겠습니다.
오브젝트에 릿지드바디2d도 설정이 되어있습니다..ㅠ

답변 1

답변을 작성해보세요.

0

안녕하세요!

마지막에 해주신 말씀을 보니 잘 이해하신 것이 맞는것 같습니다!

일단, 스크립트가 해당 오브젝트에 잘 부착이 되어 있는지 확인해주세요! 스크립트가 아예 실행되지 않았을 수도 있을것 같아요.

그리고, 코드를 보니 맨 처음에 딱 1회만 실행되는 것이기 때문에 실행이 되었는데 인지를 못하셨을 수도 있으니 이 부분도 확인해주시구요.

마지막으로, 생성하신 오브젝트의 rigidbody의 mass나 drag 속성을 봐주세요! 물리 엔진을 사용하기 때문에 질량이나 마찰력이 너무 높으면 움직이지 않을 수 있답니다. 

 

감사합니다 :)