강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hamsick1809562
hamsick1809562

câu hỏi đã được viết

Tìm hiểu những điều cơ bản về Unity của Tiến sĩ Ko bằng cách làm theo

Ví dụ về sử dụng Instantiate() (16:37)

Instantiate() 활용 예제에서 11:30의 예제 질문이요

Viết

·

234

0

public class ObjectSpawner : MonoBehaviour

{

[SerializeField] private int objectSpawnCount = 30;

// Start is called before the first frame update

[SerializeField] private GameObject[] prefabArray;

[SerializeField] private Transform[] spawnPointArray;

private int currentObjectCount = 0;

private float objectSpawnTime = 0.0f;

void Start()

{

}

// Update is called once per frame

void Update()

{

if(currentObjectCount + 1 > objectSpawnCount)

{

return;

}

objectSpawnTime += Time.deltaTime;

if(objectSpawnTime >= 0.5f)

{

int prefabIndex = Random.Range(0, prefabArray.Length);

int spawnIndex = Random.Range(0, spawnPointArray.Length);

Vector3 position = spawnPointArray[spawnIndex].position;

GameObject clone = Instantiate(prefabArray[prefabIndex], position, Quaternion.identity);

Vector3 moveDirection = (spawnIndex == 0 ? Vector3.right : Vector3.left);

clone.GetComponent<Movement2D>().Setup(moveDirection);

currentObjectCount++;

objectSpawnTime = 0.0f;

}

}

}

를 연습해보았는데 37번째줄 clone.GetComponent<Movement2D>().Setup(moveDirection);의 Setup에 빨간줄이 그어지더니 오류목록에서['Movement2D'에는 'Setup'에 대한 정의가 포함되어 있지 않고, 'Movement2D' 형식의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'Setup'이(가) 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요.]라는 메세지가 나오네요 답변부탁드립니다.

unity

Câu trả lời 1

0

unitynote님의 프로필 이미지
unitynote
Người chia sẻ kiến thức

NullReference 에러는 클래스의 인스턴스(변수)가 비어있을 때 발생합니다.

clone.GetComponent<Movement2D>.. 이 부분에서 뜨기 때문에 게임오브젝트에 Movement2D 컴포넌트가 안들어가 있을 확률이 높습니다.

Movement2D 컴포넌트를 추가하세요

hamsick1809562님의 프로필 이미지
hamsick1809562
Người đặt câu hỏi

감사합니다. 다시 연습해볼게요

hamsick1809562님의 프로필 이미지
hamsick1809562
Người đặt câu hỏi

Movement2D에 잘못 코딩했었네요 감사합니다

Hình ảnh hồ sơ của hamsick1809562
hamsick1809562

câu hỏi đã được viết

Đặt câu hỏi