강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

깨끗한 앵무새님의 프로필 이미지
깨끗한 앵무새

작성한 질문수

C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)

2.19 적군 구현하기 4 - 상속을 이용한 적군의 종류 추가

이동...

작성

·

229

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 속성을 봐주세요! 물리 엔진을 사용하기 때문에 질량이나 마찰력이 너무 높으면 움직이지 않을 수 있답니다. 

 

감사합니다 :)

깨끗한 앵무새님의 프로필 이미지
깨끗한 앵무새

작성한 질문수

질문하기