Скорее всего проблема в настойках Rigidbody, вероятно один объект попадает в другой и получается 2 и более столкновений, это если еще и скрипты правильно размещены, но сути у вас вообще не должно ничего создаваться из за удаления объекта до создания.
Я поправил написал должно работать , то лучше collision.gameObject.name == plusname заменить на collision.gameObject.tag
using UnityEngine;
public class Plus : MonoBehaviour
{
public string plusname;
public GameObject ReadyBall;
GameObject _colObj;
bool _IsCol;
private void Update()
{
if (_IsCol) Pluser();
}
void Pluser()
{
_colObj.SetActive(false);
GameObject newObj= Instantiate(ReadyBall, (_colObj.transform.position), Quaternion.identity);
newObj.transform.name = "CreateBy" + this.transform.name; ///For Debug
Destroy(_colObj);
Destroy(this.gameObject);
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.name == plusname&&!_IsCol)
{
_colObj = collision.gameObject;
_IsCol = true;
}
}
}