작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
145
0
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy1 : MonoBehaviour
{
private float health = 50.0f;
public float Health{
get{ return health; }
}
void Start(){
move();
}
void TakeDamage(float value){
health -= value;
Debug.Log("enemy의 체력 : " + health);
if(health <= 0)
{
Die();
}
}
void Die(){
Destroy(gameObject); // 자기자신을 없애라
}
void OnCollisionEnter2D(Collision2D coll){
if(coll.gameObject.CompareTag("Bullet"))
{
TakeDamage(10);
// 총알을 소멸시켜라-> 나랑 충돌한놈 없애라 !
coll.gameObject.SetActive(false);
}
}
void Move(){
gameObject.GetComponent<Rigidbody2D>().AddForce(Vector3.left * 23200);
}
}
저도 Enemy1, Enemy2 만들어서 move함수도 붙이고 스크립트에 부착도 해보고 질량도 바꿔보고 처음시작할때 실행되는지 안되는지 다 지켜봐도 아예 움직이는게 실행이 안되네요
뭐가문제인건가요???
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
쾌할한 다람쥐님께서 경험하고 계신 “이동이 안 되는 문제”는 유사한 상황을 겪은 다른 수강생의 질의응답 내용을 통해 해결책을 찾을 수 있을 것 같습니다. 해당 질문에서도 Enemy
객체의 이동 관련 문제를 다루고 있으며, 강사님께서 제공한 답변이 도움이 될 수 있습니다.
Move()
에서 사용하신 AddForce()
메서드를 통해 객체를 움직이게 하는 부분이 잘 작동하지 않는 경우, 여러 가지 원인이 있을 수 있습니다. 스크립트가 오브젝트에 정상적으로 부착되어 있는지, Rigidbody2D
컴포넌트의 설정(예: 질량, 마찰력 등)이 의도한 대로 구성되어 있는지 등을 확인해 보아야 합니다.특히, 이동이 전혀 되지 않는 경우, Rigidbody2D
컴포넌트의 설정을 다시 한 번 점검해보시길 권장합니다. 질량이나 마찰력 설정에 문제가 없는지, AddForce()
메서드 호출 시 사용한 힘의 크기가 적절한지 등을 확인해보셔야 합니다.
아래의 답변 링크에서 비슷한 문제에 대해 다루고 있습니다. 참고해보시면 도움이 될 것입니다.
Move()
함수가 적절히 호출되는지 등을 체크해보는 것이 중요하다고 조언하고 있습니다. 또한, Rigidbody2D
컴포넌트의 mass
나 drag
속성을 검토해보시라는 조언도 있습니다.저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.