实例化在unity 2D C#中创建两个对象

问题描述 投票:0回答:1

我做了一个脚本,在那里创建了一个对象,但是创建了两个对象,为什么?

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 做一些事情,但没有成功。

c# c unity-game-engine 2d sharp
1个回答
0
投票

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); 
© www.soinside.com 2019 - 2024. All rights reserved.