如何制作游戏对象的副本?

How to make copies of Game objects?

我想在我的游戏中做的是,当球破坏方块时,它会生成随机数以产生不同的能量提升我做了随机变化,但我不知道如何在被摧毁的方块上产生能量提升图标.当它产生时,它只是漂浮下来,你需要用你用来弹球的平台 接触他来接他。 我在盒子上的代码是:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;


public class destroy : MonoBehaviour
{

private string BALL_TAG = "ball";
public AudioClip coin;
public AudioSource src;
private float digit;
public GameObject spawnTo;




private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.gameObject.CompareTag(BALL_TAG))
    {

        movement PBDM = FindObjectOfType<movement>();          

        PBDM.Destroy();
        src.clip = coin;
        src.Play();
        digit = Random.Range(0, 101);

        if (digit <= 15 && digit >= 11)        
         print("THERE IS A PLACE WHERE I NEED TO SPAWN POWER UP ON XYZ OF BOX.");

        else if (digit <= 10 && digit >= 1)
            Debug.Log("epic");

        else
            Debug.Log("basic");

        Destroy(gameObject);

        }
    }

}

这个调试我只是用来测试它是否有效。

因此,如果我对你的理解正确的话,你只想 Instantiate 反对。

要在场景中创建一个新的游戏对象,您可以按照以下步骤操作:

  1. 创建您要生成的游戏对象的预制件。您可以通过将 GameObject 从层次结构拖动到资产 window.

  2. 将其拖放到要生成预制件的对象上的 C# 脚本组件上。

  3. 将您的 if 语句更改为:

         if (digit <= 15 && digit >= 11)
             Instantiate(spawnTo, this.transform.position, Quaternion.identity);
    

如果您想将 GameObject 实例化为另一个 GameObject 的子对象,您还可以阅读 Instantiate() 方法。