Я не знаю, что я делаю неправильно, это 2D-проект, есть два объекта. Один имеет компонент RigidBody2D
и BoxCollider2D
. Второй объект имеет только BoxCollider2D
. И внизу есть кнопка при нажатии кнопки Object1
осенью на Object2
и Destroy
и Instantiate
Object1
еще раз. Но когда Object1 Instantiate
, то нажмите кнопку не работает. И пришла ошибка вот так:Нажатие кнопки не работает
The object of type Rigidbody2D has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object.
Объект 1:
Объект 2:
Кнопка Click:
Объекта 1 Автор сценарий:
public class Object1 : MonoBehaviour {
public static Object1 instance;
[SerializeField]
private Rigidbody2D body;
[SerializeField]
private bool hasdropped;
[SerializeField]
private bool click;
[SerializeField]
private float PointerPos;
[SerializeField]
private float BorderX;
void Awake(){
if (instance == null) {
instance = this;
}
//take width of screen
Vector3 gameScreen = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height,0));
BorderX = gameScreen.x - 0.6f;
body.isKinematic = true;
click = true;
hasdropped = true;
}
void FixedUpdate() {
if (click) {
Vector3 temp = transform.position;
PointerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition).x;
temp.x = Mathf.Clamp(PointerPos,-BorderX,BorderX);
body.position = temp;
if(hasdropped){
return;
}
}
}
public void ButtonClick(){
body.isKinematic = false;
}
}
Объект 2 сценария:
public class Object2 : MonoBehaviour {
[SerializeField]
private GameObject BallClone;
void OnCollisionEnter2D(Collision2D target){
Destroy (target.gameObject);
Instantiate (BallClone,new Vector3(0f,2f,59f),Quaternion.identity);
}
}
Хорошо, 2 вещи. Плз, посмотри, что это имеет смысл для тебя. 1- Вместо того, чтобы разрушать, сделайте это на пуле. Сбросьте его. 2- Попробуйте использовать тег для доступа к жесткому объекту вместо объекта public. –
Вы используете ссылку на экземпляр где-то еще? – Everts
@ ゴ ス エ ン ヘ ン リ ввод ввода нет новой строки, сообщения. На самом деле это раздражает. – Everts