그래서 나는 두 개의 볼을 충돌시키고, 스스로 파괴하고, 그 자리에 또 다른 볼을 스폰하기를 원한다. 그러나 스크립트를 볼에 붙이려고 할 때 볼의 두 인스턴스가 모두 접촉했을 때 파괴되고 두 볼의 프리 패브가 즉시 생성됩니다. 왜냐하면 두 인스턴스 모두 코드를 가지고 있기 때문입니다. 이로 인해 두 볼은 서로 스폰하고 서로를 계속 파괴합니다.Unity - 같은 GameObject 두 개를 충돌시키고 서로 파괴하고 목표 위치에 새 GameObject를 스폰하는 법?
private Vector3 ballPosition;
void OnTriggerEnter2D (Collider2D other) {
if (other.gameObject.tag == "Ball") {
ballPosition = new Vector3 ((transform.position.x + other.transform.position.x)/2, (transform.position.y + other.transform.position.y)/2, 0.0f);
StartCoroutine ("RespawnBall");
}
}
IEnumerator RespawnBall() {
Instantiate (gameObject, ballPosition, Quaternion.identity);
Destroy (gameObject);
yield return null;
}
방법, 다음 조립식의 하나 개의 인스턴스를 생성이 코드는 모두 공을 파괴해야합니까 : 나는 공에 부착이 스크립트가?
이것은 유니티/게임 프로그래밍의 절대적인 기초입니다. 당신은 단순히 "다른 하나를 파괴하십시오."그것은 "그 하나를 파괴"하는 것을 멈추게 할 것입니다. Unity에서는 물리 루프를 파괴 할 수 없기 때문에 단순히 부울을 설정합니다. 다른 시스템에서는 파괴하거나, 스크립트를 사용하지 않거나, 단지 부울을 설정합니다. Kardux는 올바른 기본 대답을주었습니다. – Fattie
Yoj가 발생시키는 또 다른 문제는 일반적으로 Unity에서 "태그"를 사용하지 않는다는 것입니다. 정말로이 단계에서는 ** 물리 ** 레이어 ** 시스템을 사용해야합니다. 당신은 그것 없이는 결코 사소한 Unity 프로젝트를 할 수 없습니다. (유니티 (Unity)와 같은 몇 가지 상황이 있습니다 : Unity에서 첫 2 일간 새로운 학습자를 얻는 "안녕하세요 세상"시스템을 만들려고 노력하지만 실제로 도움이되지 않습니다. 레이어 개념, 처음부터 그것을 사용할 수도 있습니다.) – Fattie
@JoeBlow, 지금까지 이것이 제 첫 번째 프로젝트 였고, 자습서를 따랐을 때 태그를 사용하여이 작업을 배웠습니다.이 작업은 얼마나 간단한 프로젝트입니까? . 레이어를 다루는 훌륭한 자습서를 추천 해 주시겠습니까? – YojaX