从脚本基于预制件创建对象
更新页 :
页面创建日期 :
验证环境
- 窗户
-
- 视窗 11
- 统一编辑器
-
- 2021.3.3f1
- 输入系统包
-
- 1.3.0
此提示的先决条件
作为此提示描述的前提,已预先进行了以下设置。
基于脚本中的预制件创建对象
在前面的提示中,我们将对象从预制件放置到视图中,但在这种情况下,我们放置了预定数量的对象并启动游戏。 但是,某些游戏可能希望在游戏运行时动态添加对象。 在这种情况下,您必须从脚本中的预制件添加它。
样品创建
部署新项目后,放置按钮。 让我们尝试在每次单击按钮时从预制件生成一个对象。
创建预制件。 此过程与前面的提示相同。
创建一个脚本,以便在下次单击该按钮时添加对象。 ButtonEvent
将名称保留为 。
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private GameObject SpritePrefab;
public void OnClick()
{
// Instantiate にプレハブを渡すとそれをもとに新しいオブジェクトを生成する
var obj = Instantiate(SpritePrefab);
// 配置位置はランダムに
obj.transform.localPosition = new Vector3(Random.value * 6 - 3, Random.value * 6 - 3);
}
}
GameObject
定义字段,以便您可以提前设置要基于哪个预制件生成。
Instantiate
您可以传递一个方法来基于该对象创建新 GameObject
对象。
创建对象的位置成为原点,无论创建多少对象,对象重叠且难以理解,因此创建后随机设置位置。 位置调整值是合适的,因为它是一个样本。
将脚本附加到事件系统。
GameObject
已设置,因此将预制件拖放到此处。
单击按钮时,将 OnClick
调用该方法。
示例执行
创建后,运行游戏并单击按钮。 每次单击都应生成一个对象。
当然,由于它是基于预制件生成的,如果预制件的值发生变化,生成的对象将根据该值生成。