Unity3D基础26:物体实例化

 

在很多游戏中,都有那种类似“奖励分”的游戏道具,它们会随机刷出,玩家捡到之后就会获得相应的分数或者物品

一、物体实例化

实例化就是通过预制体来克隆物体,先新建一个“金币”预制体如下:

Unity3D基础26:物体实例化        Unity3D基础26:物体实例化

那么如何用脚本实例化生成金币呢?

还是先建立一个空物体,专门用于挂脚本生成上面的"coin"

之后编写脚本并拖到这个空物体上,定义一个公有的GameObject类型,如下:

public GameObject Mycoin;

Unity3D基础26:物体实例化

之后再进行一个神奇的操作:将预制体"Coin"拖到Mycoin上,或者进行如下操作(效果是一样的):

Unity3D基础26:物体实例化

这样的话,脚本就有了"Coin"的引用,之后就可以开始编写代码了

GameObject.Instantiate(Object, Vector3, Quaternion):实例化生成一个物体,返回Object类型(注意不是GameObject,可以用as操作符转化)

参数说明:

  • Object:需要实例化的预制体;
  • Vector3:生成的物体所在的位置;
  • Quaternion:四元数,生成的物体的旋转状态,暂时不用深入了解,只需要知道 Quaternion.identity 代表无旋转
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoinPrint : MonoBehaviour
{
    public GameObject Mycoin;
    void Start()
    {
        GameObject.Instantiate(Mycoin, new Vector3(1, (float)0.05, 1), Quaternion.identity);
    }
    void Update()
    {
        
    }
}

这样子,在游戏开始时,就会立刻生成一枚金币在场内了