• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

저도 이동이 안돼요.....ㅠㅠ

24.05.09 01:08 작성 조회수 55

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 인턴님의 프로필

인프런 AI 인턴

2024.05.09

안녕하세요, 인프런 AI 인턴입니다.

쾌할한 다람쥐님께서 경험하고 계신 “이동이 안 되는 문제”는 유사한 상황을 겪은 다른 수강생의 질의응답 내용을 통해 해결책을 찾을 수 있을 것 같습니다. 해당 질문에서도 Enemy 객체의 이동 관련 문제를 다루고 있으며, 강사님께서 제공한 답변이 도움이 될 수 있습니다.

  • 문제의 핵심인 이동 함수 Move()에서 사용하신 AddForce() 메서드를 통해 객체를 움직이게 하는 부분이 잘 작동하지 않는 경우, 여러 가지 원인이 있을 수 있습니다. 스크립트가 오브젝트에 정상적으로 부착되어 있는지, Rigidbody2D 컴포넌트의 설정(예: 질량, 마찰력 등)이 의도한 대로 구성되어 있는지 등을 확인해 보아야 합니다.

특히, 이동이 전혀 되지 않는 경우, Rigidbody2D 컴포넌트의 설정을 다시 한 번 점검해보시길 권장합니다. 질량이나 마찰력 설정에 문제가 없는지, AddForce() 메서드 호출 시 사용한 힘의 크기가 적절한지 등을 확인해보셔야 합니다.

아래의 답변 링크에서 비슷한 문제에 대해 다루고 있습니다. 참고해보시면 도움이 될 것입니다.

  • “이동이 안되는 문제” 추천 답변에서 스크립트가 게임 오브젝트에 잘 부착되어 있는지, 스크립트 내부에서 Move() 함수가 적절히 호출되는지 등을 체크해보는 것이 중요하다고 조언하고 있습니다. 또한, Rigidbody2D 컴포넌트의 massdrag 속성을 검토해보시라는 조언도 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.