我做了一个脚本,在那里创建了一个对象,但是创建了两个对象,为什么?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Plus : MonoBehaviour
{
public string plusname;
public GameObject ReadyBall;
void OnCollisionStay2D(Collision2D collision)
{
if (collision.gameObject.name == plusname)
{
Destroy(collision.gameObject);
Destroy(gameObject);
Instantiate(ReadyBall, (collision.gameObject.transform.position), Quaternion.identity);
}
}
}
我尝试用 bool 做一些事情,但没有成功。
OnCollisionStay2D
在对象与另一个对象碰撞的每一帧都会被调用,您可以使用 OnCollisionEnter2D
代替,它仅在碰撞的第一帧被调用。
还有,在排队
Destroy(collision.gameObject);
Destroy(gameObject);
Instantiate(ReadyBall(collision.gameObject.transform.position),Quaternion.identity);
您在实例化另一个对象之前销毁该对象,最好重新排列这些线
Instantiate(ReadyBall(collision.gameObject.transform.position),Quaternion.identity);
Destroy(collision.gameObject);
Destroy(gameObject);