Unity3D开发常用API之实例化与销毁(六)

本节要点

1.实例化游戏物体

1.游戏中的案例介绍

在很多 MMORPG 类的游戏中都有类似于“金钱副本”的副本关卡。在这类副

本中通常都是限定一个时间,在这个时间内玩家可以尽情的破坏,然后收集金钱。

分析游戏截图讲解场景元素:[见图]

①场景中所有的坛子,模型都是一样的,坛子是预制体。

②坛子是从“天上”掉下来的,所以坛子模型身上有刚体组件。

③如果玩家在一段时间内没有打碎坛子,这些坛子会消失。


2.案例场景制作

①创建地面模型;

②创建“坛子”模型,并制作成预制体;




3.实例化生成 1 个坛子

GameObject.Instantiate(Object, Vector3, Quaternion);

参数说明:

Object:用于实例化的预制体;

Vector3:实例化后生成的物体所在的位置;

Quaternion[四元数]:实例化后生成的物体的旋转状态;

Quaternion.identity:无旋转;




4.构造随机位置

位置是用 Vector3 类型进行表示的。

X,Y,Z 三个值确定了物体在三维世界中的位置。

Random.Range(min, max):生成随机数。

在 min 和 max 直接随机生成一个随机数。

演示:按下键盘的一个键,就在随机位置实例化一个物体。


2.销毁游戏物体

GameObject.Destroy(Object, float);定时销毁某个游戏物体。

参数说明:

Object:要销毁的游戏物体;

float:时间,多少秒后销毁;


关键代码

CreateBoxs

public class CreateBoxs : MonoBehaviour {

    //定义公开变量 并通过拖曳 把相关预置体拖至相关属性下
    public GameObject goPrefab;



    void Start () {
    
        //实例化对象关键语句(静态方法)
       // GameObject.Instantiate(goPrefab,Vector3.up,Quaternion.identity);//参数1:预置体,就是要实例化的对象;参数2:0位置上方1米,参数3:4元数无旋转

        //自己定义随机范围(位置) 
       // Vector3 position = new Vector3(1,1,1);

        //Vector3 position = new Vector3(Random.Range(-9.0f,9.0f),10,Random.Range(-9.0f,9.0f));//参数1:X轴的范围 Y固定下高度,Z轴的范围
        //GameObject.Instantiate(goPrefab,position,Quaternion.identity);
        //通过按下空格键随机实例化box;

    }
    

    void Update () {

        //通过按下空格键随机实例化box;
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Vector3 position = new Vector3(Random.Range(-9.0f,9.0f),10,Random.Range(-9.0f,9.0f));
            GameObject.Instantiate(goPrefab,position,Quaternion.identity);


        }


    }
}

DestroyBox

public class DestroyBox : MonoBehaviour {

    // Use this for initialization
    void Start () {

        //出现段时候后,销毁物体  关键语句 gameobject静态类方法

        GameObject.Destroy(gameObject,Random.Range(5.0f,10.0f));//参数1:销毁物体的对象(就是本身) 参数2:销毁的时间

        //以上方法只能写在start方法里,不能写在其他update方法中;

    
    }
    
    //// Update is called once per frame
    //void Update () {
    
    //}
}

小结

Unity3D开发常用API之实例化与销毁(六)_第1张图片
Unity API.png

你可能感兴趣的:(Unity3D开发常用API之实例化与销毁(六))