-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
이동...
22.03.13 01:37 작성 조회수 142
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는 float health = 50.0f;
- 먼저 유사한 질문이 있었는 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도 설정이 되어있습니다..ㅠ
답변을 작성해보세요.
0
백현우
지식공유자2022.04.15
안녕하세요!
마지막에 해주신 말씀을 보니 잘 이해하신 것이 맞는것 같습니다!
일단, 스크립트가 해당 오브젝트에 잘 부착이 되어 있는지 확인해주세요! 스크립트가 아예 실행되지 않았을 수도 있을것 같아요.
그리고, 코드를 보니 맨 처음에 딱 1회만 실행되는 것이기 때문에 실행이 되었는데 인지를 못하셨을 수도 있으니 이 부분도 확인해주시구요.
마지막으로, 생성하신 오브젝트의 rigidbody의 mass나 drag 속성을 봐주세요! 물리 엔진을 사용하기 때문에 질량이나 마찰력이 너무 높으면 움직이지 않을 수 있답니다.
감사합니다 :)
답변 1